tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

utypes.cpp (7663B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 ******************************************************************************
      5 *
      6 *   Copyright (C) 1997-2015, International Business Machines
      7 *   Corporation and others.  All Rights Reserved.
      8 *
      9 ******************************************************************************
     10 *
     11 *  FILE NAME : utypes.c (previously putil.c)
     12 *
     13 *   Date        Name        Description
     14 *   10/07/2004  grhoten     split from putil.c
     15 ******************************************************************************
     16 */
     17 
     18 #include "unicode/utypes.h"
     19 
     20 /* u_errorName() ------------------------------------------------------------ */
     21 
     22 static const char * const
     23 _uErrorInfoName[U_ERROR_WARNING_LIMIT-U_ERROR_WARNING_START]={
     24    "U_USING_FALLBACK_WARNING",
     25    "U_USING_DEFAULT_WARNING",
     26    "U_SAFECLONE_ALLOCATED_WARNING",
     27    "U_STATE_OLD_WARNING",
     28    "U_STRING_NOT_TERMINATED_WARNING",
     29    "U_SORT_KEY_TOO_SHORT_WARNING",
     30    "U_AMBIGUOUS_ALIAS_WARNING",
     31    "U_DIFFERENT_UCA_VERSION",
     32    "U_PLUGIN_CHANGED_LEVEL_WARNING",
     33 };
     34 
     35 static const char * const
     36 _uTransErrorName[U_PARSE_ERROR_LIMIT - U_PARSE_ERROR_START]={
     37    "U_BAD_VARIABLE_DEFINITION",
     38    "U_MALFORMED_RULE",
     39    "U_MALFORMED_SET",
     40    "U_MALFORMED_SYMBOL_REFERENCE",
     41    "U_MALFORMED_UNICODE_ESCAPE",
     42    "U_MALFORMED_VARIABLE_DEFINITION",
     43    "U_MALFORMED_VARIABLE_REFERENCE",
     44    "U_MISMATCHED_SEGMENT_DELIMITERS",
     45    "U_MISPLACED_ANCHOR_START",
     46    "U_MISPLACED_CURSOR_OFFSET",
     47    "U_MISPLACED_QUANTIFIER",
     48    "U_MISSING_OPERATOR",
     49    "U_MISSING_SEGMENT_CLOSE",
     50    "U_MULTIPLE_ANTE_CONTEXTS",
     51    "U_MULTIPLE_CURSORS",
     52    "U_MULTIPLE_POST_CONTEXTS",
     53    "U_TRAILING_BACKSLASH",
     54    "U_UNDEFINED_SEGMENT_REFERENCE",
     55    "U_UNDEFINED_VARIABLE",
     56    "U_UNQUOTED_SPECIAL",
     57    "U_UNTERMINATED_QUOTE",
     58    "U_RULE_MASK_ERROR",
     59    "U_MISPLACED_COMPOUND_FILTER",
     60    "U_MULTIPLE_COMPOUND_FILTERS",
     61    "U_INVALID_RBT_SYNTAX",
     62    "U_INVALID_PROPERTY_PATTERN",
     63    "U_MALFORMED_PRAGMA",
     64    "U_UNCLOSED_SEGMENT",
     65    "U_ILLEGAL_CHAR_IN_SEGMENT",
     66    "U_VARIABLE_RANGE_EXHAUSTED",
     67    "U_VARIABLE_RANGE_OVERLAP",
     68    "U_ILLEGAL_CHARACTER",
     69    "U_INTERNAL_TRANSLITERATOR_ERROR",
     70    "U_INVALID_ID",
     71    "U_INVALID_FUNCTION"
     72 };
     73 
     74 static const char * const
     75 _uErrorName[U_STANDARD_ERROR_LIMIT]={
     76    "U_ZERO_ERROR",
     77 
     78    "U_ILLEGAL_ARGUMENT_ERROR",
     79    "U_MISSING_RESOURCE_ERROR",
     80    "U_INVALID_FORMAT_ERROR",
     81    "U_FILE_ACCESS_ERROR",
     82    "U_INTERNAL_PROGRAM_ERROR",
     83    "U_MESSAGE_PARSE_ERROR",
     84    "U_MEMORY_ALLOCATION_ERROR",
     85    "U_INDEX_OUTOFBOUNDS_ERROR",
     86    "U_PARSE_ERROR",
     87    "U_INVALID_CHAR_FOUND",
     88    "U_TRUNCATED_CHAR_FOUND",
     89    "U_ILLEGAL_CHAR_FOUND",
     90    "U_INVALID_TABLE_FORMAT",
     91    "U_INVALID_TABLE_FILE",
     92    "U_BUFFER_OVERFLOW_ERROR",
     93    "U_UNSUPPORTED_ERROR",
     94    "U_RESOURCE_TYPE_MISMATCH",
     95    "U_ILLEGAL_ESCAPE_SEQUENCE",
     96    "U_UNSUPPORTED_ESCAPE_SEQUENCE",
     97    "U_NO_SPACE_AVAILABLE",
     98    "U_CE_NOT_FOUND_ERROR",
     99    "U_PRIMARY_TOO_LONG_ERROR",
    100    "U_STATE_TOO_OLD_ERROR",
    101    "U_TOO_MANY_ALIASES_ERROR",
    102    "U_ENUM_OUT_OF_SYNC_ERROR",
    103    "U_INVARIANT_CONVERSION_ERROR",
    104    "U_INVALID_STATE_ERROR",
    105    "U_COLLATOR_VERSION_MISMATCH",
    106    "U_USELESS_COLLATOR_ERROR",
    107    "U_NO_WRITE_PERMISSION",
    108    "U_INPUT_TOO_LONG_ERROR"
    109 };
    110 static const char * const
    111 _uFmtErrorName[U_FMT_PARSE_ERROR_LIMIT - U_FMT_PARSE_ERROR_START] = {
    112    "U_UNEXPECTED_TOKEN",
    113    "U_MULTIPLE_DECIMAL_SEPARATORS",
    114    "U_MULTIPLE_EXPONENTIAL_SYMBOLS",
    115    "U_MALFORMED_EXPONENTIAL_PATTERN",
    116    "U_MULTIPLE_PERCENT_SYMBOLS",
    117    "U_MULTIPLE_PERMILL_SYMBOLS",
    118    "U_MULTIPLE_PAD_SPECIFIERS",
    119    "U_PATTERN_SYNTAX_ERROR",
    120    "U_ILLEGAL_PAD_POSITION",
    121    "U_UNMATCHED_BRACES",
    122    "U_UNSUPPORTED_PROPERTY",
    123    "U_UNSUPPORTED_ATTRIBUTE",
    124    "U_ARGUMENT_TYPE_MISMATCH",
    125    "U_DUPLICATE_KEYWORD",
    126    "U_UNDEFINED_KEYWORD",
    127    "U_DEFAULT_KEYWORD_MISSING",
    128    "U_DECIMAL_NUMBER_SYNTAX_ERROR",
    129    "U_FORMAT_INEXACT_ERROR",
    130    "U_NUMBER_ARG_OUTOFBOUNDS_ERROR",
    131    "U_NUMBER_SKELETON_SYNTAX_ERROR",
    132    "U_MF_UNRESOLVED_VARIABLE_ERROR",
    133    "U_MF_SYNTAX_ERROR",
    134    "U_MF_UNKNOWN_FUNCTION_ERROR",
    135    "U_MF_VARIANT_KEY_MISMATCH_ERROR",
    136    "U_MF_FORMATTING_ERROR",
    137    "U_MF_NONEXHAUSTIVE_PATTERN_ERROR",
    138    "U_MF_DUPLICATE_OPTION_NAME_ERROR",
    139    "U_MF_SELECTOR_ERROR",
    140    "U_MF_MISSING_SELECTOR_ANNOTATION_ERROR",
    141    "U_MF_DUPLICATE_DECLARATION_ERROR",
    142    "U_MF_OPERAND_MISMATCH_ERROR",
    143    "U_MF_DUPLICATE_VARIANT_ERROR",
    144    "U_MF_BAD_OPTION"
    145 };
    146 
    147 static const char * const
    148 _uBrkErrorName[U_BRK_ERROR_LIMIT - U_BRK_ERROR_START] = {
    149    "U_BRK_INTERNAL_ERROR",
    150    "U_BRK_HEX_DIGITS_EXPECTED",
    151    "U_BRK_SEMICOLON_EXPECTED",
    152    "U_BRK_RULE_SYNTAX",
    153    "U_BRK_UNCLOSED_SET",
    154    "U_BRK_ASSIGN_ERROR",
    155    "U_BRK_VARIABLE_REDFINITION",
    156    "U_BRK_MISMATCHED_PAREN",
    157    "U_BRK_NEW_LINE_IN_QUOTED_STRING",
    158    "U_BRK_UNDEFINED_VARIABLE",
    159    "U_BRK_INIT_ERROR",
    160    "U_BRK_RULE_EMPTY_SET",
    161    "U_BRK_UNRECOGNIZED_OPTION",
    162    "U_BRK_MALFORMED_RULE_TAG"
    163 };
    164 
    165 static const char * const
    166 _uRegexErrorName[U_REGEX_ERROR_LIMIT - U_REGEX_ERROR_START] = {
    167    "U_REGEX_INTERNAL_ERROR",
    168    "U_REGEX_RULE_SYNTAX",
    169    "U_REGEX_INVALID_STATE",
    170    "U_REGEX_BAD_ESCAPE_SEQUENCE",
    171    "U_REGEX_PROPERTY_SYNTAX",
    172    "U_REGEX_UNIMPLEMENTED",
    173    "U_REGEX_MISMATCHED_PAREN",
    174    "U_REGEX_NUMBER_TOO_BIG",
    175    "U_REGEX_BAD_INTERVAL",
    176    "U_REGEX_MAX_LT_MIN",
    177    "U_REGEX_INVALID_BACK_REF",
    178    "U_REGEX_INVALID_FLAG",
    179    "U_REGEX_LOOK_BEHIND_LIMIT",
    180    "U_REGEX_SET_CONTAINS_STRING",
    181    "U_REGEX_OCTAL_TOO_BIG",
    182    "U_REGEX_MISSING_CLOSE_BRACKET",
    183    "U_REGEX_INVALID_RANGE",
    184    "U_REGEX_STACK_OVERFLOW",
    185    "U_REGEX_TIME_OUT",
    186    "U_REGEX_STOPPED_BY_CALLER",
    187    "U_REGEX_PATTERN_TOO_BIG",
    188    "U_REGEX_INVALID_CAPTURE_GROUP_NAME"
    189 };
    190 
    191 static const char * const
    192 _uIDNAErrorName[U_IDNA_ERROR_LIMIT - U_IDNA_ERROR_START] = {
    193     "U_STRINGPREP_PROHIBITED_ERROR",
    194     "U_STRINGPREP_UNASSIGNED_ERROR",
    195     "U_STRINGPREP_CHECK_BIDI_ERROR",
    196     "U_IDNA_STD3_ASCII_RULES_ERROR",
    197     "U_IDNA_ACE_PREFIX_ERROR",
    198     "U_IDNA_VERIFICATION_ERROR",
    199     "U_IDNA_LABEL_TOO_LONG_ERROR",
    200     "U_IDNA_ZERO_LENGTH_LABEL_ERROR",
    201     "U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR"
    202 };
    203 
    204 static const char * const
    205 _uPluginErrorName[U_PLUGIN_ERROR_LIMIT - U_PLUGIN_ERROR_START] = {
    206     "U_PLUGIN_TOO_HIGH",
    207     "U_PLUGIN_DIDNT_SET_LEVEL",
    208 };
    209 
    210 U_CAPI const char * U_EXPORT2
    211 u_errorName(UErrorCode code) {
    212    if(U_ZERO_ERROR <= code && code < U_STANDARD_ERROR_LIMIT) {
    213        return _uErrorName[code];
    214    } else if(U_ERROR_WARNING_START <= code && code < U_ERROR_WARNING_LIMIT) {
    215        return _uErrorInfoName[code - U_ERROR_WARNING_START];
    216    } else if(U_PARSE_ERROR_START <= code && code < U_PARSE_ERROR_LIMIT){
    217        return _uTransErrorName[code - U_PARSE_ERROR_START];
    218    } else if(U_FMT_PARSE_ERROR_START <= code && code < U_FMT_PARSE_ERROR_LIMIT){
    219        return _uFmtErrorName[code - U_FMT_PARSE_ERROR_START];
    220    } else if (U_BRK_ERROR_START <= code  && code < U_BRK_ERROR_LIMIT){
    221        return _uBrkErrorName[code - U_BRK_ERROR_START];
    222    } else if (U_REGEX_ERROR_START <= code && code < U_REGEX_ERROR_LIMIT) {
    223        return _uRegexErrorName[code - U_REGEX_ERROR_START];
    224    } else if(U_IDNA_ERROR_START <= code && code < U_IDNA_ERROR_LIMIT) {
    225        return _uIDNAErrorName[code - U_IDNA_ERROR_START];
    226    } else if(U_PLUGIN_ERROR_START <= code && code < U_PLUGIN_ERROR_LIMIT) {
    227        return _uPluginErrorName[code - U_PLUGIN_ERROR_START];
    228    } else {
    229        return "[BOGUS UErrorCode]";
    230    }
    231 }
    232 
    233 /*
    234 * Hey, Emacs, please set the following:
    235 *
    236 * Local Variables:
    237 * indent-tabs-mode: nil
    238 * End:
    239 *
    240 */