34 #ifdef HAVE_STDARG_PROTOTYPES 36 #define va_init_list(a,b) va_start(a,b) 39 #define va_init_list(a,b) va_start(a) 47 if (code >= 0)
return (
UChar* )0;
51 p =
"mismatch";
break;
53 p =
"no support in this configuration";
break;
55 p =
"failed to allocate memory";
break;
57 p =
"match-stack limit over";
break;
59 p =
"undefined type (bug)";
break;
61 p =
"internal parser error (bug)";
break;
63 p =
"stack error (bug)";
break;
65 p =
"undefined bytecode (bug)";
break;
67 p =
"unexpected bytecode (bug)";
break;
69 p =
"default multibyte-encoding is not set";
break;
71 p =
"can't convert to wide-char on specified multibyte-encoding";
break;
73 p =
"invalid argument";
break;
75 p =
"end pattern at left brace";
break;
77 p =
"end pattern at left bracket";
break;
79 p =
"empty char-class";
break;
81 p =
"premature end of char-class";
break;
83 p =
"end pattern at escape";
break;
85 p =
"end pattern at meta";
break;
87 p =
"end pattern at control";
break;
89 p =
"invalid meta-code syntax";
break;
91 p =
"invalid control-code syntax";
break;
93 p =
"char-class value at end of range";
break;
95 p =
"char-class value at start of range";
break;
97 p =
"unmatched range specifier in char-class";
break;
99 p =
"target of repeat operator is not specified";
break;
101 p =
"target of repeat operator is invalid";
break;
103 p =
"nested repeat operator";
break;
105 p =
"unmatched close parenthesis";
break;
107 p =
"end pattern with unmatched parenthesis";
break;
109 p =
"end pattern in group";
break;
111 p =
"undefined group option";
break;
113 p =
"invalid POSIX bracket type";
break;
115 p =
"invalid pattern in look-behind";
break;
117 p =
"invalid repeat range {lower,upper}";
break;
119 p =
"invalid conditional pattern";
break;
121 p =
"too big number";
break;
123 p =
"too big number for repeat range";
break;
125 p =
"upper is smaller than lower in repeat range";
break;
127 p =
"empty range in char class";
break;
129 p =
"mismatch multibyte code length in char-class range";
break;
131 p =
"too many multibyte code ranges are specified";
break;
133 p =
"too short multibyte code string";
break;
135 p =
"too big backref number";
break;
137 p =
"too many capture groups are specified";
break;
139 #ifdef USE_NAMED_GROUP 140 p =
"invalid backref number/name";
break;
142 p =
"invalid backref number";
break;
145 p =
"numbered backref/call is not allowed. (use name)";
break;
147 p =
"too big wide-char value";
break;
149 p =
"too short digits";
break;
151 p =
"too long wide-char value";
break;
153 p =
"invalid code point value";
break;
155 p =
"group name is empty";
break;
157 p =
"invalid group name <%n>";
break;
159 #ifdef USE_NAMED_GROUP 160 p =
"invalid char in group name <%n>";
break;
162 p =
"invalid char in group number <%n>";
break;
165 p =
"undefined name <%n> reference";
break;
167 p =
"undefined group <%n> reference";
break;
169 p =
"multiplex defined name <%n>";
break;
171 p =
"multiplex definition name <%n> call";
break;
173 p =
"never ending recursion";
break;
175 p =
"group number is too big for capture history";
break;
177 p =
"invalid character property name {%n}";
break;
179 p =
"not supported encoding combination";
break;
181 p =
"invalid combination of options";
break;
183 p =
"over thread pass limit count";
break;
186 p =
"undefined error code";
break;
194 sprintf(s,
"%02x", (v & 0377));
199 sprintf(s,
"\\x%02x", (v & 0377));
203 UChar buf[],
int buf_size,
int *is_over)
215 if (code > 0xffff && len + 10 <= buf_size) {
222 else if (len + 6 <= buf_size) {
236 if (len >= buf_size)
break;
239 *is_over = ((p < end) ? 1 : 0);
242 len = (int )
MIN((end - s), buf_size);
244 *is_over = ((buf_size < (end - s)) ? 1 : 0);
252 #define MAX_ERROR_PAR_LEN 30 255 #ifdef HAVE_STDARG_PROTOTYPES 331 n =
xvsnprintf((
char* )
buf, bufsize, (
const char* )fmt, args);
333 need = (pat_end - pat) * 4 + 4;
335 if (n + need < (
size_t )bufsize) {
336 strcat((
char* )
buf,
": /");
340 while (p < pat_end) {
343 len =
enclen(enc, p, pat_end);
344 while (len-- > 0) *s++ = *p++;
346 else if (*p ==
'/') {
347 *s++ = (
unsigned char )
'\\';
351 len =
enclen(enc, p, pat_end);
353 while (len-- > 0) *s++ = *p++;
362 while (blen-- > 0) *s++ = *
bp++;
371 while (len-- > 0) *s++ = *
bp++;
384 #ifdef HAVE_STDARG_PROTOTYPES 401 pat, pat_end, fmt, args);
#define ONIGERR_UNDEFINED_GROUP_OPTION
#define ONIGERR_INVALID_CONDITION_PATTERN
unsigned int OnigCodePoint
UChar * onig_error_code_to_format(OnigPosition code)
#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL
#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE
#define ONIGERR_STACK_BUG
#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE
#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR
#define ONIGENC_IS_CODE_PRINT(enc, code)
#define va_init_list(a, b)
#define ONIGERR_END_PATTERN_AT_META
int onig_error_code_to_str(UChar *s, OnigPosition code, va_alist)
#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS
#define ONIGERR_NEVER_ENDING_RECURSION
#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE
#define ONIG_ENCODING_ASCII
#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS
#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN
#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION
static void sprint_byte(char *s, unsigned int v)
#define ONIGERR_INVALID_CHAR_PROPERTY_NAME
#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES
#define ONIGERR_NESTED_REPEAT_OPERATOR
#define ONIGERR_END_PATTERN_AT_LEFT_BRACE
#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID
#define ONIGERR_MULTIPLEX_DEFINED_NAME
#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE
#define ONIGERR_INVALID_BACKREF
#define ONIGERR_UNEXPECTED_BYTECODE
#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE
void onig_snprintf_with_pattern(buf, int bufsize, OnigEncoding enc, UChar *pat, UChar *pat_end, const UChar *fmt, va_alist)
#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING
#define ONIGENC_IS_MBC_HEAD(enc, p, e)
#define ONIGERR_TOO_MANY_CAPTURE_GROUPS
#define ONIGENC_IS_CODE_SPACE(enc, code)
#define ONIGERR_UNDEFINED_NAME_REFERENCE
static int to_ascii(OnigEncoding enc, UChar *s, UChar *end, UChar buf[], int buf_size, int *is_over)
#define ONIGERR_END_PATTERN_IN_GROUP
#define MAX_ERROR_PAR_LEN
void onig_vsnprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc, UChar *pat, UChar *pat_end, const UChar *fmt, va_list args)
unsigned char buf[MIME_BUF_SIZE]
#define ONIG_NO_SUPPORT_CONFIG
#define ONIGERR_PARSER_BUG
int onigenc_str_bytelen_null(OnigEncoding enc, const UChar *s)
#define ONIGENC_MBC_TO_CODE(enc, p, end)
#define ONIGENC_MBC_MINLEN(enc)
#define ONIGERR_EMPTY_CHAR_CLASS
#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED
#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED
#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET
#define ONIGERR_TOO_BIG_BACKREF_NUMBER
#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS
#define ONIGERR_END_PATTERN_AT_ESCAPE
#define ONIGERR_CONTROL_CODE_SYNTAX
#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS
#define ONIGERR_INVALID_POSIX_BRACKET_TYPE
#define ONIGERR_EMPTY_GROUP_NAME
#define ONIGERR_TOO_BIG_NUMBER
#define ONIGERR_TOO_SHORT_DIGITS
#define ONIGERR_INVALID_ARGUMENT
#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET
#define ONIGERR_UNDEFINED_BYTECODE
#define ONIGERR_MATCH_STACK_LIMIT_OVER
#define ONIGERR_END_PATTERN_AT_CONTROL
#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE
#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE
#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS
#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS
#define ONIGERR_INVALID_CODE_POINT_VALUE
#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN
static void sprint_byte_with_x(char *s, unsigned int v)
#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY
#define ONIGERR_INVALID_GROUP_NAME
#define ONIGERR_UNDEFINED_GROUP_REFERENCE
#define enclen(enc, p, e)
#define ONIGERR_META_CODE_SYNTAX
#define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT
#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME