13#define LXB_ENCODING_ENCODE_APPEND(ctx, cp) \
15 if ((ctx)->buffer_used == (ctx)->buffer_length) { \
16 return LXB_STATUS_SMALL_BUFFER; \
19 (ctx)->buffer_out[(ctx)->buffer_used++] = (lxb_char_t) cp; \
23#define LXB_ENCODING_ENCODE_APPEND_P(ctx, cp) \
25 if ((ctx)->buffer_used == (ctx)->buffer_length) { \
27 return LXB_STATUS_SMALL_BUFFER; \
30 (ctx)->buffer_out[(ctx)->buffer_used++] = (lxb_char_t) cp; \
34#define LXB_ENCODING_ENCODE_ERROR(ctx) \
36 if (ctx->replace_to == NULL) { \
37 return LXB_STATUS_ERROR; \
40 if ((ctx->buffer_used + ctx->replace_len) > ctx->buffer_length) { \
41 return LXB_STATUS_SMALL_BUFFER; \
44 memcpy(&ctx->buffer_out[ctx->buffer_used], ctx->replace_to, \
47 ctx->buffer_used += ctx->replace_len; \
51#define LXB_ENCODING_ENCODE_ERROR_P(ctx) \
53 if (ctx->replace_to == NULL) { \
55 return LXB_STATUS_ERROR; \
58 if ((ctx->buffer_used + ctx->replace_len) > ctx->buffer_length) { \
60 return LXB_STATUS_SMALL_BUFFER; \
63 memcpy(&ctx->buffer_out[ctx->buffer_used], ctx->replace_to, \
66 ctx->buffer_used += ctx->replace_len; \
70#define LXB_ENCODING_ENCODE_SINGLE_BYTE(table, table_size) \
73 const lxb_codepoint_t *p = *cps; \
74 const lexbor_shs_hash_t *hash; \
76 for (; p < end; p++) { \
80 LXB_ENCODING_ENCODE_APPEND_P(ctx, cp); \
84 hash = lexbor_shs_hash_get_static(table, table_size, cp); \
86 LXB_ENCODING_ENCODE_ERROR_P(ctx); \
90 LXB_ENCODING_ENCODE_APPEND_P(ctx, (uintptr_t) hash->value); \
93 return LXB_STATUS_OK; \
97#define LXB_ENCODING_ENCODE_BYTE_SINGLE(table, table_size) \
98 const lexbor_shs_hash_t *hash; \
101 *(*data)++ = (lxb_char_t) cp; \
105 hash = lexbor_shs_hash_get_static(table, table_size, cp); \
106 if (hash == NULL) { \
107 return LXB_ENCODING_ENCODE_ERROR; \
110 *(*data)++ = (lxb_char_t) (uintptr_t) hash->value; \
144 for (; *cps <
end; (*cps)++) {
165 if ((((uint32_t) (uintptr_t)
hash->value) % 157) < 0x3F) {
183 for (; *cps <
end; (*cps)++) {
201 if ((
unsigned) (
cp - 0xFF61) <= (0xFF9F - 0xFF61)) {
241 for (; *cps <
end; (*cps)++) {
274 for (; *cps <
end; (*cps)++) {
337 for (; *cps <
end; (*cps)++) {
342 switch (ctx->
state) {
344 if (
cp == 0x000E ||
cp == 0x000F ||
cp == 0x001B) {
353 if (
cp == 0x00A5 ||
cp == 0x203E) {
366 "\x1B\x28\x4A\x5C", 4);
373 "\x1B\x28\x4A\x7E", 4);
382 if (
cp == 0x000E ||
cp == 0x000F ||
cp == 0x001B) {
413 else if (
cp == 0x00A5) {
417 else if (
cp == 0x203E) {
439 if (
cp == 0x00A5 ||
cp == 0x203E) {
448 "\x1B\x28\x4A\x5C", 4);
455 "\x1B\x28\x4A\x7E", 4);
472 if ((
unsigned) (
cp - 0xFF61) <= (0xFF9F - 0xFF61)) {
660 if (entry->
key ==
cp) {
661 if ((
unsigned) ((uint32_t) (uintptr_t) entry->
value - 8272) > (8835 - 8272)) {
677 uint32_t lead, trail;
681 for (; *cps <
end; (*cps)++) {
689 if ((
unsigned) (
cp - 0xFF61) <= (0xFF9F - 0xFF61)) {
718 lead = (uint32_t) (uintptr_t)
hash->value / 188;
719 trail = (uint32_t) (uintptr_t)
hash->value % 188;
749 for (; *cps <
end; (*cps)++) {
796 for (;
p <
end;
p++) {
809 else if (
cp < 0x800) {
820 else if (
cp < 0x10000) {
832 else if (
cp < 0x110000) {
876 if (range[mid].codepoint <
cp) {
883 else if (range[mid].codepoint >
cp) {
896 return range[mid].index +
cp - range[mid].codepoint;
907 for (; *cps <
end; (*cps)++) {
929 if (((uint32_t) (uintptr_t)
hash->value % 190) < 0x3F) {
948 index = (index % (10 * 126 * 10)) % (10 * 126);
1067 for (; *cps <
end; (*cps)++) {
1073 else if (
cp >= 0xF780 &&
cp <= 0xF7FF) {
1130 *(*data)++ = ((uint32_t) (uintptr_t)
hash->value) / 157 + 0x81;
1132 if ((((uint32_t) (uintptr_t)
hash->value) % 157) < 0x3F) {
1133 *(*data)++ = (((uint32_t) (uintptr_t)
hash->value) % 157) + 0x40;
1136 *(*data)++ = (((uint32_t) (uintptr_t)
hash->value) % 157) + 0x62;
1170 if ((
unsigned) (
cp - 0xFF61) <= (0xFF9F - 0xFF61)) {
1172 *(*data)++ =
cp - 0xFF61 + 0xA1;
1187 *(*data)++ = (uint32_t) (uintptr_t)
hash->value / 94 + 0xA1;
1188 *(*data)++ = (uint32_t) (uintptr_t)
hash->value % 94 + 0xA1;
1215 *(*data)++ = (uint32_t) (uintptr_t)
hash->value / 190 + 0x81;
1216 *(*data)++ = (uint32_t) (uintptr_t)
hash->value % 190 + 0x41;
1253 *(*data)++ = ((
lxb_char_t) (uintptr_t)
hash->value % 190) + 0x40;
1256 *(*data)++ = ((
lxb_char_t) (uintptr_t)
hash->value % 190) + 0x41;
1286 switch (ctx->
state) {
1288 if (
cp == 0x000E ||
cp == 0x000F ||
cp == 0x001B) {
1298 if (
cp == 0x00A5 ||
cp == 0x203E) {
1325 if (
cp == 0x000E ||
cp == 0x000F ||
cp == 0x001B) {
1357 else if (
cp == 0x00A5) {
1361 else if (
cp == 0x203E) {
1384 if (
cp == 0x00A5 ||
cp == 0x203E) {
1415 if ((
unsigned) (
cp - 0xFF61) <= (0xFF9F - 0xFF61)) {
1439 *(*data)++ = (uint32_t) (uintptr_t)
hash->value / 94 + 0x21;
1440 *(*data)++ = (uint32_t) (uintptr_t)
hash->value % 94 + 0x21;
1602 uint32_t lead, trail;
1611 if ((
unsigned) (
cp - 0xFF61) <= (0xFF9F - 0xFF61)) {
1612 *(*data)++ =
cp - 0xFF61 + 0xA1;
1640 lead = (uint32_t) (uintptr_t)
hash->value / 188;
1641 trail = (uint32_t) (uintptr_t)
hash->value % 188;
1643 *(*data)++ = lead + ((lead < 0x1F) ? 0x81 : 0xC1);
1644 *(*data)++ = trail + ((trail < 0x3F) ? 0x40 : 0x41);
1654 *(*data)++ =
cp >> 8;
1655 *(*data)++ =
cp & 0x00FF;
1660 *(*data)++ =
cp & 0x00FF;
1661 *(*data)++ =
cp >> 8;
1734 *(*data)++ = (
lxb_char_t) (0x80 | ((
cp >> 6 ) & 0x3F));
1740 if (
cp < 0x110000) {
1747 *(*data)++ = (
lxb_char_t) (0x80 | ((
cp >> 12) & 0x3F));
1748 *(*data)++ = (
lxb_char_t) (0x80 | ((
cp >> 6 ) & 0x3F));
1763 else if (
cp < 0x800) {
1766 else if (
cp < 0x10000) {
1769 else if (
cp < 0x110000) {
1800 *(*data)++ = (uint32_t) (uintptr_t)
hash->value / 190 + 0x81;
1802 if (((uint32_t) (uintptr_t)
hash->value % 190) < 0x3F) {
1803 *(*data)++ = ((uint32_t) (uintptr_t)
hash->value % 190) + 0x40;
1806 *(*data)++ = ((uint32_t) (uintptr_t)
hash->value % 190) + 0x41;
1818 *(*data)++ = (index / (10 * 126 * 10)) + 0x81;
1819 *(*data)++ = ((index % (10 * 126 * 10)) / (10 * 126)) + 0x30;
1821 index = (index % (10 * 126 * 10)) % (10 * 126);
1823 *(*data)++ = (index / 10) + 0x81;
1824 *(*data)++ = (index % 10) + 0x30;
1943 if (
cp >= 0xF780 &&
cp <= 0xF7FF) {
LXB_API const lexbor_shs_hash_t lxb_encoding_multi_hash_big5[23033]
@ LXB_STATUS_SMALL_BUFFER
int8_t lxb_encoding_encode_undefined_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_windows_1253(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_iso_8859_3(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_windows_874(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
#define LXB_ENCODING_ENCODE_BYTE_SINGLE(table, table_size)
int8_t lxb_encoding_encode_default_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_14_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_windows_1254(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_iso_8859_14(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_iso_8859_5_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_15_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_8859_7(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_inline int8_t lxb_encoding_encode_utf_16_single(lxb_encoding_encode_t *ctx, bool is_be, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_koi8_u(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_windows_1258_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_replacement_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_8859_6(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_inline void lxb_encoding_encode_utf_16_write_single(bool is_be, lxb_char_t **data, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_8859_8(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_inline const lexbor_shs_hash_t * lxb_encoding_encode_shift_jis_index(lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_windows_1251(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_iso_8859_10_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_x_mac_cyrillic_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_inline int8_t lxb_encoding_encode_utf_16(lxb_encoding_encode_t *ctx, bool is_be, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_iso_8859_15(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_macintosh(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_x_mac_cyrillic(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_utf_8_length(lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_8859_10(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_macintosh_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_big5(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_shift_jis(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_windows_1255(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_windows_1255_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_inline void lxb_encoding_encode_utf_16_write(lxb_encoding_encode_t *ctx, bool is_be, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_utf_8(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_windows_1250_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_windows_1252(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_default(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_iso_8859_16(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_gbk(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_iso_2022_jp(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_windows_1256(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_replacement(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_utf_16le(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_windows_1251_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_windows_1257_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_windows_1258(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
#define LXB_ENCODING_ENCODE_SINGLE_BYTE(table, table_size)
int8_t lxb_encoding_encode_utf_16be_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_ibm866_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_euc_jp_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_undefined(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
#define LXB_ENCODING_ENCODE_ERROR(ctx)
int8_t lxb_encoding_encode_windows_1254_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_koi8_u_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_windows_1256_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_windows_1253_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_auto_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_13_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_koi8_r_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_gb18030(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_iso_8859_2_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_16_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_7_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_8_i_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_x_user_defined_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_x_user_defined(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
#define LXB_ENCODING_ENCODE_APPEND(ctx, cp)
int8_t lxb_encoding_encode_shift_jis_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_inline uint32_t lxb_encoding_encode_gb18030_range(lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_4_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_euc_jp(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_euc_kr_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_gb18030_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_windows_1252_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_8_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_auto(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_utf_16be(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_gbk_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_windows_1257(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_iso_8859_6_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_koi8_r(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_ibm866(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_windows_1250(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_iso_8859_4(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_utf_8_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_2022_jp_eof_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end)
int8_t lxb_encoding_encode_big5_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
int8_t lxb_encoding_encode_iso_8859_3_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_8859_13(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
lxb_status_t lxb_encoding_encode_iso_8859_5(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_iso_2022_jp_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_8859_8_i(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_utf_16le_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_8859_2(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
int8_t lxb_encoding_encode_windows_874_single(lxb_encoding_encode_t *ctx, lxb_char_t **data, const lxb_char_t *end, lxb_codepoint_t cp)
lxb_status_t lxb_encoding_encode_iso_2022_jp_eof(lxb_encoding_encode_t *ctx)
lxb_status_t lxb_encoding_encode_euc_kr(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cps, const lxb_codepoint_t *end)
@ LXB_ENCODING_ENCODE_SMALL_BUFFER
@ LXB_ENCODING_ENCODE_2022_JP_ROMAN
@ LXB_ENCODING_ENCODE_2022_JP_JIS0208
@ LXB_ENCODING_ENCODE_2022_JP_ASCII
LXB_API const lexbor_shs_hash_t lxb_encoding_multi_hash_euc_kr[30109]
LXB_API const lexbor_shs_hash_t lxb_encoding_multi_hash_gb18030[23941]
hash(string $algo, string $data, bool $binary=false, array $options=[])
LXB_API const lxb_encoding_multi_index_t lxb_encoding_multi_index_iso_2022_jp_katakana[63]
LXB_API const lexbor_shs_hash_t lxb_encoding_multi_hash_jis0208[11349]
#define LXB_ENCODING_MULTI_HASH_GB18030_SIZE
#define LXB_ENCODING_MULTI_HASH_EUC_KR_SIZE
#define LXB_ENCODING_MULTI_HASH_BIG5_SIZE
#define LXB_ENCODING_MULTI_HASH_JIS0208_SIZE
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_inline const lexbor_shs_hash_t * lexbor_shs_hash_get_static(const lexbor_shs_hash_t *table, const size_t table_size, const uint32_t key)
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_16[414]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_14[408]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_koi8_u[381]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1255[468]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1254[355]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_koi8_r[487]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_13[346]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_5[344]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1251[363]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_6[344]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_x_mac_cyrillic[374]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1256[357]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_8[348]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_4[344]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1258[406]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_7[345]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_2[369]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1252[374]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1250[433]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_10[344]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_ibm866[345]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_874[360]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_15[345]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_macintosh[351]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1253[355]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_iso_8859_3[344]
LXB_API const lexbor_shs_hash_t lxb_encoding_single_hash_windows_1257[356]
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_15_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_13_SIZE
#define LXB_ENCODING_SINGLE_HASH_IBM866_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1255_SIZE
#define LXB_ENCODING_SINGLE_HASH_KOI8_R_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_16_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1252_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1256_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_3_SIZE
#define LXB_ENCODING_SINGLE_HASH_MACINTOSH_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1254_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1253_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_4_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_7_SIZE
#define LXB_ENCODING_SINGLE_HASH_KOI8_U_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1250_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_874_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_6_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_14_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1258_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_5_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_2_SIZE
#define LXB_ENCODING_SINGLE_HASH_X_MAC_CYRILLIC_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1251_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_10_SIZE
#define LXB_ENCODING_SINGLE_HASH_WINDOWS_1257_SIZE
#define LXB_ENCODING_SINGLE_HASH_ISO_8859_8_SIZE
unsigned int lxb_status_t