1
by Bernd Zeimetz
Import upstream version 0.8 |
1 |
/* ====================================================================
|
1.1.2
by Bernd Zeimetz
Import upstream version 0.9 |
2 |
* Copyright (c) 2004-2010 Open Source Applications Foundation.
|
1
by Bernd Zeimetz
Import upstream version 0.8 |
3 |
*
|
4 |
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
5 |
* copy of this software and associated documentation files (the "Software"),
|
|
6 |
* to deal in the Software without restriction, including without limitation
|
|
7 |
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
8 |
* and/or sell copies of the Software, and to permit persons to whom the
|
|
9 |
* Software is furnished to do so, subject to the following conditions:
|
|
10 |
*
|
|
11 |
* The above copyright notice and this permission notice shall be included
|
|
12 |
* in all copies or substantial portions of the Software.
|
|
13 |
*
|
|
14 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15 |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16 |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17 |
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18 |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
19 |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
20 |
* DEALINGS IN THE SOFTWARE.
|
|
21 |
* ====================================================================
|
|
22 |
*/
|
|
23 |
||
24 |
#include "common.h" |
|
25 |
#include "structmember.h" |
|
26 |
||
27 |
#include "errors.h" |
|
28 |
||
1.1.5
by Jakub Wilk
Import upstream version 1.3 |
29 |
static void _setMsg(PyObject *messages, UErrorCode code, const char *msg) |
1
by Bernd Zeimetz
Import upstream version 0.8 |
30 |
{
|
31 |
PyObject *pycode = PyInt_FromLong((long) code); |
|
32 |
PyObject *pymsg = PyString_FromString(msg); |
|
33 |
||
34 |
PyObject_SetItem(messages, pycode, pymsg); |
|
35 |
Py_DECREF(pycode); |
|
36 |
Py_DECREF(pymsg); |
|
37 |
}
|
|
38 |
||
39 |
static void registerErrors(PyObject *messages) |
|
40 |
{
|
|
41 |
_setMsg(messages, U_USING_FALLBACK_WARNING, "A resource bundle lookup returned a fallback result (not an error)"); |
|
42 |
_setMsg(messages, U_ERROR_WARNING_START, "Start of information results (semantically successful)"); |
|
43 |
_setMsg(messages, U_USING_DEFAULT_WARNING, "A resource bundle lookup returned a result from the root locale (not an error)"); |
|
44 |
_setMsg(messages, U_SAFECLONE_ALLOCATED_WARNING, "A SafeClone operation required allocating memory (informational only)"); |
|
45 |
_setMsg(messages, U_STATE_OLD_WARNING, "ICU has to use compatibility layer to construct the service. Expect performance/memory usage degradation. Consider upgrading"); |
|
46 |
_setMsg(messages, U_STRING_NOT_TERMINATED_WARNING, "An output string could not be NUL-terminated because output length==destCapacity."); |
|
47 |
_setMsg(messages, U_SORT_KEY_TOO_SHORT_WARNING, "Number of levels requested in getBound is higher than the number of levels in the sort key"); |
|
48 |
_setMsg(messages, U_AMBIGUOUS_ALIAS_WARNING, "This converter alias can go to different converter implementations"); |
|
49 |
_setMsg(messages, U_DIFFERENT_UCA_VERSION, "ucol_open encountered a mismatch between UCA version and collator image version, so the collator was constructed from rules. No impact to further function"); |
|
50 |
_setMsg(messages, U_ERROR_WARNING_LIMIT, "This must always be the last warning value to indicate the limit for UErrorCode warnings (last warning code +1)"); |
|
51 |
_setMsg(messages, U_ZERO_ERROR, "No error, no warning."); |
|
52 |
_setMsg(messages, U_ILLEGAL_ARGUMENT_ERROR, "Illegal argument"); |
|
53 |
_setMsg(messages, U_MISSING_RESOURCE_ERROR, "The requested resource cannot be found"); |
|
54 |
_setMsg(messages, U_INVALID_FORMAT_ERROR, "Data format is not what is expected"); |
|
55 |
_setMsg(messages, U_FILE_ACCESS_ERROR, "The requested file cannot be found"); |
|
56 |
_setMsg(messages, U_INTERNAL_PROGRAM_ERROR, "Indicates a bug in the library code"); |
|
57 |
_setMsg(messages, U_MESSAGE_PARSE_ERROR, "Unable to parse a message (message format)"); |
|
58 |
_setMsg(messages, U_MEMORY_ALLOCATION_ERROR, "Memory allocation error"); |
|
59 |
_setMsg(messages, U_INDEX_OUTOFBOUNDS_ERROR, "Trying to access the index that is out of bounds"); |
|
60 |
_setMsg(messages, U_PARSE_ERROR, "Equivalent to Java ParseException"); |
|
61 |
_setMsg(messages, U_INVALID_CHAR_FOUND, "Character conversion: Unmappable input sequence. In other APIs: Invalid character."); |
|
62 |
_setMsg(messages, U_TRUNCATED_CHAR_FOUND, "Character conversion: Incomplete input sequence."); |
|
63 |
_setMsg(messages, U_ILLEGAL_CHAR_FOUND, "Character conversion: Illegal input sequence/combination of input units.."); |
|
64 |
_setMsg(messages, U_INVALID_TABLE_FORMAT, "Conversion table file found, but corrupted"); |
|
65 |
_setMsg(messages, U_INVALID_TABLE_FILE, "Conversion table file not found"); |
|
66 |
_setMsg(messages, U_BUFFER_OVERFLOW_ERROR, "A result would not fit in the supplied buffer"); |
|
67 |
_setMsg(messages, U_UNSUPPORTED_ERROR, "Requested operation not supported in current context"); |
|
68 |
_setMsg(messages, U_RESOURCE_TYPE_MISMATCH, "an operation is requested over a resource that does not support it"); |
|
69 |
_setMsg(messages, U_ILLEGAL_ESCAPE_SEQUENCE, "ISO-2022 illegal escape sequence"); |
|
70 |
_setMsg(messages, U_UNSUPPORTED_ESCAPE_SEQUENCE, "ISO-2022 unsupported escape sequence"); |
|
71 |
_setMsg(messages, U_NO_SPACE_AVAILABLE, "No space available for in-buffer expansion for Arabic shaping"); |
|
72 |
_setMsg(messages, U_CE_NOT_FOUND_ERROR, "Currently used only while setting variable top, but can be used generally"); |
|
73 |
_setMsg(messages, U_PRIMARY_TOO_LONG_ERROR, "User tried to set variable top to a primary that is longer than two bytes"); |
|
74 |
_setMsg(messages, U_STATE_TOO_OLD_ERROR, "ICU cannot construct a service from this state, as it is no longer supported"); |
|
75 |
_setMsg(messages, U_TOO_MANY_ALIASES_ERROR, "There are too many aliases in the path to the requested resource. It is very possible that a circular alias definition has occured"); |
|
76 |
_setMsg(messages, U_ENUM_OUT_OF_SYNC_ERROR, "UEnumeration out of sync with underlying collection"); |
|
77 |
_setMsg(messages, U_INVARIANT_CONVERSION_ERROR, "Unable to convert a UChar* string to char* with the invariant converter."); |
|
78 |
_setMsg(messages, U_INVALID_STATE_ERROR, "Requested operation can not be completed with ICU in its current state"); |
|
79 |
_setMsg(messages, U_COLLATOR_VERSION_MISMATCH, "Collator version is not compatible with the base version"); |
|
80 |
_setMsg(messages, U_USELESS_COLLATOR_ERROR, "Collator is options only and no base is specified"); |
|
81 |
_setMsg(messages, U_STANDARD_ERROR_LIMIT, "This must always be the last value to indicate the limit for standard errors"); |
|
82 |
_setMsg(messages, U_BAD_VARIABLE_DEFINITION, "Missing '$' or duplicate variable name"); |
|
83 |
_setMsg(messages, U_PARSE_ERROR_START, "Start of Transliterator errors"); |
|
84 |
_setMsg(messages, U_MALFORMED_RULE, "Elements of a rule are misplaced"); |
|
85 |
_setMsg(messages, U_MALFORMED_SET, "A UnicodeSet pattern is invalid"); |
|
86 |
_setMsg(messages, U_MALFORMED_SYMBOL_REFERENCE, "UNUSED as of ICU 2.4"); |
|
87 |
_setMsg(messages, U_MALFORMED_UNICODE_ESCAPE, "A Unicode escape pattern is invalid"); |
|
88 |
_setMsg(messages, U_MALFORMED_VARIABLE_DEFINITION, "A variable definition is invalid"); |
|
89 |
_setMsg(messages, U_MALFORMED_VARIABLE_REFERENCE, "A variable reference is invalid"); |
|
90 |
_setMsg(messages, U_MISMATCHED_SEGMENT_DELIMITERS, "UNUSED as of ICU 2.4"); |
|
91 |
_setMsg(messages, U_MISPLACED_ANCHOR_START, "A start anchor appears at an illegal position"); |
|
92 |
_setMsg(messages, U_MISPLACED_CURSOR_OFFSET, "A cursor offset occurs at an illegal position"); |
|
93 |
_setMsg(messages, U_MISPLACED_QUANTIFIER, "A quantifier appears after a segment close delimiter"); |
|
94 |
_setMsg(messages, U_MISSING_OPERATOR, "A rule contains no operator"); |
|
95 |
_setMsg(messages, U_MISSING_SEGMENT_CLOSE, "UNUSED as of ICU 2.4"); |
|
96 |
_setMsg(messages, U_MULTIPLE_ANTE_CONTEXTS, "More than one ante context"); |
|
97 |
_setMsg(messages, U_MULTIPLE_CURSORS, "More than one cursor"); |
|
98 |
_setMsg(messages, U_MULTIPLE_POST_CONTEXTS, "More than one post context"); |
|
99 |
_setMsg(messages, U_TRAILING_BACKSLASH, "A dangling backslash"); |
|
100 |
_setMsg(messages, U_UNDEFINED_SEGMENT_REFERENCE, "A segment reference does not correspond to a defined segment"); |
|
101 |
_setMsg(messages, U_UNDEFINED_VARIABLE, "A variable reference does not correspond to a defined variable"); |
|
102 |
_setMsg(messages, U_UNQUOTED_SPECIAL, "A special character was not quoted or escaped"); |
|
103 |
_setMsg(messages, U_UNTERMINATED_QUOTE, "A closing single quote is missing"); |
|
104 |
_setMsg(messages, U_RULE_MASK_ERROR, "A rule is hidden by an earlier more general rule"); |
|
105 |
_setMsg(messages, U_MISPLACED_COMPOUND_FILTER, "A compound filter is in an invalid location"); |
|
106 |
_setMsg(messages, U_MULTIPLE_COMPOUND_FILTERS, "More than one compound filter"); |
|
107 |
_setMsg(messages, U_INVALID_RBT_SYNTAX, "A '::id' rule was passed to the RuleBasedTransliterator parser"); |
|
108 |
_setMsg(messages, U_INVALID_PROPERTY_PATTERN, "UNUSED as of ICU 2.4"); |
|
109 |
_setMsg(messages, U_MALFORMED_PRAGMA, "A 'use' pragma is invalid"); |
|
110 |
_setMsg(messages, U_UNCLOSED_SEGMENT, "A closing ')' is missing"); |
|
111 |
_setMsg(messages, U_ILLEGAL_CHAR_IN_SEGMENT, "UNUSED as of ICU 2.4"); |
|
112 |
_setMsg(messages, U_VARIABLE_RANGE_EXHAUSTED, "Too many stand-ins generated for the given variable range"); |
|
113 |
_setMsg(messages, U_VARIABLE_RANGE_OVERLAP, "The variable range overlaps characters used in rules"); |
|
114 |
_setMsg(messages, U_ILLEGAL_CHARACTER, "A special character is outside its allowed context"); |
|
115 |
_setMsg(messages, U_INTERNAL_TRANSLITERATOR_ERROR, "Internal transliterator system error"); |
|
116 |
_setMsg(messages, U_INVALID_ID, "A '::id' rule specifies an unknown transliterator"); |
|
117 |
_setMsg(messages, U_INVALID_FUNCTION, "A '&fn()' rule specifies an unknown transliterator"); |
|
118 |
_setMsg(messages, U_PARSE_ERROR_LIMIT, "The limit for Transliterator errors"); |
|
119 |
_setMsg(messages, U_UNEXPECTED_TOKEN, "Syntax error in format pattern"); |
|
120 |
_setMsg(messages, U_FMT_PARSE_ERROR_START, "Start of format library errors"); |
|
121 |
_setMsg(messages, U_MULTIPLE_DECIMAL_SEPARATORS, "More than one decimal separator in number pattern"); |
|
122 |
_setMsg(messages, U_MULTIPLE_EXPONENTIAL_SYMBOLS, "More than one exponent symbol in number pattern"); |
|
123 |
_setMsg(messages, U_MALFORMED_EXPONENTIAL_PATTERN, "Grouping symbol in exponent pattern"); |
|
124 |
_setMsg(messages, U_MULTIPLE_PERCENT_SYMBOLS, "More than one percent symbol in number pattern"); |
|
125 |
_setMsg(messages, U_MULTIPLE_PERMILL_SYMBOLS, "More than one permill symbol in number pattern"); |
|
126 |
_setMsg(messages, U_MULTIPLE_PAD_SPECIFIERS, "More than one pad symbol in number pattern"); |
|
127 |
_setMsg(messages, U_PATTERN_SYNTAX_ERROR, "Syntax error in format pattern"); |
|
128 |
_setMsg(messages, U_ILLEGAL_PAD_POSITION, "Pad symbol misplaced in number pattern"); |
|
129 |
_setMsg(messages, U_UNMATCHED_BRACES, "Braces do not match in message pattern"); |
|
130 |
_setMsg(messages, U_UNSUPPORTED_PROPERTY, "UNUSED as of ICU 2.4"); |
|
131 |
_setMsg(messages, U_UNSUPPORTED_ATTRIBUTE, "UNUSED as of ICU 2.4"); |
|
132 |
_setMsg(messages, U_FMT_PARSE_ERROR_LIMIT, "The limit for format library errors"); |
|
133 |
_setMsg(messages, U_BRK_ERROR_START, "Start of codes indicating Break Iterator failures"); |
|
134 |
_setMsg(messages, U_BRK_INTERNAL_ERROR, "An internal error (bug) was detected."); |
|
135 |
_setMsg(messages, U_BRK_HEX_DIGITS_EXPECTED, "Hex digits expected as part of a escaped char in a rule."); |
|
136 |
_setMsg(messages, U_BRK_SEMICOLON_EXPECTED, "Missing ';' at the end of a RBBI rule."); |
|
137 |
_setMsg(messages, U_BRK_RULE_SYNTAX, "Syntax error in RBBI rule."); |
|
138 |
_setMsg(messages, U_BRK_UNCLOSED_SET, "UnicodeSet witing an RBBI rule missing a closing ']'."); |
|
139 |
_setMsg(messages, U_BRK_ASSIGN_ERROR, "Syntax error in RBBI rule assignment statement."); |
|
140 |
_setMsg(messages, U_BRK_VARIABLE_REDFINITION, "RBBI rule $Variable redefined."); |
|
141 |
_setMsg(messages, U_BRK_MISMATCHED_PAREN, "Mis-matched parentheses in an RBBI rule."); |
|
142 |
_setMsg(messages, U_BRK_NEW_LINE_IN_QUOTED_STRING, "Missing closing quote in an RBBI rule."); |
|
143 |
_setMsg(messages, U_BRK_UNDEFINED_VARIABLE, "Use of an undefined $Variable in an RBBI rule."); |
|
144 |
_setMsg(messages, U_BRK_INIT_ERROR, "Initialization failure. Probable missing ICU Data."); |
|
145 |
_setMsg(messages, U_BRK_RULE_EMPTY_SET, "Rule contains an empty Unicode Set."); |
|
146 |
_setMsg(messages, U_BRK_UNRECOGNIZED_OPTION, "!!option in RBBI rules not recognized."); |
|
147 |
_setMsg(messages, U_BRK_MALFORMED_RULE_TAG, "The {nnn} tag on a rule is mal formed"); |
|
148 |
_setMsg(messages, U_BRK_ERROR_LIMIT, "This must always be the last value to indicate the limit for Break Iterator failures"); |
|
149 |
_setMsg(messages, U_REGEX_ERROR_START, "Start of codes indicating Regexp failures"); |
|
150 |
_setMsg(messages, U_REGEX_INTERNAL_ERROR, "An internal error (bug) was detected."); |
|
151 |
_setMsg(messages, U_REGEX_RULE_SYNTAX, "Syntax error in regexp pattern."); |
|
152 |
_setMsg(messages, U_REGEX_INVALID_STATE, "RegexMatcher in invalid state for requested operation"); |
|
153 |
_setMsg(messages, U_REGEX_BAD_ESCAPE_SEQUENCE, "Unrecognized backslash escape sequence in pattern"); |
|
154 |
_setMsg(messages, U_REGEX_PROPERTY_SYNTAX, "Incorrect Unicode property"); |
|
155 |
_setMsg(messages, U_REGEX_UNIMPLEMENTED, "Use of regexp feature that is not yet implemented."); |
|
156 |
_setMsg(messages, U_REGEX_MISMATCHED_PAREN, "Incorrectly nested parentheses in regexp pattern."); |
|
157 |
_setMsg(messages, U_REGEX_NUMBER_TOO_BIG, "Decimal number is too large."); |
|
158 |
_setMsg(messages, U_REGEX_BAD_INTERVAL, "Error in {min,max} interval"); |
|
159 |
_setMsg(messages, U_REGEX_MAX_LT_MIN, "In {min,max}, max is less than min."); |
|
160 |
_setMsg(messages, U_REGEX_INVALID_BACK_REF, "Back-reference to a non-existent capture group."); |
|
161 |
_setMsg(messages, U_REGEX_INVALID_FLAG, "Invalid value for match mode flags."); |
|
162 |
_setMsg(messages, U_REGEX_LOOK_BEHIND_LIMIT, "Look-Behind pattern matches must have a bounded maximum length."); |
|
163 |
_setMsg(messages, U_REGEX_SET_CONTAINS_STRING, "Regexps cannot have UnicodeSets containing strings."); |
|
164 |
_setMsg(messages, U_REGEX_ERROR_LIMIT, "This must always be the last value to indicate the limit for regexp errors"); |
|
165 |
_setMsg(messages, U_ERROR_LIMIT, "This must always be the last value to indicate the limit for UErrorCode (last error code +1)"); |
|
166 |
}
|
|
167 |
||
168 |
void _init_errors(PyObject *m) |
|
169 |
{
|
|
170 |
PyObject *messages = PyObject_GetAttrString(PyExc_ICUError, "messages"); |
|
171 |
||
172 |
registerErrors(messages); |
|
173 |
Py_DECREF(messages); |
|
174 |
}
|