13#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY(_lower, _upper, _cont) \
17 if (ch < _lower || ch > _upper) { \
18 ctx->u.utf_8.lower = 0x00; \
19 ctx->u.utf_8.need = 0; \
21 LXB_ENCODING_DECODE_ERROR_BEGIN { \
23 ctx->have_error = true; \
25 LXB_ENCODING_DECODE_ERROR_END(); \
32 ctx->codepoint = (ctx->codepoint << 6) | (ch & 0x3F); \
36#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY_SET(first, two, f_lower, s_upper) \
39 ctx->u.utf_8.lower = f_lower; \
40 ctx->u.utf_8.upper = 0xBF; \
42 else if (ch == two) { \
43 ctx->u.utf_8.lower = 0x80; \
44 ctx->u.utf_8.upper = s_upper; \
49#define LXB_ENCODING_DECODE_APPEND_WO_CHECK(ctx, cp) \
51 (ctx)->buffer_out[(ctx)->buffer_used++] = (cp); \
55#define LXB_ENCODING_DECODE_APPEND(ctx, cp) \
57 if ((ctx)->buffer_used >= (ctx)->buffer_length) { \
58 return LXB_STATUS_SMALL_BUFFER; \
61 (ctx)->buffer_out[(ctx)->buffer_used++] = (cp); \
65#define LXB_ENCODING_DECODE_APPEND_P(ctx, cp) \
67 if ((ctx)->buffer_used >= (ctx)->buffer_length) { \
69 return LXB_STATUS_SMALL_BUFFER; \
72 (ctx)->buffer_out[(ctx)->buffer_used++] = (cp); \
76#define LXB_ENCODING_DECODE_CHECK_OUT(ctx) \
78 if ((ctx)->buffer_used >= (ctx)->buffer_length) { \
79 return LXB_STATUS_SMALL_BUFFER; \
84#define LXB_ENCODING_DECODE_ERROR_BEGIN \
86 if (ctx->replace_to == NULL) { \
87 return LXB_STATUS_ERROR; \
90 if ((ctx->buffer_used + ctx->replace_len) > ctx->buffer_length) { \
93#define LXB_ENCODING_DECODE_ERROR_END() \
96 return LXB_STATUS_SMALL_BUFFER; \
99 memcpy(&ctx->buffer_out[ctx->buffer_used], ctx->replace_to, \
100 sizeof(lxb_codepoint_t) * ctx->replace_len); \
102 ctx->buffer_used += ctx->replace_len; \
106#define LXB_ENCODING_DECODE_ERROR(ctx) \
108 LXB_ENCODING_DECODE_ERROR_BEGIN { \
109 } LXB_ENCODING_DECODE_ERROR_END(); \
113#define LXB_ENCODING_DECODE_FAILED(ident) \
115 if ((byte) < (0x80)) { \
119 LXB_ENCODING_DECODE_ERROR_BEGIN { \
120 ctx->have_error = true; \
123 LXB_ENCODING_DECODE_ERROR_END(); \
127#define LXB_ENCODING_DECODE_SINGLE(decode_map) \
129 const lxb_char_t *p = *data; \
133 LXB_ENCODING_DECODE_APPEND_P(ctx, *p++); \
136 ctx->codepoint = decode_map[(*p++) - 0x80].codepoint; \
137 if (ctx->codepoint == LXB_ENCODING_ERROR_CODEPOINT) { \
138 LXB_ENCODING_DECODE_ERROR_BEGIN { \
141 LXB_ENCODING_DECODE_ERROR_END(); \
145 LXB_ENCODING_DECODE_APPEND_P(ctx, ctx->codepoint); \
153#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY_SINGLE(lower, upper) \
157 if (ch < lower || ch > upper) { \
163 ctx->codepoint = (ctx->codepoint << 6) | (ch & 0x3F); \
167#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY_SET_SINGLE(first, two, f_lower, \
171 ctx->u.utf_8.lower = f_lower; \
172 ctx->u.utf_8.upper = 0xBF; \
174 else if (ch == two) { \
175 ctx->u.utf_8.lower = 0x80; \
176 ctx->u.utf_8.upper = s_upper; \
214 if (ctx->
u.
lead != 0x00) {
261 if ((
unsigned) (lead - 0x81) > (0xFE - 0x81)) {
282 if ((
unsigned) (
byte - 0x40) <= (0x7E - 0x40)
283 || (
unsigned) (
byte - 0xA1) <= (0xFE - 0xA1))
287 index = (lead - 0x81) * 157 + (
byte - 0x40);
291 index = (lead - 0x81) * 157 + (
byte - 0x62);
304 ctx->
u.
lead = 0x00CA;
317 ctx->
u.
lead = 0x00CA;
330 ctx->
u.
lead = 0x00EA;
343 ctx->
u.
lead = 0x00EA;
425 if ((
unsigned) (lead - 0xA1) > (0xFE - 0xA1)
426 && (lead != 0x8E && lead != 0x8F))
447 if (lead == 0x8E && (
unsigned) (
byte - 0xA1) <= (0xDF - 0xA1)) {
454 if (lead == 0x8F && (
unsigned) (
byte - 0xA1) <= (0xFE - 0xA1)) {
471 if ((
unsigned) (lead - 0xA1) > (0xFE - 0xA1)
472 || (
unsigned) (
byte - 0xA1) > (0xFE - 0xA1))
479 ctx->
codepoint = (lead - 0xA1) * 94 +
byte - 0xA1;
521 if (ctx->
u.
lead != 0x00) {
557 if ((
unsigned) (lead - 0x81) > (0xFE - 0x81)) {
577 if ((
unsigned) (
byte - 0x41) > (0xFE - 0x41)) {
583 ctx->
codepoint = (lead - 0x81) * 190 + (
byte - 0x41);
624#define LXB_ENCODING_DECODE_ISO_2022_JP_OK() \
626 if (*data >= end) { \
627 return LXB_STATUS_OK; \
632#define LXB_ENCODING_DECODE_ISO_2022_JP_CONTINUE() \
634 if (*data >= end) { \
635 ctx->status = LXB_STATUS_CONTINUE; \
636 return LXB_STATUS_CONTINUE; \
682 switch (iso->
state) {
692 if ((
unsigned) (
byte - 0x00) <= (0x7F - 0x00)
693 &&
byte != 0x0E &&
byte != 0x0F)
742 if ((
unsigned) (
byte - 0x00) <= (0x7F - 0x00)) {
773 if ((
unsigned) (
byte - 0x21) <= (0x5F - 0x21)) {
777 0xFF61 - 0x21 +
byte);
801 if ((
unsigned) (
byte - 0x21) <= (0x7E - 0x21)) {
836 if ((
unsigned) (
byte - 0x21) <= (0x7E - 0x21)) {
860 if (
byte == 0x24 ||
byte == 0x28) {
884 if (iso->
lead == 0x28) {
888 else if (
byte == 0x4A) {
891 else if (
byte == 0x49) {
895 else if (iso->
lead == 0x24) {
896 if (
byte == 0x40 ||
byte == 0x42) {
944#undef LXB_ENCODING_DECODE_ISO_2022_JP_OK
945#undef LXB_ENCODING_DECODE_ISO_2022_JP_CONTINUE
1091 if (ctx->
u.
lead != 0x00) {
1127 if ((
unsigned) (lead - 0xA1) <= (0xDF - 0xA1)) {
1132 if ((
unsigned) (lead - 0x81) > (0x9F - 0x81)
1133 && lead != 0xE0 && lead != 0xFC)
1168 if ((
unsigned) (
byte - 0x40) > (0x7E - 0x40)
1169 && (
unsigned) (
byte - 0x80) > (0xFC - 0x80))
1186 if ((
unsigned) (ctx->
codepoint - 8836) <= (10715 - 8836)) {
1221 if (ctx->
u.
lead != 0x00) {
1230 lead = ctx->
u.
lead - 0x01;
1244 ctx->
u.
lead = lead + 0x01;
1254 unit = (lead << 8) + *(*
data)++;
1257 unit = (*(*data)++ << 8) + lead;
1261 if ((
unsigned) (unit - 0xDC00) <= (0xDFFF - 0xDC00)) {
1278 ctx->
u.
lead = lead + 0x01;
1286 if ((
unsigned) (unit - 0xD800) <= (0xDFFF - 0xD800)) {
1287 if ((
unsigned) (unit - 0xDC00) <= (0xDFFF - 0xDC00)) {
1382 else if (
ch <= 0xDF) {
1395 else if (
ch < 0xF0) {
1413 else if (
ch == 0xED) {
1417 else if (
ch < 0xF5) {
1435 else if (
ch == 0xF4) {
1502 if ((
unsigned) (index - 39419) < (189000 - 39419)
1508 if (index == 7457) {
1522 if (range[mid].index < index) {
1529 else if (range[mid].index > index) {
1532 if (
right > 0 && range[
right].index <= index) {
1542 return range[mid].codepoint + index - range[mid].index;
1632 if (first == 0x80) {
1638 if ((
unsigned) (first - 0x81) > (0xFE - 0x81)) {
1657 second = *(*data)++;
1660 if ((
unsigned) (second - 0x30) > (0x39 - 0x30)) {
1661 offset = (second < 0x7F) ? 0x40 : 0x41;
1664 if ((
unsigned) (second - 0x40) <= (0x7E - 0x40)
1665 || (
unsigned) (second - 0x80) <= (0xFE - 0x80))
1667 pointer = (first - 0x81) * 190 + (second -
offset);
1670 if (second < 0x80) {
1685 if (second < 0x80) {
1716 if ((
unsigned) (third - 0x81) > (0xFE - 0x81)) {
1745 if ((
unsigned) (**
data - 0x30) > (0x39 - 0x30)) {
1778 pointer = ((first - 0x81) * (10 * 126 * 10))
1779 + ((second - 0x30) * (10 * 126))
1780 + ((third - 0x81) * 10) + (*(*
data)++) - 0x30;
1918 if (**
data < 0x80) {
1960 if (ctx->
u.
lead != 0x00) {
1984 if ((
unsigned) (lead - 0x81) > (0xFE - 0x81)) {
1999 if ((
unsigned) (
byte - 0x40) <= (0x7E - 0x40)
2000 || (
unsigned) (
byte - 0xA1) <= (0xFE - 0xA1))
2004 index = (lead - 0x81) * 157 + (
byte - 0x40);
2008 index = (lead - 0x81) * 157 + (
byte - 0x62);
2078 goto lead_jis_state;
2090 if ((
unsigned) (lead - 0xA1) > (0xFE - 0xA1)
2091 && (lead != 0x8E && lead != 0x8F))
2105 if (lead == 0x8E && (
unsigned) (
byte - 0xA1) <= (0xDF - 0xA1)) {
2106 return 0xFF61 - 0xA1 + byte;
2111 if (lead == 0x8F && (
unsigned) (
byte - 0xA1) <= (0xFE - 0xA1)) {
2126 if ((
unsigned) (lead - 0xA1) > (0xFE - 0xA1)
2127 || (
unsigned) (
byte - 0xA1) > (0xFE - 0xA1))
2133 ctx->
codepoint = (lead - 0xA1) * 94 +
byte - 0xA1;
2175 if (ctx->
u.
lead != 0x00) {
2188 if ((
unsigned) (lead - 0x81) > (0xFE - 0x81)) {
2201 if ((
unsigned) (
byte - 0x41) > (0xFE - 0x41)) {
2206 ctx->
codepoint = (lead - 0x81) * 190 + (
byte - 0x41);
2241 if (**
data < 0x80) {
2267 switch (iso->
state) {
2276 if ((
unsigned) (
byte - 0x00) <= (0x7F - 0x00)
2277 &&
byte != 0x0E &&
byte != 0x0F)
2311 if ((
unsigned) (
byte - 0x00) <= (0x7F - 0x00)) {
2332 if ((
unsigned) (
byte - 0x21) <= (0x5F - 0x21)) {
2335 return 0xFF61 - 0x21 + byte;
2350 if ((
unsigned) (
byte - 0x21) <= (0x7E - 0x21)) {
2372 if ((
unsigned) (
byte - 0x21) <= (0x7E - 0x21)) {
2382 if (
byte == 0x24 ||
byte == 0x28) {
2399 if (iso->
lead == 0x28) {
2403 else if (
byte == 0x4A) {
2406 else if (
byte == 0x49) {
2410 else if (iso->
lead == 0x24) {
2411 if (
byte == 0x40 ||
byte == 0x42) {
2449 if (**
data < 0x80) {
2460 if (**
data < 0x80) {
2471 if (**
data < 0x80) {
2482 if (**
data < 0x80) {
2493 if (**
data < 0x80) {
2504 if (**
data < 0x80) {
2515 if (**
data < 0x80) {
2526 if (**
data < 0x80) {
2537 if (**
data < 0x80) {
2548 if (**
data < 0x80) {
2559 if (**
data < 0x80) {
2570 if (**
data < 0x80) {
2581 if (**
data < 0x80) {
2592 if (**
data < 0x80) {
2603 if (**
data < 0x80) {
2616 if (ctx->
u.
lead != 0x00) {
2629 if ((
unsigned) (lead - 0xA1) <= (0xDF - 0xA1)) {
2630 return 0xFF61 - 0xA1 + lead;
2633 if ((
unsigned) (lead - 0x81) > (0x9F - 0x81)
2634 && lead != 0xE0 && lead != 0xFC)
2663 if ((
unsigned) (
byte - 0x40) <= (0x7E - 0x40)
2664 || (
unsigned) (
byte - 0x80) <= (0xFC - 0x80))
2676 if ((
unsigned) (ctx->
codepoint - 8836) <= (10715 - 8836)) {
2704 if (ctx->
u.
lead != 0x00) {
2705 lead = ctx->
u.
lead - 0x01;
2716 ctx->
u.
lead = lead + 0x01;
2724 unit = (lead << 8) + *(*
data)++;
2727 unit = (*(*data)++ << 8) + lead;
2731 if ((
unsigned) (unit - 0xDC00) <= (0xDFFF - 0xDC00)) {
2741 ctx->
u.
lead = lead + 0x01;
2748 if ((
unsigned) (unit - 0xD800) <= (0xDFFF - 0xD800)) {
2749 if ((
unsigned) (unit - 0xDC00) <= (0xDFFF - 0xDC00)) {
2805 else if (
ch <= 0xDF) {
2813 else if (
ch < 0xF0) {
2826 else if (
ch == 0xED) {
2830 else if (
ch < 0xF5) {
2844 else if (
ch == 0xF4) {
2865 if (--needed == 0) {
2907 else if ((*
p & 0xe0) == 0xc0) {
2915 cp = (
p[0] ^ (0xC0 &
p[0])) << 6;
2916 cp |= (
p[1] ^ (0x80 &
p[1]));
2920 else if ((*
p & 0xf0) == 0xe0) {
2928 cp = (
p[0] ^ (0xE0 &
p[0])) << 12;
2929 cp |= (
p[1] ^ (0x80 &
p[1])) << 6;
2930 cp |= (
p[2] ^ (0x80 &
p[2]));
2934 else if ((*
p & 0xf8) == 0xf0) {
2942 cp = (
p[0] ^ (0xF0 &
p[0])) << 18;
2943 cp |= (
p[1] ^ (0x80 &
p[1])) << 12;
2944 cp |= (
p[2] ^ (0x80 &
p[2])) << 6;
2945 cp |= (
p[3] ^ (0x80 &
p[3]));
2974 else if ((*
p & 0xe0) == 0xc0) {
2982 cp = (
p[0] ^ (0xC0 &
p[0])) << 6;
2983 cp |= (
p[1] ^ (0x80 &
p[1]));
2988 else if ((*
p & 0xf0) == 0xe0) {
2996 cp = (
p[0] ^ (0xE0 &
p[0])) << 12;
2997 cp |= (
p[1] ^ (0x80 &
p[1])) << 6;
2998 cp |= (
p[2] ^ (0x80 &
p[2]));
3003 else if ((*
p & 0xf8) == 0xf0) {
3011 cp = (
p[0] ^ (0xF0 &
p[0])) << 18;
3012 cp |= (
p[1] ^ (0x80 &
p[1])) << 12;
3013 cp |= (
p[2] ^ (0x80 &
p[2])) << 6;
3014 cp |= (
p[3] ^ (0x80 &
p[3]));
3019 else if (*
end -
p >= 4) {
3036 else if ((
data & 0xe0) == 0xc0) {
3039 else if ((
data & 0xf0) == 0xe0) {
3042 else if ((
data & 0xf8) == 0xf0) {
3104 if (first == 0x80) {
3109 if ((
unsigned) (first - 0x81) > (0xFE - 0x81)) {
3121 second = *(*data)++;
3124 if ((
unsigned) (second - 0x30) > (0x39 - 0x30)) {
3125 offset = (second < 0x7F) ? 0x40 : 0x41;
3128 if ((
unsigned) (second - 0x40) <= (0x7E - 0x40)
3129 || (
unsigned) (second - 0x80) <= (0xFE - 0x80))
3131 pointer = (first - 0x81) * 190 + (second -
offset);
3159 if ((
unsigned) (third - 0x81) > (0xFE - 0x81)) {
3180 if ((
unsigned) (**
data - 0x30) > (0x39 - 0x30)) {
3191 pointer = ((first - 0x81) * (10 * 126 * 10))
3192 + ((second - 0x30) * (10 * 126))
3193 + ((third - 0x81) * 10) + (*(*
data)++) - 0x30;
3199 if (second < 0x80) {
3210 if (**
data < 0x80) {
3228 if (**
data < 0x80) {
3239 if (**
data < 0x80) {
3250 if (**
data < 0x80) {
3261 if (**
data < 0x80) {
3272 if (**
data < 0x80) {
3283 if (**
data < 0x80) {
3294 if (**
data < 0x80) {
3305 if (**
data < 0x80) {
3316 if (**
data < 0x80) {
3327 if (**
data < 0x80) {
3338 if (**
data < 0x80) {
3349 if (**
data < 0x80) {
3353 return 0xF780 + (*(*data)++) - 0x80;
LXB_API const lxb_encoding_multi_index_t lxb_encoding_multi_index_big5[19782]
@ LXB_STATUS_SMALL_BUFFER
lxb_codepoint_t lxb_encoding_decode_auto_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1256(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_utf_16be_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_utf_16le_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_2022_jp(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_5(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1252(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_undefined(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_macintosh(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1250(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_koi8_r_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_ibm866(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_ERROR_END()
lxb_codepoint_t lxb_encoding_decode_koi8_u_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_ISO_2022_JP_CONTINUE()
lxb_codepoint_t lxb_encoding_decode_windows_1257_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_10(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_3(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_default_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_utf_16be(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_windows_874_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
uint8_t lxb_encoding_decode_utf_8_length(lxb_char_t data)
lxb_status_t lxb_encoding_decode_iso_8859_16(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_6(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_x_user_defined(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_big5(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_windows_1255_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_windows_1250_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY_SET(first, two, f_lower, s_upper)
#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY_SET_SINGLE(first, two, f_lower, s_upper)
lxb_status_t lxb_encoding_decode_gb18030(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_5_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_default(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_inline lxb_status_t lxb_encoding_decode_utf_16(lxb_encoding_decode_t *ctx, bool is_be, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_7(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_13(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_utf_16le(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_8(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_SINGLE(decode_map)
lxb_codepoint_t lxb_encoding_decode_iso_8859_7_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_8_i(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_euc_jp(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_8_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_koi8_r(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1257(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_3_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_x_user_defined_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_x_mac_cyrillic(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_gbk(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY(_lower, _upper, _cont)
lxb_codepoint_t lxb_encoding_decode_iso_8859_13_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_UTF_8_BOUNDARY_SINGLE(lower, upper)
#define LXB_ENCODING_DECODE_FAILED(ident)
lxb_codepoint_t lxb_encoding_decode_euc_jp_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_shift_jis(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_4(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_ERROR(ctx)
lxb_codepoint_t lxb_encoding_decode_windows_1256_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_macintosh_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_koi8_u(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_2_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_15(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_utf_8(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_undefined_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_euc_kr_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_shift_jis_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1258(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_6_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_valid_utf_8_single(const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_windows_1252_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_CHECK_OUT(ctx)
lxb_status_t lxb_encoding_decode_auto(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_15_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_x_mac_cyrillic_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_10_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_APPEND(ctx, cp)
lxb_status_t lxb_encoding_decode_iso_8859_2(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_inline lxb_codepoint_t lxb_encoding_decode_utf_16_single(lxb_encoding_decode_t *ctx, bool is_be, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_16_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_ERROR_BEGIN
lxb_codepoint_t lxb_encoding_decode_windows_1254_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_replacement(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_euc_kr(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1254(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_ISO_2022_JP_OK()
lxb_codepoint_t lxb_encoding_decode_windows_1258_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_windows_1253_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_iso_8859_14(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_inline lxb_codepoint_t lxb_encoding_decode_gb18030_range(uint32_t index)
lxb_codepoint_t lxb_encoding_decode_gbk_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_14_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
#define LXB_ENCODING_DECODE_APPEND_WO_CHECK(ctx, cp)
lxb_codepoint_t lxb_encoding_decode_windows_1251_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_gb18030_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_2022_jp_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_4_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_874(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1255(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_big5_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_iso_8859_8_i_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1251(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_ibm866_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_utf_8_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_replacement_single(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_status_t lxb_encoding_decode_windows_1253(lxb_encoding_decode_t *ctx, const lxb_char_t **data, const lxb_char_t *end)
lxb_codepoint_t lxb_encoding_decode_valid_utf_8_single_reverse(const lxb_char_t **end, const lxb_char_t *begin)
@ LXB_ENCODING_DECODE_CONTINUE
@ LXB_ENCODING_ERROR_CODEPOINT
lxb_encoding_single_index_t lxb_encoding_multi_index_t
@ LXB_ENCODING_DECODE_2022_JP_TRAIL
@ LXB_ENCODING_DECODE_2022_JP_ASCII
@ LXB_ENCODING_DECODE_2022_JP_ESCAPE
@ LXB_ENCODING_DECODE_2022_JP_UNSET
@ LXB_ENCODING_DECODE_2022_JP_ROMAN
@ LXB_ENCODING_DECODE_2022_JP_LEAD
@ LXB_ENCODING_DECODE_2022_JP_KATAKANA
@ LXB_ENCODING_DECODE_2022_JP_ESCAPE_START
LXB_API const lxb_encoding_multi_index_t lxb_encoding_multi_index_euc_kr[23750]
memset(ptr, 0, type->size)
LXB_API const lxb_encoding_multi_index_t lxb_encoding_multi_index_gb18030[23940]
LXB_API const lxb_encoding_multi_index_t lxb_encoding_multi_index_jis0208[11104]
LXB_API const lxb_encoding_multi_index_t lxb_encoding_multi_index_jis0212[7211]
unsigned const char * end
LXB_API const lxb_encoding_range_index_t lxb_encoding_range_index_gb18030[207]
#define LXB_ENCODING_RANGE_INDEX_GB18030_SIZE
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_14[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1255[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_10[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_3[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_ibm866[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_macintosh[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_6[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_874[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_5[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1252[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_2[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1253[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1250[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_koi8_r[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_4[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1257[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_15[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1258[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1254[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_16[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_8[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_13[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_koi8_u[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1251[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_iso_8859_7[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_windows_1256[128]
LXB_API const lxb_encoding_single_index_t lxb_encoding_single_index_x_mac_cyrillic[128]
lxb_codepoint_t codepoint
lxb_encoding_ctx_utf_8_t utf_8
union lxb_encoding_decode_t::@302274252113053227061303304053361346350151303155 u
lxb_encoding_ctx_euc_jp_t euc_jp
lxb_encoding_ctx_2022_jp_t iso_2022_jp
lxb_codepoint_t second_codepoint
lxb_encoding_ctx_gb18030_t gb18030
unsigned int lxb_status_t