34 #define DEBUG_GB18030(arg)
36 #define DEBUG_GB18030(arg) printf arg
47 C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
48 C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
49 C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
C1,
50 C4,
C4,
C4,
C4,
C4,
C4,
C4,
C4,
C4,
C4,
C1,
C1,
C1,
C1,
C1,
C1,
51 C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
52 C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
53 C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
54 C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C2,
C1,
55 C2,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
56 CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
57 CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
58 CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
59 CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
60 CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
61 CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
62 CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM,
CM, C1
68 static const signed char trans[][0x100] = {
70 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
71 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
72 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
73 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
74 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
75 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
76 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
77 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
78 F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
79 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
80 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
81 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
82 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
83 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
84 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
85 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F
88 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
89 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
90 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
91 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
F,
F,
F,
F,
F,
F,
92 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
93 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
94 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
95 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
F,
96 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
97 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
98 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
99 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
100 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
101 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
102 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
103 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
A, F
106 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
107 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
108 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
109 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
110 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
111 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
112 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
113 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
114 F, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
115 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
116 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
117 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
118 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
119 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
120 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
121 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, F
124 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
125 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
126 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
127 A,
A,
A,
A,
A,
A,
A,
A,
A,
A,
F,
F,
F,
F,
F,
F,
128 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
129 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
130 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
131 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
132 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
133 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
134 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
135 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
136 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
137 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
138 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
139 F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F,
F, F
148 int firstbyte = *p++;
151 return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \
152 ONIGENC_CONSTRUCT_MBCLEN_INVALID()
172 len =
enclen(enc, p, end);
174 if (len == 1)
return n;
176 for (i = 1; i <
len; i++) {
203 return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end);
254 for (p = s; p >= start; p--) {
313 return (
UChar *)(s - 1);
335 return (
UChar *)(s - 1);
348 return (
UChar *)(s - 1);
362 return (
UChar *)(s - 1);
372 return (
UChar *)(s - 3);
386 return (
UChar *)(s - 3);
398 return (
UChar *)(s - 3);
409 return (
UChar *)(s - 1);
421 return (
UChar *)(s - 1);
432 return (
UChar *)(s - 3);
454 return (
UChar *)(s - 2);
468 return (
UChar *)(s - 2);
478 return (
UChar *)(s - 0);
493 return (
UChar *)(s - 0);
504 return (
UChar *)(s - 2);
516 return (
UChar *)(s - 2);
527 return (
UChar *)(s - 0);
unsigned int OnigCodePoint
static int gb18030_mbc_enc_len(const UChar *p, const UChar *e, OnigEncoding enc ARG_UNUSED)
static int gb18030_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)
unsigned int OnigCaseFoldType
int onigenc_mbn_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag ARG_UNUSED, const UChar **pp, const UChar *end ARG_UNUSED, UChar *lower)
static int gb18030_is_allowed_reverse_match(const UChar *s, const UChar *end ARG_UNUSED, OnigEncoding enc ARG_UNUSED)
static UChar * gb18030_left_adjust_char_head(const UChar *start, const UChar *s, const UChar *end, OnigEncoding enc)
int onigenc_ascii_apply_all_case_fold(OnigCaseFoldType flag ARG_UNUSED, OnigApplyAllCaseFoldFunc f, void *arg, OnigEncoding enc ARG_UNUSED)
OnigEncodingDefine(gb18030, GB18030)
static OnigCodePoint gb18030_mbc_to_code(const UChar *p, const UChar *end, OnigEncoding enc)
#define enclen(enc, p, e)
static const signed char trans[][0x100]
#define DEBUG_GB18030(arg)
#define ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n)
int onigenc_is_mbc_newline_0x0a(const UChar *p, const UChar *end, OnigEncoding enc ARG_UNUSED)
static const char GB18030_MAP[]
int onigenc_mb4_is_code_ctype(OnigEncoding enc, OnigCodePoint code, unsigned int ctype)
static int gb18030_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)
unsigned char buf[MIME_BUF_SIZE]
register unsigned int len
int onigenc_not_support_get_ctype_code_range(OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint *ranges[], OnigEncoding enc)
int onigenc_ascii_get_case_fold_codes_by_str(OnigCaseFoldType flag ARG_UNUSED, const OnigUChar *p, const OnigUChar *end ARG_UNUSED, OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED)
int onigenc_mb4_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf)
static int gb18030_mbc_case_fold(OnigCaseFoldType flag, const UChar **pp, const UChar *end, UChar *lower, OnigEncoding enc)
int onigenc_mb4_code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED)
int onigenc_minimum_property_name_to_ctype(OnigEncoding enc, UChar *p, UChar *end)