Tsukada
ttsuk****@users*****
2002年 8月 10日 (土) 11:40:38 JST
ttsukada 02/08/10 11:40:38 Modified: ext/mbstring/mbfl codeset.c filter_ja.c Log: improved CP932 mapping table Revision Changes Path 1.3 +2 -2 php4/ext/mbstring/mbfl/codeset.c Index: codeset.c =================================================================== RCS file: /cvsroot/php-i18n/php4/ext/mbstring/mbfl/codeset.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- codeset.c 30 May 2002 17:42:44 -0000 1.2 +++ codeset.c 10 Aug 2002 02:40:37 -0000 1.3 @@ -127,8 +127,8 @@ }; static const mbfl_codeset cp932 = { - "CP932", - "CP932", + "WINDOWS_CP932", + "W932", MBFL_WCSPLANE_WINCP932, MBFL_MEMORY_TYPE_CONST }; 1.3 +1984 -697 php4/ext/mbstring/mbfl/filter_ja.c Index: filter_ja.c =================================================================== RCS file: /cvsroot/php-i18n/php4/ext/mbstring/mbfl/filter_ja.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- filter_ja.c 25 May 2002 16:32:19 -0000 1.2 +++ filter_ja.c 10 Aug 2002 02:40:37 -0000 1.3 @@ -82,25 +82,147 @@ /* + * convert table + */ +static inline int +convert_table_mbtowc(mbfl_convert_table **table_list, int index, int code) +{ + int wchar, min, max, pos, val; + mbfl_convert_table *convert_table; + + wchar = -1; + while ((convert_table = *table_list++) != NULL) { + switch (convert_table->type) { + case MBFL_TABLE_TYPE_LOOKUP: + if (index >= convert_table->min && index < convert_table->max) { + wchar = convert_table->table[index - convert_table->min]; + if (wchar >= 0) { + goto exit; + } + } + break; + + case MBFL_TABLE_TYPE_SORT: + min = 0; + max = convert_table->size/2 - 1; + if (max <= 0) { + break; + } + while (1) { + pos = min + max; + pos &= ~1; + val = convert_table->table[pos]; + if (code == val) { + wchar = convert_table->table[pos + 1]; + goto exit; + } + if (code > val) { + min = pos/2 + 1; + } else { + max = pos/2 - 1; + } + if (min > max) { + break; + } + } + break; + + case MBFL_TABLE_TYPE_PAIR: + pos = convert_table->size - 2; + while (pos >= 0) { + if (code == convert_table->table[pos]) { + wchar = convert_table->table[pos + 1]; + goto exit; + } + pos -= 2; + } + break; + } + } + +exit: + return wchar; +} + + +/* + * convert table + */ +static inline int +convert_table_wctomb(mbfl_convert_table **table_list, int wchar) +{ + int mbc, min, max, pos, val; + mbfl_convert_table *convert_table; + + mbc = -1; + while ((convert_table = *table_list++) != NULL) { + switch (convert_table->type) { + case MBFL_TABLE_TYPE_LOOKUP: + if (wchar >= convert_table->min && wchar < convert_table->max) { + mbc = convert_table->table[wchar - convert_table->min]; + if (mbc >= 0) { + goto exit; + } + } + break; + + case MBFL_TABLE_TYPE_SORT: + min = 0; + max = convert_table->size/2 - 1; + while (1) { + pos = min + max; + pos &= ~1; + val = convert_table->table[pos]; + if (wchar == val) { + mbc = convert_table->table[pos + 1]; + goto exit; + } + if (wchar > val) { + min = pos/2 + 1; + } else { + max = pos/2 - 1; + } + if (min > max) { + break; + } + } + break; + + case MBFL_TABLE_TYPE_PAIR: + pos = convert_table->size - 1; + while (pos > 0) { + if (wchar == convert_table->table[pos]) { + mbc = convert_table->table[pos - 1]; + goto exit; + } + pos -= 2; + } + break; + } + } + +exit: + return mbc; +} + + +/* * EUC-JP => wchar */ static int filt_conv_eucjp_wchar(int c, mbfl_convert_filter *filter) { - int c1, i, j, code, index, wchar; - const mbfl_pair_table *pair_table; - const mbfl_lookup_table *lookup_table; + int c1, code, index, wchar; c1 = 0; code = -1; index = -1; - wchar = -1; switch (filter->status) { case 0: code = c; if (c >= 0 && c < 0x80) { /* G0 */ index = c; - } else if (c > 0xa0 && c < 0xff) { /* G1 first char */ + } else if (c >= 0xa1 && c < 0xff) { /* G1 first char */ filter->status = 1; filter->cache = c; return c; @@ -130,9 +252,9 @@ case 2: /* G2 first char */ filter->status = 0; code = 0x8e00 | c; - if (c > 0xa0 && c < 0xe0) { + if (c >= 0xa1 && c < 0xe0) { index = c | MBFL_WCSPLANE_JIS0201; - } else if ((c >= 0 && c < 0x21) || c >= 0x7f) { /* CTLs */ + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ code = c; index = c; } @@ -153,7 +275,7 @@ filter->status = 0; c1 = filter->cache; code = 0x8f0000 | (c1 << 8) | c; - if (c1 > 0xa0 && c1 < 0xff && c > 0xa0 && c < 0xff) { + if (c1 >= 0xa1 && c1 < 0xff && c >= 0xa1 && c < 0xff) { index = (c1 - 0xa1)*94 + c - 0xa1 + MBFL_WCSPLANE_JIS0212; } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ code = c; @@ -166,55 +288,23 @@ return c; } - if (filter->pair_table_list != NULL && code >= 0) { - i = 0; - while ((pair_table = filter->pair_table_list[i++]) != NULL) { - j = pair_table->size - 1; - while (j >= 0) { - if (code == pair_table->table[j].mb) { - wchar = pair_table->table[j].uc; - goto output; - } - j--; - } - } - } - if (filter->lookup_table_list != NULL && index >= 0) { - i = 0; - while ((lookup_table = filter->lookup_table_list[i++]) != NULL) { - if (index >= lookup_table->min && index < lookup_table->max) { - wchar = lookup_table->table[index - lookup_table->min]; - if (wchar >= 0) { - goto output; - } - } + wchar = convert_table_mbtowc(filter->table_list, index, code); + if (wchar < 0) { + wchar = index & ~MBFL_WCSPLANE_MASK; + if (code >= 0 && code < 0xa0) { /* G0 or CR */ + wchar = code; + } else if (wchar == MBFL_WCSPLANE_JIS0208) { /* G1 */ + wchar |= ((c1 << 8) | c) & 0x7f7f; + } else if (wchar == MBFL_WCSPLANE_JIS0201) { /* G2 */ + wchar |= c; + } else if (wchar == MBFL_WCSPLANE_JIS0212) { /* G3 */ + wchar |= ((c1 << 8) | c) & 0x7f7f; + } else { + wchar = code & MBFL_WCSGROUP_MASK; + wchar |= MBFL_WCSGROUP_THROUGH; } } - wchar = (index & ~MBFL_WCSPLANE_MASK) | (((c1 << 8) | c) & 0x7f7f); - if (wchar >= 0 && wchar < 0xa0) { /* G0 */ - ; - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2330) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x233a)) { /* FULLWIDTH DIGIT */ - wchar += 0xff10 - (MBFL_WCSPLANE_JIS0208 + 0x2330); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2341) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x235b)) { /* FULLWIDTH LATIN CAPITAL LETTER */ - wchar += 0xff21 - (MBFL_WCSPLANE_JIS0208 + 0x2341); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2361) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x237b)) { /* FULLWIDTH LATIN SMALL LETTER */ - wchar += 0xff41 - (MBFL_WCSPLANE_JIS0208 + 0x2361); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2421) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x2474)) { /* HIRAGANA LETTER */ - wchar += 0x3041 - (MBFL_WCSPLANE_JIS0208 + 0x2421); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2521) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x2577)) { /* KATAKANA LETTER */ - wchar += 0x30a1 - (MBFL_WCSPLANE_JIS0208 + 0x2521); - } else if (wchar >= (MBFL_WCSPLANE_JIS0201 + 0x21) && wchar < (MBFL_WCSPLANE_JIS0201 + 0x60)) { /* HALFWIDTH KATAKANA */ - wchar += 0xff61 - (MBFL_WCSPLANE_JIS0201 + 0x21); - } else if (wchar >= MBFL_WCSPLANE_JIS0208 && wchar < (MBFL_WCSPLANE_JIS0208 + MBFL_WCSPLANE_SIZE)) { /* G1 */ - ; - } else if (wchar >= MBFL_WCSPLANE_JIS0212 && wchar < (MBFL_WCSPLANE_JIS0212 + MBFL_WCSPLANE_SIZE)) { /* G3 */ - ; - } else { - wchar = code & MBFL_WCSGROUP_MASK; - wchar |= MBFL_WCSGROUP_THROUGH; - } -output: CK((*filter->output_function)(wchar, filter->stream_resource)); return c; } @@ -225,55 +315,16 @@ static int filt_conv_wchar_eucjp(int c, mbfl_convert_filter *filter) { - int mbc, i, j; - const mbfl_pair_table *pair_table; - const mbfl_lookup_table *lookup_table; + int mbc; - mbc = -1; - if (filter->pair_table_list != NULL) { - i = 0; - while ((pair_table = filter->pair_table_list[i++]) != NULL) { - j = pair_table->size - 1; - while (j >= 0) { - if (c == pair_table->table[j].uc) { - mbc = pair_table->table[j].mb; - goto output; - } - j--; - } - } - } - if (filter->lookup_table_list != NULL) { - i = 0; - while ((lookup_table = filter->lookup_table_list[i++]) != NULL) { - if (c >= lookup_table->min && c < lookup_table->max) { - mbc = lookup_table->table[c - lookup_table->min]; - if (mbc >= 0) { - goto output; - } - } - } - } - if (c >= 0xff10 && c < 0xff20) { /* FULLWIDTH DIGIT */ - mbc = c - 0xff10 + (MBFL_WCSPLANE_JIS0208 + 0x2330); - } else if (c >= 0xff21 && c < 0xff3b) { /* FULLWIDTH LATIN CAPITAL LETTER */ - mbc = c - 0xff21 + (MBFL_WCSPLANE_JIS0208 + 0x2341); - } else if (c >= 0xff41 && c < 0xff5b) { /* FULLWIDTH LATIN SMALL LETTER */ - mbc = c - 0xff41 + (MBFL_WCSPLANE_JIS0208 + 0x2361); - } else if (c >= 0x3041 && c < 0x3094) { /* HIRAGANA LETTER */ - mbc = c - 0x3041 + (MBFL_WCSPLANE_JIS0208 + 0x2421); - } else if (c >= 0x30a1 && c < 0x30f7) { /* KATAKANA LETTER */ - mbc = c - 0x30a1 + (MBFL_WCSPLANE_JIS0208 + 0x2521); - } else if (c >= 0xff61 && c < 0xffa0) { /* HALFWIDTH KATAKANA */ - mbc = c - 0xff61 + (MBFL_WCSPLANE_JIS0201 + 0xa1); - } else { + mbc = convert_table_wctomb(filter->table_list, c); + if (mbc < 0) { mbc = c; } -output: - if (mbc >= 0 && mbc < 0x80) { /* latin */ + if (mbc >= 0 && mbc < 0x80) { /* ASCII */ CK((*filter->output_function)(mbc, filter->stream_resource)); - } else if (mbc >= MBFL_WCSPLANE_JIS0208 && mbc < (MBFL_WCSPLANE_JIS0208 + 0x7f00)) { + } else if (mbc >= MBFL_WCSPLANE_JIS0208 && mbc < (MBFL_WCSPLANE_JIS0208 + 0x7f00)) { /* kanji */ CK((*filter->output_function)(((mbc >> 8) & 0xff) | 0x80, filter->stream_resource)); CK((*filter->output_function)((mbc & 0xff) | 0x80, filter->stream_resource)); } else if (mbc >= (MBFL_WCSPLANE_JIS0201 + 0xa1) && mbc < (MBFL_WCSPLANE_JIS0201 + 0xe0)) { /* kana */ @@ -281,7 +332,7 @@ CK((*filter->output_function)(mbc & 0xff, filter->stream_resource)); } else if (mbc >= MBFL_WCSPLANE_JIS0201 && mbc < (MBFL_WCSPLANE_JIS0201 + 0x80)) { /* latin */ CK((*filter->output_function)(mbc & 0xff, filter->stream_resource)); - } else if (mbc >= MBFL_WCSPLANE_JIS0212 && mbc < (MBFL_WCSPLANE_JIS0212 + 0x7f00)) { + } else if (mbc >= MBFL_WCSPLANE_JIS0212 && mbc < (MBFL_WCSPLANE_JIS0212 + 0x7f00)) { /* kanji */ CK((*filter->output_function)(0x8f, filter->stream_resource)); CK((*filter->output_function)(((mbc >> 8) & 0xff) | 0x80, filter->stream_resource)); CK((*filter->output_function)((mbc & 0xff) | 0x80, filter->stream_resource)); @@ -303,16 +354,13 @@ static int filt_conv_sjis_wchar(int c, mbfl_convert_filter *filter) { - int c1, j1, j2, i, j, code, index, wchar; - const mbfl_pair_table *pair_table; - const mbfl_lookup_table *lookup_table; + int c1, j1, j2, code, index, wchar; c1 = 0; j1 = 0; j2 = 0; code = -1; index = -1; - wchar = -1; switch (filter->status) { case 0: code = c; @@ -345,53 +393,22 @@ return c; } - if (filter->pair_table_list != NULL && code >= 0) { - i = 0; - while ((pair_table = filter->pair_table_list[i++]) != NULL) { - j = pair_table->size - 1; - while (j >= 0) { - if (code == pair_table->table[j].mb) { - wchar = pair_table->table[j].uc; - goto output; - } - j--; - } - } - } - if (filter->lookup_table_list != NULL && index >= 0) { - i = 0; - while ((lookup_table = filter->lookup_table_list[i++]) != NULL) { - if (index >= lookup_table->min && index < lookup_table->max) { - wchar = lookup_table->table[index - lookup_table->min]; - if (wchar >= 0) { - goto output; - } - } + wchar = convert_table_mbtowc(filter->table_list, index, code); + if (wchar < 0) { + index &= ~MBFL_WCSPLANE_MASK; + wchar = (j1 << 8) | j2; + if (code >= 0 && code < 0x80) { /* latin */ + wchar = code; + } else if (index == MBFL_WCSPLANE_JIS0208 && wchar < 0x7f00) { /* kanji */ + wchar |= index; + } else if (index == MBFL_WCSPLANE_JIS0201) { /* kana */ + wchar = index | code; + } else { + wchar = code & MBFL_WCSGROUP_MASK; + wchar |= MBFL_WCSGROUP_THROUGH; } } - wchar = (index & ~MBFL_WCSPLANE_MASK) | ((j1 << 8) | j2); - if (index >= 0 && index < 0x80) { /* latin */ - wchar = index; - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2330) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x233a)) { /* FULLWIDTH DIGIT */ - wchar += 0xff10 - (MBFL_WCSPLANE_JIS0208 + 0x2330); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2341) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x235b)) { /* FULLWIDTH LATIN CAPITAL LETTER */ - wchar += 0xff21 - (MBFL_WCSPLANE_JIS0208 + 0x2341); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2361) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x237b)) { /* FULLWIDTH LATIN SMALL LETTER */ - wchar += 0xff41 - (MBFL_WCSPLANE_JIS0208 + 0x2361); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2421) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x2474)) { /* HIRAGANA LETTER */ - wchar += 0x3041 - (MBFL_WCSPLANE_JIS0208 + 0x2421); - } else if (wchar >= (MBFL_WCSPLANE_JIS0208 + 0x2521) && wchar < (MBFL_WCSPLANE_JIS0208 + 0x2577)) { /* KATAKANA LETTER */ - wchar += 0x30a1 - (MBFL_WCSPLANE_JIS0208 + 0x2521); - } else if (wchar >= MBFL_WCSPLANE_JIS0208 && wchar < (MBFL_WCSPLANE_JIS0208 + MBFL_WCSPLANE_SIZE)) { /* kanji */ - ; - } else if (index >= (MBFL_WCSPLANE_JIS0201 + 0xa1) && index < (MBFL_WCSPLANE_JIS0201 + 0xe0)) { /* HALFWIDTH KATAKANA */ - wchar = index + 0xff61 - (MBFL_WCSPLANE_JIS0201 + 0xa1); - } else { - wchar = code & MBFL_WCSGROUP_MASK; - wchar |= MBFL_WCSGROUP_THROUGH; - } -output: CK((*filter->output_function)(wchar, filter->stream_resource)); return c; } @@ -402,55 +419,293 @@ static int filt_conv_wchar_sjis(int c, mbfl_convert_filter *filter) { - int c1, c2, s1, s2, mbc, i, j; - const mbfl_pair_table *pair_table; - const mbfl_lookup_table *lookup_table; + int c1, c2, s1, s2, mbc; - mbc = -1; - if (filter->pair_table_list != NULL) { - i = 0; - while ((pair_table = filter->pair_table_list[i++]) != NULL) { - j = pair_table->size - 1; - while (j >= 0) { - if (c == pair_table->table[j].uc) { - mbc = pair_table->table[j].mb; - goto output; - } - j--; - } + mbc = convert_table_wctomb(filter->table_list, c); + if (mbc < 0) { + mbc = c; + } + + if (mbc >= 0 && mbc < 0x80) { /* latin */ + CK((*filter->output_function)(mbc, filter->stream_resource)); + } else if (mbc >= MBFL_WCSPLANE_JIS0208 && mbc < (MBFL_WCSPLANE_JIS0208 + 0x7f00)) { + c1 = (mbc >> 8) & 0xff; + c2 = mbc & 0xff; + SJIS_ENCODE(c1, c2, s1, s2); + CK((*filter->output_function)(s1, filter->stream_resource)); + CK((*filter->output_function)(s2, filter->stream_resource)); + } else if ((mbc >= (MBFL_WCSPLANE_JIS0201) && mbc < (MBFL_WCSPLANE_JIS0201 + 0x80)) || /* latin */ + (mbc >= (MBFL_WCSPLANE_JIS0201 + 0xa1) && mbc < (MBFL_WCSPLANE_JIS0201 + 0xe0)) ) { /* kana */ + CK((*filter->output_function)(mbc & 0xff, filter->stream_resource)); + } else { + if ((filter->mode & MBFL_CONVFILTER_ILLEGAL_MODE_NONE) == 0) { + CK(mbfl_filt_conv_illegal_output(c, filter)); } } - if (filter->lookup_table_list != NULL) { - i = 0; - while ((lookup_table = filter->lookup_table_list[i++]) != NULL) { - if (c >= lookup_table->min && c < lookup_table->max) { - mbc = lookup_table->table[c - lookup_table->min]; - if (mbc >= 0) { - goto output; - } + + return c; +} + + +/* + * eucJP-win => wchar + */ +static int +filt_conv_eucjpwin_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, code, index, wchar; + + c1 = 0; + code = -1; + index = -1; + switch (filter->status) { + case 0: + code = c; + if (c >= 0 && c < 0x80) { /* G0 */ + index = c; + } else if (c > 0xa0 && c < 0xff) { /* G1 first char */ + filter->status = 1; + filter->cache = c; + return c; + } else if (c == 0x8e) { /* G2 first char */ + filter->status = 2; + return c; + } else if (c == 0x8f) { /* G3 first char */ + filter->status = 3; + return c; + } else if (c >= 0x80 && c < 0xa0) { /* CR */ + index = c; + } + break; + + case 1: /* G1 second char */ + filter->status = 0; + c1 = filter->cache; + code = (c1 << 8) | c; + if (c > 0xa0 && c < 0xff) { + index = (c1 - 0xa1)*94 + c - 0xa1 + MBFL_WCSPLANE_WINCP932; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + code = c; + index = c; + } + break; + + case 2: /* G2 first char */ + filter->status = 0; + code = 0x8e00 | c; + if (c > 0xa0 && c < 0xe0) { + index = c | MBFL_WCSPLANE_JIS0201; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + code = c; + index = c; + } + break; + + case 3: /* G3 first char */ + if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + filter->status = 0; + code = c; + index = c; + } else { + filter->status++; + filter->cache = c; + return c; + } + break; + case 4: /* G3 second char */ + filter->status = 0; + c1 = filter->cache; + code = 0x8f0000 | (c1 << 8) | c; + if (c1 > 0xa0 && c1 < 0xff && c > 0xa0 && c < 0xff) { + index = (c1 - 0xa1)*94 + c - 0xa1 + MBFL_WCSPLANE_JIS0212; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + code = c; + index = c; + } + break; + + default: + filter->status = 0; + return c; + } + + wchar = convert_table_mbtowc(filter->table_list, index, code); + if (wchar < 0) { + wchar = index & ~MBFL_WCSPLANE_MASK; + if (code >= 0 && code < 0xa0) { /* G0 or CR */ + wchar = code; + } else if (wchar == MBFL_WCSPLANE_WINCP932) { /* G1 */ + wchar |= ((c1 << 8) | c) & 0x7f7f; + } else if (wchar == MBFL_WCSPLANE_JIS0201) { /* G2 */ + wchar |= c; + } else if (wchar == MBFL_WCSPLANE_JIS0212) { /* G3 */ + wchar |= ((c1 << 8) | c) & 0x7f7f; + } else { + wchar = code & MBFL_WCSGROUP_MASK; + wchar |= MBFL_WCSGROUP_THROUGH; + } + } + + CK((*filter->output_function)(wchar, filter->stream_resource)); + return c; +} + +/* + * wchar => eucJP-win + */ +static int +filt_conv_wchar_eucjpwin(int c, mbfl_convert_filter *filter) +{ + int mbc; + + mbc = convert_table_wctomb(filter->table_list, c); + if ((mbc & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_JIS0208) { + /* replace plane */ + mbc &= MBFL_WCSPLANE_MASK; + mbc |= MBFL_WCSPLANE_WINCP932; + } else if (mbc < 0) { + mbc = c & ~MBFL_WCSPLANE_MASK; + if (mbc == MBFL_WCSPLANE_WINCP932) { + if (c < (MBFL_WCSPLANE_WINCP932 + 0x7500)) { + mbc = c; + } else { + /* Private Use Area */ + mbc = -1; } + } else if (mbc == MBFL_WCSPLANE_JIS0208) { + if (c < (MBFL_WCSPLANE_JIS0208 + 0x7500)) { + mbc = (c & MBFL_WCSPLANE_MASK) | MBFL_WCSPLANE_WINCP932; + } else { + /* Private Use Area */ + mbc = -1; + } + } else if (mbc == MBFL_WCSPLANE_JIS0212) { + if (c < (MBFL_WCSPLANE_JIS0212 + 0x7300)) { + mbc = c; + } else { + /* Private Use Area */ + mbc = -1; + } + } else { + mbc = c; } } - if (c >= 0xff10 && c < 0xff20) { /* FULLWIDTH DIGIT */ - mbc = c - 0xff10 + (MBFL_WCSPLANE_JIS0208 + 0x2330); - } else if (c >= 0xff21 && c < 0xff3b) { /* FULLWIDTH LATIN CAPITAL LETTER */ - mbc = c - 0xff21 + (MBFL_WCSPLANE_JIS0208 + 0x2341); - } else if (c >= 0xff41 && c < 0xff5b) { /* FULLWIDTH LATIN SMALL LETTER */ - mbc = c - 0xff41 + (MBFL_WCSPLANE_JIS0208 + 0x2361); - } else if (c >= 0x3041 && c < 0x3094) { /* HIRAGANA LETTER */ - mbc = c - 0x3041 + (MBFL_WCSPLANE_JIS0208 + 0x2421); - } else if (c >= 0x30a1 && c < 0x30f7) { /* KATAKANA LETTER */ - mbc = c - 0x30a1 + (MBFL_WCSPLANE_JIS0208 + 0x2521); - } else if (c >= 0xff61 && c < 0xffa0) { /* HALFWIDTH KATAKANA */ - mbc = c - 0xff61 + (MBFL_WCSPLANE_JIS0201 + 0xa1); + + if (mbc >= 0 && mbc < 0x80) { /* ASCII */ + CK((*filter->output_function)(mbc, filter->stream_resource)); + } else if (mbc >= MBFL_WCSPLANE_WINCP932 && mbc < (MBFL_WCSPLANE_WINCP932 + 0x7f00)) { /* kanji */ + CK((*filter->output_function)(((mbc >> 8) & 0xff) | 0x80, filter->stream_resource)); + CK((*filter->output_function)((mbc & 0xff) | 0x80, filter->stream_resource)); + } else if (mbc >= (MBFL_WCSPLANE_JIS0201 + 0xa1) && mbc < (MBFL_WCSPLANE_JIS0201 + 0xe0)) { /* kana */ + CK((*filter->output_function)(0x8e, filter->stream_resource)); + CK((*filter->output_function)(mbc & 0xff, filter->stream_resource)); + } else if (mbc >= MBFL_WCSPLANE_JIS0201 && mbc < (MBFL_WCSPLANE_JIS0201 + 0x80)) { /* latin */ + CK((*filter->output_function)(mbc & 0xff, filter->stream_resource)); + } else if (mbc >= MBFL_WCSPLANE_JIS0212 && mbc < (MBFL_WCSPLANE_JIS0212 + 0x7f00)) { /* kanji */ + CK((*filter->output_function)(0x8f, filter->stream_resource)); + CK((*filter->output_function)(((mbc >> 8) & 0xff) | 0x80, filter->stream_resource)); + CK((*filter->output_function)((mbc & 0xff) | 0x80, filter->stream_resource)); + } else if (mbc >= 0x80 && mbc < 0xa0 && mbc != 0x8e && mbc != 0x8f) { /* CR */ + CK((*filter->output_function)(mbc, filter->stream_resource)); } else { - mbc = c; + if ((filter->mode & MBFL_CONVFILTER_ILLEGAL_MODE_NONE) == 0) { + CK(mbfl_filt_conv_illegal_output(c, filter)); + } } -output: - if (mbc >= 0 && mbc < 0x80) { /* latin */ + return c; +} + + +/* + * SJIS-win => wchar + */ +static int +filt_conv_sjiswin_wchar(int c, mbfl_convert_filter *filter) +{ + int c1, j1, j2, code, index, wchar; + + c1 = 0; + j1 = 0; + j2 = 0; + code = -1; + index = -1; + switch (filter->status) { + case 0: + code = c; + if (c >= 0 && c < 0x80) { /* latin */ + index = c; + } else if (c > 0xa0 && c < 0xe0) { /* kana */ + index = c | MBFL_WCSPLANE_JIS0201; + } else if (c > 0x80 && c < 0xfd && c != 0xa0) { /* kanji first char */ + filter->status = 1; + filter->cache = c; + return c; + } + break; + + case 1: /* kanji second char */ + filter->status = 0; + c1 = filter->cache; + code = (c1 << 8) | c; + if (c > 0x39 && c < 0xfd && c != 0x7f) { + SJIS_DECODE(c1, c, j1, j2); + index = (j1 - 0x21)*94 + j2 - 0x21 + MBFL_WCSPLANE_WINCP932; + } else if ((c >= 0 && c < 0x21) || c == 0x7f) { /* CTLs */ + code = c; + index = c; + } + break; + + default: + filter->status = 0; + return c; + } + + wchar = convert_table_mbtowc(filter->table_list, index, code); + if (wchar < 0) { + index &= ~MBFL_WCSPLANE_MASK; + wchar = (j1 << 8) | j2; + if (code >= 0 && code < 0x80) { /* latin */ + wchar = code; + } else if (index == MBFL_WCSPLANE_WINCP932) { /* kanji */ + wchar |= index; + } else if (index == MBFL_WCSPLANE_JIS0201) { /* kana */ + wchar = index | code; + } else { + wchar = code & MBFL_WCSGROUP_MASK; + wchar |= MBFL_WCSGROUP_THROUGH; + } + } + + CK((*filter->output_function)(wchar, filter->stream_resource)); + return c; +} + +/* + * wchar => SJIS-win + */ +static int +filt_conv_wchar_sjiswin(int c, mbfl_convert_filter *filter) +{ + int c1, c2, s1, s2, mbc; + + mbc = convert_table_wctomb(filter->table_list, c); + if ((mbc & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_JIS0208) { + /* replace plane */ + mbc &= MBFL_WCSPLANE_MASK; + mbc |= MBFL_WCSPLANE_WINCP932; + } else if (mbc < 0) { + if ((c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_JIS0208) { + mbc = (c & MBFL_WCSPLANE_MASK) | MBFL_WCSPLANE_WINCP932; + } else { + mbc = c; + } + } + + if (mbc >= 0 && mbc < 0x80) { /* ASCII */ CK((*filter->output_function)(mbc, filter->stream_resource)); - } else if (mbc >= MBFL_WCSPLANE_JIS0208 && mbc < (MBFL_WCSPLANE_JIS0208 + MBFL_WCSPLANE_SIZE)) { + } else if (mbc >= MBFL_WCSPLANE_WINCP932 && mbc < (MBFL_WCSPLANE_WINCP932 + 0x9900)) { /* kanji */ c1 = (mbc >> 8) & 0xff; c2 = mbc & 0xff; SJIS_ENCODE(c1, c2, s1, s2); @@ -469,21 +724,17 @@ } -#include "php.h" /* * JIS => wchar */ static int filt_conv_jis_wchar(int c, mbfl_convert_filter *filter) { - int c1, i, j, code, index, wchar; - const mbfl_pair_table *pair_table; - const mbfl_lookup_table *lookup_table; + int c1, code, index, wchar; c1 = 0; code = -1; index = -1; - wchar = -1; retry: switch (filter->status & 0xf) { /* case 0x00: ASCII */ @@ -502,7 +753,7 @@ } else if (c == 0x0f) { /* "kana out" */ filter->status = 0; return c; - } else if (filter->status == 0x10 && c > 0x20 && c < 0x60) { /* X 0201 latin */ + } else if (filter->status == 0x10 && c >= 0x20 && c < 0x80) { /* X 0201 latin */ code |= MBFL_WCSPLANE_JIS0201; index = code; } else if (filter->status == 0x20 && c > 0x20 && c < 0x60) { /* X 0201 kana */ @@ -632,60 +883,26 @@ break; default: - filter->status = 0; - return c; - } - - if (filter->pair_table_list != NULL && code >= 0) { - i = 0; - while ((pair_table = filter->pair_table_list[i++]) != NULL) { - j = pair_table->size - 1; - while (j >= 0) { - if (code == pair_table->table[j].mb) { - wchar = pair_table->table[j].uc; - goto output; - } - j--; - } - } - } - if (filter->lookup_table_list != NULL && index >= 0) { - i = 0; - while ((lookup_table = filter->lookup_table_list[i++]) != NULL) { - if (index >= lookup_table->min && index < lookup_table->max) { - wchar = lookup_table->table[index - lookup_table->min]; - if (wchar >= 0) { - goto output; - } - } - } + filter->status = 0; + return c; } - if (code >= 0 && code < 0x80) { /* ASCII */ - wchar = code; - } else if (code >= (MBFL_WCSPLANE_JIS0208 + 0x2330) && code < (MBFL_WCSPLANE_JIS0208 + 0x233a)) { /* FULLWIDTH DIGIT */ - wchar = code + 0xff10 - (MBFL_WCSPLANE_JIS0208 + 0x2330); - } else if (code >= (MBFL_WCSPLANE_JIS0208 + 0x2341) && code < (MBFL_WCSPLANE_JIS0208 + 0x235b)) { /* FULLWIDTH LATIN CAPITAL LETTER */ - wchar = code + 0xff21 - (MBFL_WCSPLANE_JIS0208 + 0x2341); - } else if (code >= (MBFL_WCSPLANE_JIS0208 + 0x2361) && code < (MBFL_WCSPLANE_JIS0208 + 0x237b)) { /* FULLWIDTH LATIN SMALL LETTER */ - wchar = code + 0xff41 - (MBFL_WCSPLANE_JIS0208 + 0x2361); - } else if (code >= (MBFL_WCSPLANE_JIS0208 + 0x2421) && code < (MBFL_WCSPLANE_JIS0208 + 0x2474)) { /* HIRAGANA LETTER */ - wchar = code + 0x3041 - (MBFL_WCSPLANE_JIS0208 + 0x2421); - } else if (code >= (MBFL_WCSPLANE_JIS0208 + 0x2521) && code < (MBFL_WCSPLANE_JIS0208 + 0x2577)) { /* KATAKANA LETTER */ - wchar = code + 0x30a1 - (MBFL_WCSPLANE_JIS0208 + 0x2521); - } else if (code >= (MBFL_WCSPLANE_JIS0201 + 0xa1) && code < (MBFL_WCSPLANE_JIS0201 + 0xe0)) { /* HALFWIDTH KATAKANA */ - wchar = code + 0xff61 - (MBFL_WCSPLANE_JIS0201 + 0xa1); - } else if (code >= MBFL_WCSPLANE_JIS0208 && code < (MBFL_WCSPLANE_JIS0208 + MBFL_WCSPLANE_SIZE)) { - wchar = code; - } else if (code >= MBFL_WCSPLANE_JIS0201 && code < (MBFL_WCSPLANE_JIS0201 + MBFL_WCSPLANE_SIZE)) { - wchar = code; - } else if (code >= MBFL_WCSPLANE_JIS0212 && code < (MBFL_WCSPLANE_JIS0212 + MBFL_WCSPLANE_SIZE)) { - wchar = code; - } else { - wchar = code & MBFL_WCSGROUP_MASK; - wchar |= MBFL_WCSGROUP_THROUGH; + + wchar = convert_table_mbtowc(filter->table_list, index, code); + if (wchar < 0) { + if (code >= 0 && code < 0x80) { /* ASCII */ + wchar = code; + } else if (code >= MBFL_WCSPLANE_JIS0208 && code < (MBFL_WCSPLANE_JIS0208 + 0x7f00)) { + wchar = code; + } else if (code >= MBFL_WCSPLANE_JIS0201 && code < (MBFL_WCSPLANE_JIS0201 + 0x100)) { + wchar = code; + } else if (code >= MBFL_WCSPLANE_JIS0212 && code < (MBFL_WCSPLANE_JIS0212 + 0x7f00)) { + wchar = code; + } else { + wchar = code & MBFL_WCSGROUP_MASK; + wchar |= MBFL_WCSGROUP_THROUGH; + } } -output: CK((*filter->output_function)(wchar, filter->stream_resource)); return c; } @@ -696,93 +913,54 @@ static int filt_conv_wchar_jis(int c, mbfl_convert_filter *filter) { - int mbc, i, j; - const mbfl_pair_table *pair_table; - const mbfl_lookup_table *lookup_table; + int mbc; - mbc = -1; - if (filter->pair_table_list != NULL) { - i = 0; - while ((pair_table = filter->pair_table_list[i++]) != NULL) { - j = pair_table->size - 1; - while (j >= 0) { - if (c == pair_table->table[j].uc) { - mbc = pair_table->table[j].mb; - goto output; - } - j--; - } - } - } - if (filter->lookup_table_list != NULL) { - i = 0; - while ((lookup_table = filter->lookup_table_list[i++]) != NULL) { - if (c >= lookup_table->min && c < lookup_table->max) { - mbc = lookup_table->table[c - lookup_table->min]; - if (mbc >= 0) { - goto output; - } - } - } - } - if (c >= 0xff10 && c < 0xff20) { /* FULLWIDTH DIGIT */ - mbc = c - 0xff10 + (MBFL_WCSPLANE_JIS0208 + 0x2330); - } else if (c >= 0xff21 && c < 0xff3b) { /* FULLWIDTH LATIN CAPITAL LETTER */ - mbc = c - 0xff21 + (MBFL_WCSPLANE_JIS0208 + 0x2341); - } else if (c >= 0xff41 && c < 0xff5b) { /* FULLWIDTH LATIN SMALL LETTER */ - mbc = c - 0xff41 + (MBFL_WCSPLANE_JIS0208 + 0x2361); - } else if (c >= 0x3041 && c < 0x3094) { /* HIRAGANA LETTER */ - mbc = c - 0x3041 + (MBFL_WCSPLANE_JIS0208 + 0x2421); - } else if (c >= 0x30a1 && c < 0x30f7) { /* KATAKANA LETTER */ - mbc = c - 0x30a1 + (MBFL_WCSPLANE_JIS0208 + 0x2521); - } else if (c >= 0xff61 && c < 0xffa0) { /* HALFWIDTH KATAKANA */ - mbc = c - 0xff61 + (MBFL_WCSPLANE_JIS0201 + 0xa1); - } else { + mbc = convert_table_wctomb(filter->table_list, c); + if (mbc < 0) { mbc = c; } -output: if (mbc >= 0 && mbc < 0x80) { /* ASCII */ - if ((filter->status & 0xff00) != 0) { + if (filter->status != 0) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x28, filter->stream_resource)); /* '(' */ CK((*filter->output_function)(0x42, filter->stream_resource)); /* 'B' */ + filter->status = 0; } - filter->status = 0; CK((*filter->output_function)(mbc, filter->stream_resource)); } else if (mbc >= MBFL_WCSPLANE_JIS0208 && mbc < (MBFL_WCSPLANE_JIS0208 + 0x7f00)) { /* X 0208 */ - if ((filter->status & 0xff00) != 0x100) { + if (filter->status != 1) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x24, filter->stream_resource)); /* '$' */ CK((*filter->output_function)(0x42, filter->stream_resource)); /* 'B' */ + filter->status = 1; } - filter->status = 0x100; CK((*filter->output_function)((mbc >> 8) & 0x7f, filter->stream_resource)); CK((*filter->output_function)(mbc & 0x7f, filter->stream_resource)); } else if (mbc >= (MBFL_WCSPLANE_JIS0201 + 0xa1) && mbc < (MBFL_WCSPLANE_JIS0201 + 0xe0)) { /* X 0201 kana */ - if ((filter->status & 0xff00) != 0x200) { + if (filter->status != 2) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x28, filter->stream_resource)); /* '(' */ CK((*filter->output_function)(0x49, filter->stream_resource)); /* 'I' */ + filter->status = 2; } - filter->status = 0x200; CK((*filter->output_function)(mbc & 0x7f, filter->stream_resource)); } else if (mbc >= MBFL_WCSPLANE_JIS0201 && mbc < (MBFL_WCSPLANE_JIS0201 + 0x80)) { /* X 0201 latin */ - if ((filter->status & 0xff00) != 0x300) { + if (filter->status != 3) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x28, filter->stream_resource)); /* '(' */ CK((*filter->output_function)(0x4a, filter->stream_resource)); /* 'J' */ + filter->status = 3; } - filter->status = 0x300; CK((*filter->output_function)(mbc & 0x7f, filter->stream_resource)); } else if (mbc >= MBFL_WCSPLANE_JIS0212 && mbc < (MBFL_WCSPLANE_JIS0212 + 0x7f00)) { /* X 0212 */ - if ((filter->status & 0xff00) != 0x400) { + if (filter->status != 4) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x24, filter->stream_resource)); /* '$' */ CK((*filter->output_function)(0x28, filter->stream_resource)); /* '(' */ CK((*filter->output_function)(0x44, filter->stream_resource)); /* 'D' */ + filter->status = 4; } - filter->status = 0x400; CK((*filter->output_function)((mbc >> 8) & 0x7f, filter->stream_resource)); CK((*filter->output_function)(mbc & 0x7f, filter->stream_resource)); } else { @@ -799,76 +977,36 @@ * wchar => ISO-2022-JP */ static int -mbfl_filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter) +filt_conv_wchar_2022jp(int c, mbfl_convert_filter *filter) { - int mbc, i, j; - const mbfl_pair_table *pair_table; - const mbfl_lookup_table *lookup_table; + int mbc; - mbc = -1; - if (filter->pair_table_list != NULL) { - i = 0; - while ((pair_table = filter->pair_table_list[i++]) != NULL) { - j = pair_table->size - 1; - while (j >= 0) { - if (c == pair_table->table[j].uc) { - mbc = pair_table->table[j].mb; - goto output; - } - j--; - } - } - } - if (filter->lookup_table_list != NULL) { - i = 0; - while ((lookup_table = filter->lookup_table_list[i++]) != NULL) { - if (c >= lookup_table->min && c < lookup_table->max) { - mbc = lookup_table->table[c - lookup_table->min]; - if (mbc >= 0) { - goto output; - } - } - } - } else { - mbc = c; - } - if (c >= 0xff10 && c < 0xff20) { /* FULLWIDTH DIGIT */ - mbc = c - 0xff10 + (MBFL_WCSPLANE_JIS0208 + 0x2330); - } else if (c >= 0xff21 && c < 0xff3b) { /* FULLWIDTH LATIN CAPITAL LETTER */ - mbc = c - 0xff21 + (MBFL_WCSPLANE_JIS0208 + 0x2341); - } else if (c >= 0xff41 && c < 0xff5b) { /* FULLWIDTH LATIN SMALL LETTER */ - mbc = c - 0xff41 + (MBFL_WCSPLANE_JIS0208 + 0x2361); - } else if (c >= 0x3041 && c < 0x3094) { /* HIRAGANA LETTER */ - mbc = c - 0x3041 + (MBFL_WCSPLANE_JIS0208 + 0x2421); - } else if (c >= 0x30a1 && c < 0x30f7) { /* KATAKANA LETTER */ - mbc = c - 0x30a1 + (MBFL_WCSPLANE_JIS0208 + 0x2521); - } + mbc = convert_table_wctomb(filter->table_list, c); -output: if (mbc >= 0 && mbc < 0x80) { /* ASCII */ - if ((filter->status & 0xff00) != 0) { + if (filter->status != 0) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x28, filter->stream_resource)); /* '(' */ CK((*filter->output_function)(0x42, filter->stream_resource)); /* 'B' */ + filter->status = 0; } - filter->status = 0; CK((*filter->output_function)(mbc, filter->stream_resource)); } else if (mbc >= MBFL_WCSPLANE_JIS0208 && mbc < (MBFL_WCSPLANE_JIS0208 + 0x7f00)) { /* X 0208 */ - if ((filter->status & 0xff00) != 0x100) { + if (filter->status != 1) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x24, filter->stream_resource)); /* '$' */ CK((*filter->output_function)(0x42, filter->stream_resource)); /* 'B' */ + filter->status = 1; } - filter->status = 0x100; CK((*filter->output_function)((mbc >> 8) & 0x7f, filter->stream_resource)); CK((*filter->output_function)(mbc & 0x7f, filter->stream_resource)); } else if (mbc >= MBFL_WCSPLANE_JIS0201 && mbc < (MBFL_WCSPLANE_JIS0201 + 0x80)) { /* X 0201 latin */ - if ((filter->status & 0xff00) != 0x300) { + if (filter->status != 3) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x28, filter->stream_resource)); /* '(' */ CK((*filter->output_function)(0x4a, filter->stream_resource)); /* 'J' */ + filter->status = 3; } - filter->status = 0x300; CK((*filter->output_function)(mbc & 0x7f, filter->stream_resource)); } else { if ((filter->mode & MBFL_CONVFILTER_ILLEGAL_MODE_NONE) == 0) { @@ -883,12 +1021,12 @@ filt_conv_any_jis_flush(mbfl_convert_filter *filter) { /* back to latin */ - if ((filter->status & 0xff00) != 0) { + if (filter->status != 0) { CK((*filter->output_function)(0x1b, filter->stream_resource)); /* ESC */ CK((*filter->output_function)(0x28, filter->stream_resource)); /* '(' */ CK((*filter->output_function)(0x42, filter->stream_resource)); /* 'B' */ } - filter->status &= 0xff; + filter->status = 0; return 0; } @@ -1194,7 +1332,7 @@ 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, + 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F }; @@ -1210,7 +1348,7 @@ 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, - 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x203E + 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x203E,0x007F }; @@ -2537,6 +2675,38 @@ }; +static const int table_cp932_ucs_115ku_euc[] = { + /* eucJP-win G3 */ + /* ku 83 */ + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175, + 0x2176,0x2177,0x2178,0x2179,0x2160,0x2161, + + /* ku 84 */ + 0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,0x2169, + 0xFF07,0xFF02,0x3231,0x2116,0x2121,0x70BB,0x4EFC,0x50F4, + 0x51EC,0x5307,0x5324,0xFA0E,0x548A,0x5759,0xFA0F,0xFA10, + 0x589E,0x5BEC,0x5CF5,0x5D53,0xFA11,0x5FB7,0x6085,0x6120, + 0x654E,0x663B,0x6665,0xFA12,0xF929,0x6801,0xFA13,0xFA14, + 0x6A6B,0x6AE2,0x6DF8,0x6DF2,0x7028,0xFA15,0xFA16,0x7501, + 0x7682,0x769E,0xFA17,0x7930,0xFA18,0xFA19,0xFA1A,0xFA1B, + 0x7AE7,0xFA1C,0xFA1D,0x7DA0,0x7DD6,0xFA1E,0x8362,0xFA1F, + 0x85B0,0xFA20,0xFA21,0x8807,0xFA22,0x8B7F,0x8CF4,0x8D76, + 0xFA23,0xFA24,0xFA25,0x90DE,0xFA26,0x9115,0xFA27,0xFA28, + 0x9592,0xF9DC,0xFA29,0x973B,0x974D,0x9751,0xFA2A,0xFA2B, + 0xFA2C,0x999E,0x9AD9,0x9B72,0xFA2D,0x9ED1 +}; + + static const int table_cp932_ucs_95ku[] = { /* ku 95 */ 0xE000,0xE001,0xE002,0xE003,0xE004,0xE005,0xE006,0xE007, @@ -3904,6 +4074,7 @@ #define J1(c) (MBFL_WCSPLANE_JIS0201 | c) #define J2(c) (MBFL_WCSPLANE_JIS0208 | c) #define J3(c) (MBFL_WCSPLANE_JIS0212 | c) +#define CP(c) (MBFL_WCSPLANE_WINCP932 | c) static const int table_ucs_jis_a1[] = { /* 0000h */ @@ -3927,7 +4098,7 @@ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 ,J3(0x2242),J2(0x2171),J2(0x2172),J3(0x2270),J1(0x005C),J3(0x2243),J2(0x2178), + -1 ,J3(0x2242),J2(0x2171),J2(0x2172),J3(0x2270),J2(0x216F),J3(0x2243),J2(0x2178), J2(0x212F),J3(0x226D),J3(0x226C), -1 ,J2(0x224C), -1 ,J3(0x226E),J3(0x2234), J2(0x216B),J2(0x215E), -1 , -1 ,J2(0x212D), -1 ,J2(0x2279), -1 , J3(0x2231), -1 ,J3(0x226B), -1 , -1 , -1 , -1 ,J3(0x2244), @@ -4062,12 +4233,12 @@ /* 2000h */ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - J2(0x213E), -1 , -1 , -1 , -1 ,J2(0x213D),J2(0x2142), -1 , + J2(0x213E), -1 , -1 , -1 ,J2(0x213D),J2(0x213D),J2(0x2142), -1 , J2(0x2146),J2(0x2147), -1 , -1 ,J2(0x2148),J2(0x2149), -1 , -1 , J2(0x2277),J2(0x2278), -1 , -1 , -1 ,J2(0x2145),J2(0x2144), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , J2(0x2273), -1 ,J2(0x216C),J2(0x216D), -1 , -1 , -1 , -1 , - -1 , -1 , -1 ,J2(0x2228), -1 , -1 ,J1(0x007E), -1 , + -1 , -1 , -1 ,J2(0x2228), -1 , -1 ,J2(0x2131), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , @@ -4098,7 +4269,7 @@ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J3(0x2271), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 ,J2(0x2D64),J3(0x226F), -1 , -1 , -1 , -1 , -1 , + -1 , -1 ,J3(0x226F), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x2272), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , @@ -4106,10 +4277,10 @@ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - J2(0x2D35),J2(0x2D36),J2(0x2D37),J2(0x2D38),J2(0x2D39),J2(0x2D3A),J2(0x2D3B),J2(0x2D3C), - J2(0x2D3D),J2(0x2D3E), -1 , -1 , -1 , -1 , -1 , -1 , - J2(0x7C71),J2(0x7C72),J2(0x7C73),J2(0x7C74),J2(0x7C75),J2(0x7C76),J2(0x7C77),J2(0x7C78), - J2(0x7C79),J2(0x7C7A), -1 , -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , J2(0x222B),J2(0x222C),J2(0x222A),J2(0x222D), -1 , -1 , -1 , -1 , @@ -4130,10 +4301,10 @@ /* 2200h */ J2(0x224F), -1 ,J2(0x225F),J2(0x2250), -1 , -1 , -1 ,J2(0x2260), J2(0x223A), -1 , -1 ,J2(0x223B), -1 , -1 , -1 , -1 , - -1 ,J2(0x2D74),J2(0x215D), -1 , -1 , -1 , -1 , -1 , - -1 , -1 ,J2(0x2265), -1 , -1 ,J2(0x2267),J2(0x2167),J2(0x2D78), + -1 , -1 ,J2(0x215D), -1 , -1 , -1 , -1 , -1 , + -1 , -1 ,J2(0x2265), -1 , -1 ,J2(0x2267),J2(0x2167), -1 , J2(0x225C), -1 , -1 , -1 , -1 ,J2(0x2142), -1 ,J2(0x224A), - J2(0x224B),J2(0x2241),J2(0x2240),J2(0x2269),J2(0x226A), -1 ,J2(0x2D73), -1 , + J2(0x224B),J2(0x2241),J2(0x2240),J2(0x2269),J2(0x226A), -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x2168),J2(0x2268), -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x2266), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , @@ -4151,7 +4322,7 @@ -1 , -1 , -1 , -1 , -1 ,J2(0x225D), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x2D79), + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , @@ -4208,9 +4379,9 @@ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - J2(0x2D21),J2(0x2D22),J2(0x2D23),J2(0x2D24),J2(0x2D25),J2(0x2D26),J2(0x2D27),J2(0x2D28), - J2(0x2D29),J2(0x2D2A),J2(0x2D2B),J2(0x2D2C),J2(0x2D2D),J2(0x2D2E),J2(0x2D2F),J2(0x2D30), - J2(0x2D31),J2(0x2D32),J2(0x2D33),J2(0x2D34), -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , @@ -4285,7 +4456,7 @@ J2(0x2121),J2(0x2122),J2(0x2123),J2(0x2137), -1 ,J2(0x2139),J2(0x213A),J2(0x213B), J2(0x2152),J2(0x2153),J2(0x2154),J2(0x2155),J2(0x2156),J2(0x2157),J2(0x2158),J2(0x2159), J2(0x215A),J2(0x215B),J2(0x2229),J2(0x222E),J2(0x214C),J2(0x214D), -1 , -1 , - -1 , -1 , -1 , -1 ,J2(0x2141),J2(0x2D60), -1 ,J2(0x2D61), + -1 , -1 , -1 , -1 ,J2(0x2141), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , @@ -4313,103 +4484,7 @@ J2(0x2560),J2(0x2561),J2(0x2562),J2(0x2563),J2(0x2564),J2(0x2565),J2(0x2566),J2(0x2567), J2(0x2568),J2(0x2569),J2(0x256A),J2(0x256B),J2(0x256C),J2(0x256D),J2(0x256E),J2(0x256F), J2(0x2570),J2(0x2571),J2(0x2572),J2(0x2573),J2(0x2574),J2(0x2575),J2(0x2576), -1 , - -1 , -1 , -1 ,J2(0x2126),J2(0x213C),J2(0x2133),J2(0x2134), -1 , - - /* 3100h */ - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - - /* 3200h */ - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 ,J2(0x2D6A),J2(0x2D6B), -1 , -1 , -1 , -1 , -1 , - -1 ,J2(0x2D6C), -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 ,J2(0x2D65),J2(0x2D66),J2(0x2D67),J2(0x2D68), - J2(0x2D69), -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - - /* 3300h */ - -1 , -1 , -1 ,J2(0x2D46), -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 ,J2(0x2D4A), -1 , -1 , - -1 , -1 , -1 , -1 ,J2(0x2D41), -1 , -1 , -1 , - J2(0x2D44), -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 ,J2(0x2D42),J2(0x2D4C), -1 , -1 ,J2(0x2D4B),J2(0x2D45), - -1 , -1 , -1 ,J2(0x2D4D), -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x2D47), -1 , - -1 , -1 , -1 ,J2(0x2D4F), -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 ,J2(0x2D40),J2(0x2D4E), -1 , -1 ,J2(0x2D43), -1 , -1 , - -1 ,J2(0x2D48), -1 , -1 , -1 , -1 , -1 ,J2(0x2D49), - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 ,J2(0x2D5F),J2(0x2D6F),J2(0x2D6E),J2(0x2D6D), -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x2D53),J2(0x2D54), - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 ,J2(0x2D50),J2(0x2D51),J2(0x2D52), -1 , - -1 ,J2(0x2D56), -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 ,J2(0x2D55), -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 ,J2(0x2D63) + -1 , -1 , -1 ,J2(0x2126),J2(0x213C),J2(0x2133),J2(0x2134) }; static const int table_ucs_jis_i[] = { @@ -4445,7 +4520,7 @@ J3(0x3047),J3(0x3048),J3(0x3049),J2(0x4265),J2(0x4E61),J2(0x304A), -1 , -1 , J3(0x304A), -1 , -1 , -1 , -1 ,J2(0x5041),J2(0x323E),J3(0x304B), J2(0x3644),J3(0x304C),J2(0x4367),J3(0x304D), -1 ,J3(0x304E),J2(0x376F),J2(0x5043), - -1 , -1 , -1 ,J2(0x4724),J2(0x792F),J3(0x304F),J3(0x3050),J3(0x3051), + -1 , -1 , -1 ,J2(0x4724), -1 ,J3(0x304F),J3(0x3050),J3(0x3051), /* 4F00h */ J3(0x3052),J2(0x346B),J3(0x3053),J3(0x3054), -1 , -1 , -1 , -1 , @@ -4512,7 +4587,7 @@ J3(0x323B), -1 ,J2(0x4E3D), -1 ,J3(0x323C),J3(0x323D),J2(0x5126),J3(0x323E), -1 , -1 ,J3(0x323F),J2(0x5129),J3(0x3240),J2(0x5127),J3(0x3241),J2(0x414E), J3(0x3242),J3(0x3243), -1 , -1 , -1 ,J2(0x5128),J2(0x512A),J3(0x3244), - -1 ,J3(0x3245),J3(0x3251), -1 ,J2(0x7941),J2(0x512C),J3(0x3246), -1 , + -1 ,J3(0x3245),J3(0x3251), -1 , -1 ,J2(0x512C),J3(0x3246), -1 , -1 ,J2(0x512B),J3(0x3247),J2(0x4A48), -1 , -1 ,J3(0x3248), -1 , /* 5100h */ @@ -4545,7 +4620,7 @@ -1 ,J3(0x3323),J3(0x3324),J3(0x3325), -1 ,J3(0x3326),J2(0x5245), -1 , J3(0x3327), -1 , -1 ,J2(0x515B),J2(0x7425),J2(0x3645),J3(0x3328), -1 , J2(0x515C),J2(0x4B5E),J3(0x3329), -1 , -1 ,J3(0x332A),J2(0x3D68),J2(0x427C), - -1 ,J2(0x515E),J2(0x4664), -1 ,J2(0x7947),J2(0x515F),J3(0x332B), -1 , + -1 ,J2(0x515E),J2(0x4664), -1 , -1 ,J2(0x515F),J3(0x332B), -1 , J2(0x5160),J2(0x332E),J3(0x332C),J3(0x332D),J3(0x332E),J2(0x5161),J2(0x3627),J3(0x332F), J2(0x464C),J2(0x317A),J2(0x3D50), -1 , -1 ,J2(0x4821),J2(0x5162), -1 , @@ -4584,11 +4659,11 @@ J2(0x5230),J2(0x5231),J2(0x3C5B), -1 , -1 , -1 ,J2(0x387B),J2(0x4C5E), /* 5300h */ - J3(0x337B),J2(0x4C68),J2(0x4677),J3(0x337C), -1 ,J2(0x4A71),J2(0x5232),J2(0x794E), + J3(0x337B),J2(0x4C68),J2(0x4677),J3(0x337C), -1 ,J2(0x4A71),J2(0x5232), -1 , J2(0x5233), -1 ,J3(0x337D),J3(0x337E),J3(0x3421),J2(0x5235), -1 ,J2(0x5237), J2(0x5236),J3(0x3422), -1 ,J3(0x3423), -1 ,J2(0x5238),J2(0x323D),J2(0x4B4C), J3(0x3424),J2(0x3A7C),J2(0x5239),J3(0x3425),J3(0x3426),J2(0x4159),J3(0x3427),J3(0x3428), - J2(0x3E22),J2(0x3629), -1 ,J2(0x523A),J2(0x794F),J3(0x3429), -1 ,J3(0x342A), + J2(0x3E22),J2(0x3629), -1 ,J2(0x523A), -1 ,J3(0x3429), -1 ,J3(0x342A), J3(0x342B),J3(0x342C),J2(0x485B),J3(0x342D),J3(0x342E),J3(0x342F), -1 ,J2(0x523B), J3(0x3430),J2(0x523C),J3(0x3431),J2(0x523D), -1 ,J3(0x3432), -1 , -1 , J2(0x523E),J2(0x4924),J2(0x3668),J2(0x3065),J3(0x3433),J3(0x3434),J3(0x3435),J2(0x463F), @@ -4635,7 +4710,7 @@ J2(0x526F),J2(0x526D), -1 ,J2(0x4C23),J3(0x347D),J2(0x526A),J2(0x5273),J2(0x526E), -1 , -1 , -1 ,J2(0x5271),J2(0x3846),J2(0x4C3F), -1 ,J3(0x347E), J2(0x5272),J3(0x3521), -1 ,J3(0x3522),J2(0x5274),J3(0x3523),J2(0x5276), -1 , - J3(0x3524),J3(0x3525),J2(0x7956),J2(0x3A70),J2(0x4F42),J3(0x3526),J2(0x526B),J2(0x5269), + J3(0x3524),J3(0x3525), -1 ,J2(0x3A70),J2(0x4F42),J3(0x3526),J2(0x526B),J2(0x5269), J2(0x5275),J3(0x3527),J2(0x5270), -1 , -1 ,J3(0x3528),J3(0x3529), -1 , -1 , -1 , -1 , -1 ,J3(0x352A), -1 , -1 ,J3(0x352B), -1 ,J3(0x352C),J2(0x5278), -1 ,J2(0x5323),J2(0x527A),J3(0x352D),J3(0x352E), @@ -4731,7 +4806,7 @@ J2(0x542E), -1 ,J2(0x3A64), -1 , -1 ,J3(0x373C),J3(0x373D),J2(0x3651), -1 , -1 ,J2(0x4B37), -1 ,J3(0x373E),J3(0x373F),J2(0x542C),J2(0x542F), J2(0x3A41),J2(0x3923),J3(0x3740), -1 , -1 , -1 , -1 , -1 , - -1 ,J2(0x795A), -1 , -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x5433),J3(0x3741), -1 ,J2(0x3A25),J3(0x3742),J2(0x4333),J3(0x3743), J3(0x3744),J2(0x5430),J2(0x445A),J3(0x3745), -1 ,J3(0x3746),J3(0x3747),J3(0x3748), J3(0x3749),J3(0x374A), -1 ,J3(0x374B),J3(0x374C),J3(0x374D), -1 ,J3(0x374E), @@ -4773,7 +4848,7 @@ J3(0x383B),J3(0x383C), -1 ,J2(0x362D), -1 ,J2(0x5450), -1 ,J3(0x383D), J3(0x383E),J3(0x383F),J3(0x3840), -1 ,J3(0x3841),J3(0x3842), -1 ,J3(0x3843), J3(0x3844), -1 , -1 ,J2(0x4A68),J3(0x3845), -1 ,J3(0x3846),J2(0x417D), - -1 , -1 , -1 , -1 ,J2(0x4446),J3(0x3847),J2(0x7961),J2(0x5452), + -1 , -1 , -1 , -1 ,J2(0x4446),J3(0x3847), -1 ,J2(0x5452), J3(0x3848),J3(0x3849),J3(0x384A), -1 , -1 , -1 ,J3(0x384B), -1 , J2(0x4B4F),J3(0x384C), -1 ,J2(0x5453), -1 , -1 ,J2(0x5458), -1 , -1 ,J3(0x384D),J3(0x384E),J2(0x4A2F), -1 , -1 , -1 , -1 , @@ -4885,7 +4960,7 @@ J2(0x5567), -1 ,J2(0x3428),J2(0x3677),J2(0x5566), -1 ,J3(0x3A5F),J3(0x3A60), J3(0x3A61),J3(0x3A62),J3(0x3A63),J2(0x3432), -1 ,J2(0x3F32),J2(0x556B),J2(0x3B21), J3(0x3A64),J2(0x3249),J2(0x556A), -1 ,J2(0x5568),J2(0x556C),J2(0x5569),J2(0x472B), - J2(0x5C4D),J2(0x3F33), -1 ,J2(0x556D),J2(0x796E), -1 ,J2(0x4E40),J3(0x3A65), + J2(0x5C4D),J2(0x3F33), -1 ,J2(0x556D), -1 , -1 ,J2(0x4E40),J3(0x3A65), J2(0x556E),J3(0x3A66), -1 ,J2(0x5570),J3(0x3A67),J2(0x437E),J2(0x556F), -1 , J2(0x4023), -1 ,J2(0x3B7B), -1 , -1 ,J3(0x3A68),J2(0x4250),J2(0x3C77), @@ -4920,7 +4995,7 @@ -1 ,J2(0x5635), -1 , -1 , -1 ,J3(0x3B3C), -1 , -1 , J2(0x463D),J2(0x362E), -1 , -1 , -1 , -1 , -1 , -1 , J2(0x3265),J2(0x5636),J2(0x563B), -1 , -1 ,J2(0x5639),J3(0x3B3E),J2(0x4A77), - J2(0x4A76),J3(0x3B3F),J3(0x3B40), -1 ,J3(0x3B41),J2(0x7972),J2(0x4567), -1 , + J2(0x4A76),J3(0x3B3F),J3(0x3B40), -1 ,J3(0x3B41), -1 ,J2(0x4567), -1 , -1 , -1 ,J2(0x5638),J2(0x3D54), -1 ,J2(0x5637), -1 , -1 , /* 5D00h */ @@ -4934,7 +5009,7 @@ -1 ,J3(0x3B4D), -1 , -1 , -1 ,J3(0x3B4E), -1 ,J3(0x3B4F), -1 , -1 ,J3(0x3B50),J3(0x3B51), -1 , -1 ,J3(0x3B52), -1 , J3(0x3B53), -1 ,J3(0x3B57),J2(0x564B),J2(0x5648), -1 ,J2(0x564A), -1 , - J2(0x4D72),J3(0x3B55),J2(0x5649),J2(0x7974), -1 ,J3(0x3B54), -1 , -1 , + J2(0x4D72),J3(0x3B55),J2(0x5649), -1 , -1 ,J3(0x3B54), -1 , -1 , -1 ,J3(0x3B56), -1 , -1 ,J2(0x563F), -1 , -1 ,J3(0x3B58), J3(0x3B59),J3(0x3B5A),J3(0x3B5B), -1 ,J3(0x3B5C), -1 , -1 , -1 , -1 ,J2(0x3F73),J3(0x3B5D), -1 ,J2(0x564C),J3(0x3B5E), -1 ,J2(0x3A37), @@ -5014,7 +5089,7 @@ J2(0x5751),J2(0x5750), -1 , -1 ,J3(0x3D2D),J3(0x3D2E),J2(0x574F), -1 , J2(0x5752),J2(0x3866),J3(0x3D2F), -1 ,J3(0x3D32), -1 , -1 ,J3(0x3D30), J2(0x5753),J2(0x497C),J2(0x3D5B),J3(0x3D31),J3(0x3D33),J2(0x5754),J2(0x4879),J3(0x3D34), - J3(0x3D35),J3(0x3D36), -1 ,J2(0x4641),J2(0x4427), -1 , -1 ,J2(0x797E), + J3(0x3D35),J3(0x3D36), -1 ,J2(0x4641),J2(0x4427), -1 , -1 , -1 , J3(0x3D37),J2(0x4530), -1 , -1 ,J2(0x5755),J2(0x352B), -1 , -1 , -1 , -1 , -1 ,J2(0x3F34),J3(0x3D38),J2(0x492C), -1 ,J3(0x3D39), J3(0x3D3A),J3(0x3D3B), -1 ,J3(0x3D3C),J2(0x3477),J2(0x4726), -1 , -1 , @@ -5042,7 +5117,7 @@ J2(0x3A28),J2(0x3238),J2(0x576D),J2(0x5778),J2(0x5777),J2(0x3633), -1 ,J2(0x4229), J2(0x3366),J3(0x3D6A), -1 , -1 , -1 ,J2(0x3743), -1 ,J2(0x576E), -1 , -1 , -1 , -1 , -1 , -1 ,J3(0x3D6B),J3(0x3D6C), - -1 ,J2(0x577A),J3(0x3D6D),J2(0x577D),J2(0x5821),J2(0x7A23),J3(0x3D6E), -1 , + -1 ,J2(0x577A),J3(0x3D6D),J2(0x577D),J2(0x5821), -1 ,J3(0x3D6E), -1 , J3(0x3D6F),J2(0x3C3D),J3(0x3D70),J2(0x5827),J2(0x4470),J2(0x577B),J3(0x3D71), -1 , -1 ,J3(0x3D72),J2(0x5825),J3(0x3D73),J2(0x3279),J3(0x3D74),J2(0x5823),J2(0x5824), J3(0x3D75), -1 ,J2(0x577E),J2(0x5822), -1 ,J3(0x3D76),J3(0x3D77),J2(0x3867), @@ -5064,7 +5139,7 @@ J2(0x4C7C),J2(0x4C7B),J3(0x3E3A), -1 ,J3(0x3E3B),J2(0x583E),J2(0x583F),J2(0x3055), J3(0x3E3C),J3(0x3E3D),J3(0x3E3E),J3(0x3E3F),J3(0x3E40),J2(0x5833),J3(0x3E41),J3(0x3E42), -1 ,J3(0x3E43),J2(0x3672),J2(0x3026),J3(0x3E44), -1 ,J3(0x3E45),J2(0x3436), - J2(0x7A27),J2(0x583B),J3(0x3E46), -1 , -1 , -1 , -1 ,J2(0x5843), + -1 ,J2(0x583B),J3(0x3E46), -1 , -1 , -1 , -1 ,J2(0x5843), J2(0x5842), -1 ,J3(0x3E47),J3(0x3E48),J2(0x5847), -1 , -1 , -1 , J3(0x3E49),J3(0x3E4A), -1 , -1 ,J2(0x5848),J3(0x3E4B),J3(0x3E4C),J3(0x3E4D), -1 ,J3(0x3E4E), -1 , -1 ,J2(0x5846),J2(0x5849),J2(0x5841),J2(0x5845), @@ -5205,7 +5280,7 @@ -1 ,J3(0x4146), -1 , -1 ,J2(0x5A3D),J2(0x5A3E),J2(0x5A40),J2(0x5A3F), J2(0x5A41),J2(0x327E),J3(0x4147),J2(0x3936),J3(0x4148),J3(0x4149),J2(0x4A7C),J2(0x402F), -1 , -1 , -1 ,J3(0x414A), -1 ,J2(0x384E), -1 ,J3(0x414B), - J2(0x5A43),J3(0x414C), -1 , -1 , -1 ,J2(0x5A46),J2(0x7A33),J2(0x4952), + J2(0x5A43),J3(0x414C), -1 , -1 , -1 ,J2(0x5A46), -1 ,J2(0x4952), J3(0x414D),J2(0x355F),J3(0x414E), -1 ,J3(0x414F),J2(0x5A45),J2(0x5A44),J2(0x4754), J2(0x5A47),J2(0x3635), -1 , -1 , -1 ,J2(0x5A49),J2(0x5A48),J3(0x4150), J3(0x4151), -1 ,J2(0x343A),J2(0x3B36), -1 , -1 ,J2(0x4658),J3(0x4152), @@ -5237,12 +5312,12 @@ J2(0x3147),J3(0x4222),J3(0x4223),J3(0x4224),J3(0x4225),J2(0x3D55),J3(0x4226),J2(0x4B66), J2(0x3A72),J3(0x4227),J3(0x4228),J3(0x4229),J3(0x422A),J2(0x3E3C),J3(0x422B),J2(0x4027), J3(0x422C),J3(0x422D), -1 ,J3(0x422E),J2(0x5A65),J2(0x5A63),J2(0x5A64),J3(0x4230), - -1 ,J3(0x422F), -1 ,J2(0x7A36),J2(0x436B), -1 , -1 ,J2(0x5B26), + -1 ,J3(0x422F), -1 , -1 ,J2(0x436B), -1 , -1 ,J2(0x5B26), J3(0x4231),J2(0x5A6A),J2(0x3B7E),J2(0x3938),J2(0x5A68),J3(0x4232),J3(0x4233), -1 , -1 ,J2(0x5A69),J3(0x4234),J2(0x3F38),J3(0x4235), -1 ,J3(0x4237),J2(0x5A67), -1 ,J3(0x4236),J2(0x3B2F), -1 , -1 , -1 , -1 ,J3(0x4238), J3(0x4239),J3(0x423A), -1 ,J3(0x423B),J3(0x423C),J2(0x5A6C),J2(0x5A6B),J2(0x5A70), - J3(0x423D),J3(0x423E),J2(0x5A71), -1 ,J2(0x5A6D),J2(0x7A3B),J2(0x3322),J2(0x5A6E), + J3(0x423D),J3(0x423E),J2(0x5A71), -1 ,J2(0x5A6D), -1 ,J2(0x3322),J2(0x5A6E), J2(0x5A6F),J2(0x4855),J3(0x4240),J3(0x4241),J3(0x4242), -1 ,J2(0x4961),J2(0x374A), J2(0x5A72), -1 , -1 ,J3(0x4244),J2(0x4032),J3(0x4245),J2(0x3E3D),J3(0x4247), J3(0x4248),J3(0x4249),J2(0x4352),J3(0x424A),J3(0x424C), -1 ,J3(0x4243),J3(0x4246), @@ -5298,7 +5373,7 @@ -1 ,J3(0x4338), -1 ,J2(0x3A3A), -1 , -1 ,J2(0x4B6F),J2(0x3341), /* 6800h */ - -1 ,J2(0x7A4B),J2(0x444E),J2(0x464A),J2(0x3149), -1 , -1 , -1 , + -1 , -1 ,J2(0x444E),J2(0x464A),J2(0x3149), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x4072),J3(0x434A), -1 ,J2(0x4034),J2(0x372A), -1 ,J3(0x434B), -1 , -1 , -1 ,J3(0x434C),J2(0x5B59),J3(0x434D), @@ -5379,7 +5454,7 @@ J3(0x452B),J3(0x452C),J3(0x452D), -1 , -1 ,J3(0x452E),J3(0x452F), -1 , J2(0x354C),J2(0x5C74), -1 ,J3(0x4530), -1 , -1 , -1 ,J2(0x3521), -1 ,J2(0x464B),J2(0x5C73), -1 ,J3(0x4531), -1 ,J2(0x5C75),J3(0x4532), - -1 , -1 ,J3(0x4533),J2(0x7A54), -1 , -1 , -1 , -1 , + -1 , -1 ,J3(0x4533), -1 , -1 , -1 , -1 , -1 , -1 ,J3(0x4534),J2(0x5C6F),J3(0x4535), -1 , -1 , -1 , -1 , J2(0x5C71), -1 , -1 , -1 , -1 , -1 ,J3(0x4536),J2(0x3360), J2(0x4349),J3(0x4537), -1 ,J3(0x4538),J2(0x5C7C), -1 ,J3(0x4539),J3(0x453A), @@ -5394,7 +5469,7 @@ J3(0x454D),J3(0x454C), -1 , -1 ,J3(0x454E), -1 , -1 , -1 , J3(0x454F),J2(0x5D2A), -1 ,J2(0x4F26),J3(0x4550),J3(0x4551),J3(0x4552), -1 , -1 , -1 ,J2(0x5D2D),J2(0x367B),J3(0x4553),J3(0x4554),J2(0x5D29),J2(0x5D2B), - -1 , -1 ,J2(0x7A58), -1 ,J3(0x4555), -1 , -1 ,J3(0x4556), + -1 , -1 , -1 , -1 ,J3(0x4555), -1 , -1 ,J3(0x4556), J2(0x4827), -1 ,J2(0x5D2E), -1 ,J3(0x4557), -1 , -1 , -1 , J3(0x4558),J3(0x4559),J3(0x455A), -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x5D32),J2(0x5D2F),J3(0x455B),J3(0x455C), -1 , -1 , @@ -5498,8 +5573,8 @@ J2(0x4571),J2(0x5E4A), -1 ,J3(0x475B), -1 ,J3(0x475C),J2(0x5E44),J3(0x475D), J3(0x475E),J2(0x4338),J3(0x475F), -1 ,J2(0x5E4B),J3(0x4760),J2(0x5E40), -1 , J2(0x5E46),J3(0x4761),J2(0x5E4D),J2(0x307C),J2(0x5E43), -1 ,J2(0x5E4E),J3(0x4762), - J3(0x4763),J2(0x3F3C),J2(0x7A67),J2(0x3D5F),J3(0x4764),J2(0x4A25),J3(0x4765),J2(0x3A2E), - J2(0x7A66),J2(0x5E3B),J2(0x5E49),J2(0x453A),J3(0x4766), -1 , -1 , -1 , + J3(0x4763),J2(0x3F3C), -1 ,J2(0x3D5F),J3(0x4764),J2(0x4A25),J3(0x4765),J2(0x3A2E), + -1 ,J2(0x5E3B),J2(0x5E49),J2(0x453A),J3(0x4766), -1 , -1 , -1 , /* 6E00h */ J3(0x4767), -1 , -1 , -1 ,J3(0x4768),J2(0x4036), -1 ,J2(0x3369), @@ -5575,7 +5650,7 @@ -1 ,J2(0x5F46), -1 , -1 , -1 ,J2(0x494E), -1 ,J3(0x492F), J2(0x5F4E), -1 ,J2(0x5F4B),J2(0x5F4A), -1 ,J2(0x5F4D),J2(0x4654),J2(0x5F4F), J3(0x4930), -1 , -1 ,J3(0x4931), -1 , -1 ,J2(0x4375),J2(0x426D), - J2(0x7A73), -1 , -1 , -1 ,J2(0x4025), -1 , -1 ,J3(0x4932), + -1 , -1 , -1 , -1 ,J2(0x4025), -1 , -1 ,J3(0x4932), J2(0x5F50), -1 ,J2(0x5F52), -1 ,J3(0x4933), -1 , -1 ,J3(0x4934), -1 ,J3(0x4935), -1 , -1 ,J3(0x4936), -1 ,J2(0x5F51), -1 , -1 , -1 , -1 ,J3(0x4937),J3(0x4938), -1 , -1 , -1 , @@ -5593,7 +5668,7 @@ -1 , -1 , -1 , -1 ,J3(0x4952), -1 , -1 , -1 , -1 , -1 , -1 ,J3(0x4953),J2(0x5F59),J2(0x433A),J2(0x5F5C),J2(0x5F57), J3(0x4954),J3(0x4955), -1 ,J2(0x5F5B),J3(0x4956), -1 , -1 ,J3(0x4957), - J2(0x5F5A),J2(0x4540),J2(0x3059),J2(0x7927), -1 , -1 , -1 , -1 , + J2(0x5F5A),J2(0x4540),J2(0x3059), -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , J2(0x4E75), -1 ,J3(0x4958),J2(0x5F5E), -1 , -1 , -1 ,J2(0x3128), -1 ,J3(0x4959), -1 ,J3(0x495A),J3(0x495B),J3(0x495C),J3(0x495D), -1 , @@ -5740,7 +5815,7 @@ J2(0x6129), -1 ,J3(0x4C7A),J3(0x4C7B),J3(0x4C7C), -1 , -1 ,J3(0x4C7D), /* 7500h */ - -1 ,J2(0x7B33), -1 ,J2(0x612C),J2(0x612B),J2(0x612D),J3(0x4C7E), -1 , + -1 , -1 , -1 ,J2(0x612C),J2(0x612B),J2(0x612D),J3(0x4C7E), -1 , -1 , -1 , -1 , -1 ,J2(0x612E),J2(0x6130),J2(0x612F), -1 , -1 ,J2(0x3979),J3(0x4D21),J2(0x6132), -1 ,J2(0x6131),J3(0x4D22),J3(0x4D23), J2(0x3445), -1 ,J2(0x3F53), -1 ,J2(0x453C), -1 ,J2(0x6133),J2(0x4038), @@ -5790,10 +5865,10 @@ J2(0x6179),J2(0x617A),J2(0x617B), -1 ,J2(0x617D),J3(0x4E30),J3(0x4E31),J3(0x4E32), J2(0x617E),J3(0x4E33),J2(0x6221), -1 ,J3(0x4E34), -1 ,J2(0x6222), -1 , J2(0x6223), -1 ,J2(0x482F),J2(0x4550),J2(0x6224),J2(0x4772),J2(0x4934), -1 , - J2(0x6225),J3(0x4E35),J2(0x7B35),J2(0x6226),J2(0x452A),J3(0x4E36),J2(0x3327),J2(0x3944), + J2(0x6225),J3(0x4E35), -1 ,J2(0x6226),J2(0x452A),J3(0x4E36),J2(0x3327),J2(0x3944), J2(0x6227), -1 , -1 ,J2(0x6228),J3(0x4E37),J3(0x4E38),J2(0x6229), -1 , J2(0x3B29), -1 , -1 ,J2(0x622B), -1 ,J3(0x4E39),J2(0x622A), -1 , - -1 ,J2(0x622C),J2(0x622D),J3(0x4E3A),J3(0x4E3B),J3(0x4E3C),J2(0x7B37),J3(0x4E3D), + -1 ,J2(0x622C),J2(0x622D),J3(0x4E3A),J3(0x4E3B),J3(0x4E3C), -1 ,J3(0x4E3D), J3(0x4E3E), -1 ,J3(0x4E3F),J3(0x4E40),J3(0x4E41),J3(0x4E42),J3(0x4E43),J3(0x4E44), J3(0x4E45), -1 ,J3(0x4E46), -1 , -1 ,J3(0x4E47),J2(0x4869), -1 , J2(0x622E), -1 , -1 , -1 ,J2(0x622F), -1 , -1 ,J2(0x7369), @@ -5882,7 +5957,7 @@ -1 ,J2(0x6328),J3(0x503F), -1 ,J3(0x5040), -1 ,J3(0x5041),J3(0x5042), J3(0x5043), -1 , -1 , -1 , -1 ,J3(0x5044),J2(0x6268),J3(0x5045), -1 ,J3(0x5046),J2(0x626A),J2(0x632A),J2(0x6329),J3(0x5047), -1 , -1 , - J2(0x7B41),J3(0x5048), -1 , -1 ,J3(0x5049),J3(0x504A), -1 , -1 , + -1 ,J3(0x5048), -1 , -1 ,J3(0x5049),J3(0x504A), -1 , -1 , -1 , -1 ,J2(0x3C28),J3(0x504B),J2(0x4E69),J3(0x504C),J2(0x3C52),J3(0x504D), J2(0x632B),J2(0x3737), -1 , -1 ,J3(0x504E),J3(0x504F),J3(0x5050),J2(0x3540), J2(0x3527),J2(0x3B63),J3(0x5051),J3(0x5052), -1 , -1 , -1 ,J3(0x5053), @@ -5938,7 +6013,7 @@ J2(0x635E),J3(0x5165),J2(0x6366),J2(0x4E29),J3(0x5166),J2(0x6367),J3(0x5167),J2(0x6368), -1 ,J3(0x5168),J2(0x5474),J2(0x636A), -1 ,J2(0x6369), -1 , -1 , -1 ,J2(0x636B),J2(0x636C),J3(0x5169),J2(0x4E35),J2(0x636D), -1 ,J2(0x706F), - J2(0x3E4F),J2(0x636E),J2(0x636F),J2(0x3D57), -1 ,J2(0x4638),J2(0x6370),J2(0x7B49), + J2(0x3E4F),J2(0x636E),J2(0x636F),J2(0x3D57), -1 ,J2(0x4638),J2(0x6370), -1 , J3(0x516A),J3(0x516B),J2(0x4328),J3(0x516C),J3(0x516D),J2(0x6371), -1 ,J2(0x433C), J2(0x6372),J3(0x516E), -1 , -1 ,J3(0x516F), -1 ,J2(0x3625), -1 , J2(0x513F),J2(0x435D),J2(0x3C33),J3(0x5170), -1 ,J3(0x5171),J3(0x5172),J2(0x3448), @@ -6032,13 +6107,13 @@ J3(0x5377),J2(0x6535), -1 ,J3(0x5378),J3(0x5379),J3(0x537A), -1 ,J2(0x6537), -1 ,J3(0x537B), -1 ,J2(0x6534), -1 , -1 ,J3(0x537C),J3(0x537D), -1 ,J2(0x3751),J2(0x4233),J2(0x6539),J2(0x416E),J3(0x537E),J3(0x5421),J2(0x6546), - J2(0x7B51), -1 ,J2(0x6542),J2(0x653C), -1 , -1 ,J3(0x5422),J3(0x5423), + -1 , -1 ,J2(0x6542),J2(0x653C), -1 , -1 ,J3(0x5422),J3(0x5423), -1 , -1 ,J3(0x5424),J2(0x6540),J2(0x3C7A),J2(0x305D),J2(0x653B),J2(0x6543), J2(0x6547),J2(0x394B),J2(0x4C56),J3(0x5425),J2(0x4456),J2(0x653D),J3(0x5426),J3(0x5427), J2(0x6545),J3(0x5428),J2(0x653A),J2(0x433E), -1 ,J2(0x653F),J2(0x303D),J2(0x4C4A), -1 , -1 ,J3(0x5429),J3(0x542A),J3(0x542B),J3(0x542C),J3(0x542D),J2(0x653E), -1 , -1 ,J2(0x365B),J2(0x486C),J3(0x542E),J3(0x542F),J3(0x5430),J2(0x416D), - -1 ,J2(0x4E50),J2(0x3D6F), -1 , -1 ,J2(0x656E),J2(0x7B52),J3(0x5431), + -1 ,J2(0x4E50),J2(0x3D6F), -1 , -1 ,J2(0x656E), -1 ,J3(0x5431), J2(0x6548),J3(0x5432),J2(0x407E), -1 ,J2(0x6544),J2(0x6549),J2(0x654B), -1 , J2(0x4479),J2(0x654E),J3(0x5434), -1 ,J2(0x654A),J3(0x5435),J3(0x5436), -1 , J2(0x4A54),J2(0x344B),J3(0x5437),J3(0x5438),J2(0x4C4B),J3(0x5439), -1 ,J2(0x305E), @@ -6228,7 +6303,7 @@ -1 ,J2(0x4170),J2(0x3755), -1 , -1 ,J3(0x5777),J3(0x5778),J2(0x3141), J2(0x6828),J3(0x5779),J2(0x3953),J3(0x583E),J3(0x5763),J3(0x577A),J3(0x577B),J3(0x577C), J2(0x4171), -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 ,J2(0x7B58), -1 , -1 , -1 , -1 , -1 , + -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , J3(0x577D), -1 , -1 ,J2(0x683A), -1 ,J2(0x683B), -1 ,J2(0x3259), J3(0x577E), -1 , -1 ,J2(0x322E),J2(0x6838),J3(0x5821), -1 ,J3(0x5822), @@ -6306,7 +6381,7 @@ J3(0x5960),J2(0x4665), -1 ,J2(0x692D),J2(0x6930),J3(0x5961), -1 ,J3(0x5962), J3(0x5963), -1 ,J3(0x5964), -1 ,J2(0x6926),J3(0x5965),J2(0x4126),J3(0x5966), J2(0x692A),J2(0x3B27),J2(0x3F45),J2(0x3730),J2(0x4C74),J3(0x5974),J2(0x4C79),J2(0x3D72), - J2(0x7B62), -1 , -1 , -1 ,J3(0x5967), -1 ,J3(0x5968),J3(0x5969), + -1 , -1 , -1 , -1 ,J3(0x5967), -1 ,J3(0x5968),J3(0x5969), J3(0x596A),J2(0x6937),J2(0x6935), -1 ,J3(0x596B),J3(0x596C),J3(0x596D),J3(0x596E), -1 ,J2(0x4F4E),J3(0x596F), -1 , -1 , -1 , -1 ,J3(0x5970), -1 ,J2(0x6934),J3(0x5971),J3(0x5972), -1 ,J2(0x4D75),J3(0x5973),J2(0x6936), @@ -6386,7 +6461,7 @@ J3(0x5B65),J2(0x332A),J3(0x5B66),J2(0x3542), -1 , -1 ,J2(0x6A39),J3(0x5B67), /* 8800h */ - -1 ,J3(0x5B68), -1 ,J3(0x5B69), -1 ,J2(0x6A24),J3(0x5B6A),J2(0x7B65), + -1 ,J3(0x5B68), -1 ,J3(0x5B69), -1 ,J2(0x6A24),J3(0x5B6A), -1 , -1 ,J3(0x5B6B),J3(0x5B6C),J3(0x5B6D), -1 ,J2(0x6A38),J2(0x6A3C),J2(0x6A37), J3(0x5B6E),J2(0x6A3E),J3(0x5B70),J3(0x5B71),J3(0x5B72),J2(0x6A40),J2(0x6A3F), -1 , J3(0x5B73),J3(0x5B6F),J3(0x5B74),J3(0x5B75),J3(0x5B76), -1 ,J3(0x5B77),J3(0x5B78), @@ -6503,7 +6578,7 @@ -1 , -1 , -1 ,J3(0x5E50), -1 , -1 ,J2(0x3759), -1 , -1 , -1 , -1 ,J2(0x6B7E),J2(0x6C22),J3(0x5E51), -1 ,J2(0x6C23), J2(0x3544),J2(0x6641),J2(0x3E79), -1 ,J2(0x6C24), -1 ,J3(0x5E52),J2(0x386E), - J3(0x5E53),J3(0x5E54), -1 , -1 ,J3(0x5E55),J2(0x6C25),J3(0x5E56),J2(0x7B70), + J3(0x5E53),J3(0x5E54), -1 , -1 ,J3(0x5E55),J2(0x6C25),J3(0x5E56), -1 , J2(0x6C26),J3(0x5E57), -1 ,J2(0x3B3E),J3(0x5E58),J3(0x5E59), -1 , -1 , -1 , -1 ,J2(0x5A4E),J3(0x5E5A),J2(0x6C27),J3(0x5E5B),J2(0x6C28),J3(0x5E5C), J2(0x3D32), -1 ,J2(0x6C29),J2(0x6C2A),J3(0x5E5D),J3(0x5E5E),J2(0x6C2B), -1 , @@ -6552,7 +6627,7 @@ -1 ,J3(0x5F33),J2(0x6C4F),J2(0x3B3F),J2(0x3B72),J3(0x5F34),J2(0x3E5E), -1 , J2(0x4765),J3(0x5F35),J2(0x382D),J2(0x6C4E),J2(0x6C4D), -1 ,J2(0x496A), -1 , J3(0x5F36), -1 ,J2(0x3C41), -1 ,J3(0x5F37),J2(0x4552), -1 ,J3(0x5F38), - J3(0x5F39), -1 ,J3(0x5F3A), -1 ,J2(0x7B72),J3(0x5F3B), -1 ,J3(0x5F3C), + J3(0x5F39), -1 ,J3(0x5F3A), -1 , -1 ,J3(0x5F3B), -1 ,J3(0x5F3C), J3(0x5F3D), -1 ,J2(0x6C51),J2(0x6C52),J2(0x3958),J2(0x6C50),J3(0x5F3E),J3(0x5F3F), /* 8D00h */ @@ -6570,7 +6645,7 @@ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x4056),J3(0x5F46),J2(0x3C4F),J2(0x6C5F), -1 ,J3(0x5F47), -1 ,J2(0x3352),J3(0x5F48),J2(0x6C60),J3(0x5F49), -1 , - J2(0x4176),J2(0x6C61), -1 ,J2(0x6C62),J2(0x496B), -1 ,J2(0x7B74),J2(0x352F), + J2(0x4176),J2(0x6C61), -1 ,J2(0x6C62),J2(0x496B), -1 , -1 ,J2(0x352F), -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J3(0x5F4A), -1 ,J2(0x6C63),J3(0x5F4B), -1 ,J3(0x5F4C),J2(0x4436), -1 , -1 , J3(0x5F4D), -1 ,J2(0x315B), -1 , -1 ,J3(0x5F4E), -1 , -1 , @@ -6685,7 +6760,7 @@ -1 ,J2(0x306A), -1 ,J3(0x617E),J3(0x6221),J3(0x6222), -1 ,J3(0x6223), J3(0x6224), -1 ,J2(0x3959), -1 ,J3(0x617C), -1 ,J2(0x4F3A), -1 , -1 , -1 ,J3(0x622D), -1 , -1 ,J3(0x6225), -1 ,J3(0x6226), - J3(0x6227),J3(0x6228), -1 ,J2(0x6E3E),J3(0x6229),J3(0x622A),J2(0x7B7A),J3(0x622B), + J3(0x6227),J3(0x6228), -1 ,J2(0x6E3E),J3(0x6229),J3(0x622A), -1 ,J3(0x622B), -1 ,J2(0x3734),J2(0x6E3B), -1 ,J2(0x6E3C),J3(0x622C), -1 , -1 , J2(0x4974), -1 , -1 ,J3(0x622F), -1 ,J2(0x3354), -1 ,J3(0x6230), J3(0x6231), -1 , -1 , -1 ,J3(0x6232),J2(0x4D39),J3(0x622E),J2(0x363F), @@ -6694,7 +6769,7 @@ /* 9100h */ J3(0x6235), -1 ,J2(0x6E3F), -1 ,J3(0x6236),J3(0x6237),J3(0x6238), -1 , J3(0x6239), -1 , -1 , -1 , -1 ,J3(0x623A), -1 , -1 , - J3(0x623B), -1 ,J2(0x6E40), -1 ,J3(0x623C),J2(0x7B7C),J3(0x623D),J3(0x623E), + J3(0x623B), -1 ,J2(0x6E40), -1 ,J3(0x623C), -1 ,J3(0x623D),J3(0x623E), J3(0x623F),J2(0x6E41),J3(0x6240), -1 ,J3(0x6241), -1 ,J3(0x6242), -1 , J3(0x6243), -1 ,J3(0x6245),J3(0x6246), -1 ,J3(0x6244), -1 ,J3(0x6247), -1 ,J3(0x6248), -1 , -1 , -1 ,J2(0x4522),J3(0x6249),J3(0x624A), @@ -6846,7 +6921,7 @@ J3(0x657D),J3(0x657E), -1 , -1 , -1 , -1 ,J3(0x6621), -1 , J2(0x4C67), -1 ,J2(0x6F59),J2(0x412E),J3(0x6622), -1 , -1 ,J2(0x6F5A), J3(0x6623),J2(0x4A44),J2(0x6F5B),J2(0x332B),J3(0x6624),J3(0x6625),J3(0x6626),J2(0x313C), - -1 ,J2(0x3457),J2(0x7C4E),J2(0x3456),J2(0x6F5C), -1 ,J2(0x6F5D), -1 , + -1 ,J2(0x3457), -1 ,J2(0x3456),J2(0x6F5C), -1 ,J2(0x6F5D), -1 , J2(0x6F5E),J2(0x6F5F), -1 , -1 , -1 ,J3(0x6627),J3(0x6628),J3(0x6629), J2(0x6F60),J3(0x662A),J2(0x3458),J2(0x3355),J2(0x395E),J2(0x4836),J3(0x662B),J2(0x6F62), J2(0x6F61),J3(0x662C), -1 ,J3(0x662D),J3(0x662E),J2(0x6F63), -1 , -1 , @@ -6903,10 +6978,10 @@ -1 ,J3(0x6727),J3(0x6728),J3(0x6729),J2(0x7045), -1 , -1 ,J2(0x4C38), J3(0x672A), -1 ,J2(0x7046), -1 , -1 , -1 , -1 , -1 , J2(0x7047),J3(0x672B),J2(0x4F2A),J3(0x672C), -1 , -1 , -1 , -1 , - J2(0x5B31),J2(0x7048), -1 ,J2(0x7C54), -1 ,J2(0x7049),J2(0x704A), -1 , + J2(0x5B31),J2(0x7048), -1 , -1 , -1 ,J2(0x7049),J2(0x704A), -1 , -1 ,J3(0x672D),J2(0x704E),J3(0x672E),J2(0x704B), -1 ,J2(0x704C), -1 , - J2(0x704D),J2(0x704F),J3(0x672F), -1 , -1 ,J2(0x7C56),J3(0x6730),J3(0x6731), - -1 ,J2(0x7C58),J2(0x4044), -1 , -1 ,J3(0x6732),J2(0x4C77),J3(0x6733), + J2(0x704D),J2(0x704F),J3(0x672F), -1 , -1 , -1 ,J3(0x6730),J3(0x6731), + -1 , -1 ,J2(0x4044), -1 , -1 ,J3(0x6732),J2(0x4C77),J3(0x6733), J3(0x6734),J2(0x4045),J3(0x6735),J3(0x6736),J2(0x7050), -1 ,J2(0x4873), -1 , J2(0x7051),J2(0x7353),J2(0x4C4C),J3(0x6737),J2(0x7052), -1 ,J2(0x7053),J3(0x6738), J2(0x7054),J2(0x3357),J3(0x6739),J2(0x7056), -1 ,J2(0x3F59),J3(0x673A), -1 , @@ -6983,7 +7058,7 @@ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x3C73),J2(0x7144), - J2(0x7145),J2(0x3961), -1 ,J3(0x6877), -1 ,J3(0x6878),J2(0x7C60),J3(0x6879), + J2(0x7145),J2(0x3961), -1 ,J3(0x6877), -1 ,J3(0x6878), -1 ,J3(0x6879), -1 , -1 , -1 , -1 , -1 ,J2(0x7146),J3(0x687A), -1 , J2(0x333E), -1 , -1 , -1 ,J2(0x474F),J2(0x7147),J2(0x7148), -1 , J3(0x687B),J3(0x687C),J3(0x687D),J2(0x435A),J2(0x466B),J3(0x687E), -1 , -1 , @@ -7025,7 +7100,7 @@ J2(0x716F),J3(0x6962), -1 ,J3(0x6963),J2(0x3F71), -1 ,J3(0x6964), -1 , J3(0x6965), -1 , -1 , -1 , -1 , -1 ,J3(0x6966),J2(0x7170), J3(0x6967),J2(0x7171),J3(0x6968),J2(0x7172),J2(0x7173),J3(0x6969),J3(0x696A),J3(0x696B), - J2(0x3962),J2(0x7C62), -1 ,J3(0x696C),J3(0x696D), -1 ,J2(0x7174),J2(0x7175), + J2(0x3962), -1 , -1 ,J3(0x696C),J3(0x696D), -1 ,J2(0x7174),J2(0x7175), J3(0x696E), -1 ,J2(0x7176),J2(0x7177),J3(0x696F),J3(0x6970),J2(0x7178),J3(0x6971), -1 ,J3(0x6972),J2(0x4831),J2(0x717A),J3(0x6973),J2(0x4926),J2(0x717B),J2(0x7179), -1 ,J2(0x717D),J3(0x6974),J3(0x6975),J2(0x717C),J3(0x6976), -1 ,J2(0x717E), @@ -7046,7 +7121,7 @@ J2(0x7236), -1 ,J2(0x357B),J3(0x6A40), -1 , -1 ,J3(0x6A41), -1 , -1 ,J3(0x6A42), -1 ,J3(0x6A43), -1 ,J3(0x6A44),J3(0x6A45), -1 , J3(0x6A46), -1 ,J3(0x6A47),J3(0x6A48),J3(0x6A49),J3(0x6A4A),J3(0x6A4B),J2(0x4F25), - -1 , -1 ,J2(0x7C65),J3(0x6A4C),J2(0x7237),J3(0x6A4D), -1 ,J3(0x6A4E), + -1 , -1 , -1 ,J3(0x6A4C),J2(0x7237),J3(0x6A4D), -1 ,J3(0x6A4E), J3(0x6A4F),J3(0x6A50), -1 , -1 , -1 , -1 , -1 ,J3(0x6A51), J3(0x6A52), -1 , -1 ,J2(0x7239),J3(0x6A53),J3(0x6A54),J3(0x6A55),J3(0x6A56), -1 ,J3(0x6A57),J3(0x6A58),J3(0x6A59), -1 ,J3(0x6A5A),J2(0x303E),J3(0x6A5B), @@ -7160,7 +7235,7 @@ J2(0x7350),J2(0x396D),J2(0x4C4D),J2(0x4B63),J2(0x5677), -1 ,J2(0x5D60),J2(0x4B7B), -1 , -1 , -1 , -1 ,J2(0x322B), -1 ,J3(0x6C71), -1 , J3(0x6C72), -1 , -1 ,J3(0x6C73),J2(0x7354),J2(0x3550),J2(0x7355),J2(0x7356), - J2(0x7357),J2(0x7C6E),J2(0x3975), -1 ,J2(0x7358),J3(0x6C74), -1 , -1 , + J2(0x7357), -1 ,J2(0x3975), -1 ,J2(0x7358),J3(0x6C74), -1 , -1 , J2(0x6054),J2(0x4C5B), -1 ,J2(0x4263),J2(0x7359),J2(0x735B),J2(0x735A),J3(0x6C75), J2(0x735C), -1 , -1 , -1 ,J3(0x6C76),J2(0x735D), -1 ,J3(0x6C77), J2(0x735E), -1 , -1 , -1 ,J3(0x6C78),J3(0x6C79),J3(0x6C7A),J2(0x735F), @@ -7192,52 +7267,8 @@ }; static const int table_ucs_jis_r1[] = { - /* F900h */ - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 ,J2(0x7A46), -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 ,J2(0x7C4F), -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - - /* FA00h */ - -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - -1 , -1 , -1 , -1 , -1 , -1 ,J2(0x7954),J2(0x795F), - J2(0x7960),J2(0x7975),J2(0x7A3E),J2(0x7A4E),J2(0x7A50),J2(0x7A7B),J2(0x7B23),J2(0x7B3A), - J2(0x7B42),J2(0x7B43),J2(0x7B44),J2(0x7B46),J2(0x7B4A),J2(0x7B4D),J2(0x7B56),J2(0x7B61), - J2(0x7B63),J2(0x7B64),J2(0x7B6D),J2(0x7B75),J2(0x7B77),J2(0x7B78),J2(0x7B7B),J2(0x7C39), - J2(0x7C40),J2(0x7C50),J2(0x7C5C),J2(0x7C5D),J2(0x7C5F),J2(0x7C6C) -}; - -static const int table_ucs_jis_r2[] = { /* FF00h */ - -1 ,J2(0x212A),J2(0x7C7E),J2(0x2174),J2(0x2170),J2(0x2173),J2(0x2175),J2(0x7C7D), + -1 ,J2(0x212A), -1 ,J2(0x2174),J2(0x2170),J2(0x2173),J2(0x2175), -1 , J2(0x214A),J2(0x214B),J2(0x2176),J2(0x215C),J2(0x2124),J2(0x215D),J2(0x2125),J2(0x213F), J2(0x2330),J2(0x2331),J2(0x2332),J2(0x2333),J2(0x2334),J2(0x2335),J2(0x2336),J2(0x2337), J2(0x2338),J2(0x2339),J2(0x2127),J2(0x2128),J2(0x2163),J2(0x2161),J2(0x2164),J2(0x2129), @@ -7265,216 +7296,1409 @@ -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , - J2(0x2171),J2(0x2172),J2(0x224C),J2(0x2131),J2(0x7C7C),J2(0x216F) + J2(0x2171),J2(0x2172),J2(0x224C),J2(0x2131), -1 ,J2(0x216F) }; + +static const int table_ucs_cp932_user_euc[] = { + /* E000h */ + CP(0x7521),CP(0x7522),CP(0x7523),CP(0x7524),CP(0x7525),CP(0x7526),CP(0x7527),CP(0x7528), + CP(0x7529),CP(0x752A),CP(0x752B),CP(0x752C),CP(0x752D),CP(0x752E),CP(0x752F),CP(0x7530), + CP(0x7531),CP(0x7532),CP(0x7533),CP(0x7534),CP(0x7535),CP(0x7536),CP(0x7537),CP(0x7538), + CP(0x7539),CP(0x753A),CP(0x753B),CP(0x753C),CP(0x753D),CP(0x753E),CP(0x753F),CP(0x7540), + CP(0x7541),CP(0x7542),CP(0x7543),CP(0x7544),CP(0x7545),CP(0x7546),CP(0x7547),CP(0x7548), + CP(0x7549),CP(0x754A),CP(0x754B),CP(0x754C),CP(0x754D),CP(0x754E),CP(0x754F),CP(0x7550), + CP(0x7551),CP(0x7552),CP(0x7553),CP(0x7554),CP(0x7555),CP(0x7556),CP(0x7557),CP(0x7558), + CP(0x7559),CP(0x755A),CP(0x755B),CP(0x755C),CP(0x755D),CP(0x755E),CP(0x755F),CP(0x7560), + CP(0x7561),CP(0x7562),CP(0x7563),CP(0x7564),CP(0x7565),CP(0x7566),CP(0x7567),CP(0x7568), + CP(0x7569),CP(0x756A),CP(0x756B),CP(0x756C),CP(0x756D),CP(0x756E),CP(0x756F),CP(0x7570), + CP(0x7571),CP(0x7572),CP(0x7573),CP(0x7574),CP(0x7575),CP(0x7576),CP(0x7577),CP(0x7578), + CP(0x7579),CP(0x757A),CP(0x757B),CP(0x757C),CP(0x757D),CP(0x757E),CP(0x7621),CP(0x7622), + CP(0x7623),CP(0x7624),CP(0x7625),CP(0x7626),CP(0x7627),CP(0x7628),CP(0x7629),CP(0x762A), + CP(0x762B),CP(0x762C),CP(0x762D),CP(0x762E),CP(0x762F),CP(0x7630),CP(0x7631),CP(0x7632), + CP(0x7633),CP(0x7634),CP(0x7635),CP(0x7636),CP(0x7637),CP(0x7638),CP(0x7639),CP(0x763A), + CP(0x763B),CP(0x763C),CP(0x763D),CP(0x763E),CP(0x763F),CP(0x7640),CP(0x7641),CP(0x7642), + CP(0x7643),CP(0x7644),CP(0x7645),CP(0x7646),CP(0x7647),CP(0x7648),CP(0x7649),CP(0x764A), + CP(0x764B),CP(0x764C),CP(0x764D),CP(0x764E),CP(0x764F),CP(0x7650),CP(0x7651),CP(0x7652), + CP(0x7653),CP(0x7654),CP(0x7655),CP(0x7656),CP(0x7657),CP(0x7658),CP(0x7659),CP(0x765A), + CP(0x765B),CP(0x765C),CP(0x765D),CP(0x765E),CP(0x765F),CP(0x7660),CP(0x7661),CP(0x7662), + CP(0x7663),CP(0x7664),CP(0x7665),CP(0x7666),CP(0x7667),CP(0x7668),CP(0x7669),CP(0x766A), + CP(0x766B),CP(0x766C),CP(0x766D),CP(0x766E),CP(0x766F),CP(0x7670),CP(0x7671),CP(0x7672), + CP(0x7673),CP(0x7674),CP(0x7675),CP(0x7676),CP(0x7677),CP(0x7678),CP(0x7679),CP(0x767A), + CP(0x767B),CP(0x767C),CP(0x767D),CP(0x767E),CP(0x7721),CP(0x7722),CP(0x7723),CP(0x7724), + CP(0x7725),CP(0x7726),CP(0x7727),CP(0x7728),CP(0x7729),CP(0x772A),CP(0x772B),CP(0x772C), + CP(0x772D),CP(0x772E),CP(0x772F),CP(0x7730),CP(0x7731),CP(0x7732),CP(0x7733),CP(0x7734), + CP(0x7735),CP(0x7736),CP(0x7737),CP(0x7738),CP(0x7739),CP(0x773A),CP(0x773B),CP(0x773C), + CP(0x773D),CP(0x773E),CP(0x773F),CP(0x7740),CP(0x7741),CP(0x7742),CP(0x7743),CP(0x7744), + CP(0x7745),CP(0x7746),CP(0x7747),CP(0x7748),CP(0x7749),CP(0x774A),CP(0x774B),CP(0x774C), + CP(0x774D),CP(0x774E),CP(0x774F),CP(0x7750),CP(0x7751),CP(0x7752),CP(0x7753),CP(0x7754), + CP(0x7755),CP(0x7756),CP(0x7757),CP(0x7758),CP(0x7759),CP(0x775A),CP(0x775B),CP(0x775C), + CP(0x775D),CP(0x775E),CP(0x775F),CP(0x7760),CP(0x7761),CP(0x7762),CP(0x7763),CP(0x7764), + + /* E100h */ + CP(0x7765),CP(0x7766),CP(0x7767),CP(0x7768),CP(0x7769),CP(0x776A),CP(0x776B),CP(0x776C), + CP(0x776D),CP(0x776E),CP(0x776F),CP(0x7770),CP(0x7771),CP(0x7772),CP(0x7773),CP(0x7774), + CP(0x7775),CP(0x7776),CP(0x7777),CP(0x7778),CP(0x7779),CP(0x777A),CP(0x777B),CP(0x777C), + CP(0x777D),CP(0x777E),CP(0x7821),CP(0x7822),CP(0x7823),CP(0x7824),CP(0x7825),CP(0x7826), + CP(0x7827),CP(0x7828),CP(0x7829),CP(0x782A),CP(0x782B),CP(0x782C),CP(0x782D),CP(0x782E), + CP(0x782F),CP(0x7830),CP(0x7831),CP(0x7832),CP(0x7833),CP(0x7834),CP(0x7835),CP(0x7836), + CP(0x7837),CP(0x7838),CP(0x7839),CP(0x783A),CP(0x783B),CP(0x783C),CP(0x783D),CP(0x783E), + CP(0x783F),CP(0x7840),CP(0x7841),CP(0x7842),CP(0x7843),CP(0x7844),CP(0x7845),CP(0x7846), + CP(0x7847),CP(0x7848),CP(0x7849),CP(0x784A),CP(0x784B),CP(0x784C),CP(0x784D),CP(0x784E), + CP(0x784F),CP(0x7850),CP(0x7851),CP(0x7852),CP(0x7853),CP(0x7854),CP(0x7855),CP(0x7856), + CP(0x7857),CP(0x7858),CP(0x7859),CP(0x785A),CP(0x785B),CP(0x785C),CP(0x785D),CP(0x785E), + CP(0x785F),CP(0x7860),CP(0x7861),CP(0x7862),CP(0x7863),CP(0x7864),CP(0x7865),CP(0x7866), + CP(0x7867),CP(0x7868),CP(0x7869),CP(0x786A),CP(0x786B),CP(0x786C),CP(0x786D),CP(0x786E), + CP(0x786F),CP(0x7870),CP(0x7871),CP(0x7872),CP(0x7873),CP(0x7874),CP(0x7875),CP(0x7876), + CP(0x7877),CP(0x7878),CP(0x7879),CP(0x787A),CP(0x787B),CP(0x787C),CP(0x787D),CP(0x787E), + CP(0x7921),CP(0x7922),CP(0x7923),CP(0x7924),CP(0x7925),CP(0x7926),CP(0x7927),CP(0x7928), + CP(0x7929),CP(0x792A),CP(0x792B),CP(0x792C),CP(0x792D),CP(0x792E),CP(0x792F),CP(0x7930), + CP(0x7931),CP(0x7932),CP(0x7933),CP(0x7934),CP(0x7935),CP(0x7936),CP(0x7937),CP(0x7938), + CP(0x7939),CP(0x793A),CP(0x793B),CP(0x793C),CP(0x793D),CP(0x793E),CP(0x793F),CP(0x7940), + CP(0x7941),CP(0x7942),CP(0x7943),CP(0x7944),CP(0x7945),CP(0x7946),CP(0x7947),CP(0x7948), + CP(0x7949),CP(0x794A),CP(0x794B),CP(0x794C),CP(0x794D),CP(0x794E),CP(0x794F),CP(0x7950), + CP(0x7951),CP(0x7952),CP(0x7953),CP(0x7954),CP(0x7955),CP(0x7956),CP(0x7957),CP(0x7958), + CP(0x7959),CP(0x795A),CP(0x795B),CP(0x795C),CP(0x795D),CP(0x795E),CP(0x795F),CP(0x7960), + CP(0x7961),CP(0x7962),CP(0x7963),CP(0x7964),CP(0x7965),CP(0x7966),CP(0x7967),CP(0x7968), + CP(0x7969),CP(0x796A),CP(0x796B),CP(0x796C),CP(0x796D),CP(0x796E),CP(0x796F),CP(0x7970), + CP(0x7971),CP(0x7972),CP(0x7973),CP(0x7974),CP(0x7975),CP(0x7976),CP(0x7977),CP(0x7978), + CP(0x7979),CP(0x797A),CP(0x797B),CP(0x797C),CP(0x797D),CP(0x797E),CP(0x7A21),CP(0x7A22), + CP(0x7A23),CP(0x7A24),CP(0x7A25),CP(0x7A26),CP(0x7A27),CP(0x7A28),CP(0x7A29),CP(0x7A2A), + CP(0x7A2B),CP(0x7A2C),CP(0x7A2D),CP(0x7A2E),CP(0x7A2F),CP(0x7A30),CP(0x7A31),CP(0x7A32), + CP(0x7A33),CP(0x7A34),CP(0x7A35),CP(0x7A36),CP(0x7A37),CP(0x7A38),CP(0x7A39),CP(0x7A3A), + CP(0x7A3B),CP(0x7A3C),CP(0x7A3D),CP(0x7A3E),CP(0x7A3F),CP(0x7A40),CP(0x7A41),CP(0x7A42), + CP(0x7A43),CP(0x7A44),CP(0x7A45),CP(0x7A46),CP(0x7A47),CP(0x7A48),CP(0x7A49),CP(0x7A4A), + + /* E200h */ + CP(0x7A4B),CP(0x7A4C),CP(0x7A4D),CP(0x7A4E),CP(0x7A4F),CP(0x7A50),CP(0x7A51),CP(0x7A52), + CP(0x7A53),CP(0x7A54),CP(0x7A55),CP(0x7A56),CP(0x7A57),CP(0x7A58),CP(0x7A59),CP(0x7A5A), + CP(0x7A5B),CP(0x7A5C),CP(0x7A5D),CP(0x7A5E),CP(0x7A5F),CP(0x7A60),CP(0x7A61),CP(0x7A62), + CP(0x7A63),CP(0x7A64),CP(0x7A65),CP(0x7A66),CP(0x7A67),CP(0x7A68),CP(0x7A69),CP(0x7A6A), + CP(0x7A6B),CP(0x7A6C),CP(0x7A6D),CP(0x7A6E),CP(0x7A6F),CP(0x7A70),CP(0x7A71),CP(0x7A72), + CP(0x7A73),CP(0x7A74),CP(0x7A75),CP(0x7A76),CP(0x7A77),CP(0x7A78),CP(0x7A79),CP(0x7A7A), + CP(0x7A7B),CP(0x7A7C),CP(0x7A7D),CP(0x7A7E),CP(0x7B21),CP(0x7B22),CP(0x7B23),CP(0x7B24), + CP(0x7B25),CP(0x7B26),CP(0x7B27),CP(0x7B28),CP(0x7B29),CP(0x7B2A),CP(0x7B2B),CP(0x7B2C), + CP(0x7B2D),CP(0x7B2E),CP(0x7B2F),CP(0x7B30),CP(0x7B31),CP(0x7B32),CP(0x7B33),CP(0x7B34), + CP(0x7B35),CP(0x7B36),CP(0x7B37),CP(0x7B38),CP(0x7B39),CP(0x7B3A),CP(0x7B3B),CP(0x7B3C), + CP(0x7B3D),CP(0x7B3E),CP(0x7B3F),CP(0x7B40),CP(0x7B41),CP(0x7B42),CP(0x7B43),CP(0x7B44), + CP(0x7B45),CP(0x7B46),CP(0x7B47),CP(0x7B48),CP(0x7B49),CP(0x7B4A),CP(0x7B4B),CP(0x7B4C), + CP(0x7B4D),CP(0x7B4E),CP(0x7B4F),CP(0x7B50),CP(0x7B51),CP(0x7B52),CP(0x7B53),CP(0x7B54), + CP(0x7B55),CP(0x7B56),CP(0x7B57),CP(0x7B58),CP(0x7B59),CP(0x7B5A),CP(0x7B5B),CP(0x7B5C), + CP(0x7B5D),CP(0x7B5E),CP(0x7B5F),CP(0x7B60),CP(0x7B61),CP(0x7B62),CP(0x7B63),CP(0x7B64), + CP(0x7B65),CP(0x7B66),CP(0x7B67),CP(0x7B68),CP(0x7B69),CP(0x7B6A),CP(0x7B6B),CP(0x7B6C), + CP(0x7B6D),CP(0x7B6E),CP(0x7B6F),CP(0x7B70),CP(0x7B71),CP(0x7B72),CP(0x7B73),CP(0x7B74), + CP(0x7B75),CP(0x7B76),CP(0x7B77),CP(0x7B78),CP(0x7B79),CP(0x7B7A),CP(0x7B7B),CP(0x7B7C), + CP(0x7B7D),CP(0x7B7E),CP(0x7C21),CP(0x7C22),CP(0x7C23),CP(0x7C24),CP(0x7C25),CP(0x7C26), + CP(0x7C27),CP(0x7C28),CP(0x7C29),CP(0x7C2A),CP(0x7C2B),CP(0x7C2C),CP(0x7C2D),CP(0x7C2E), + CP(0x7C2F),CP(0x7C30),CP(0x7C31),CP(0x7C32),CP(0x7C33),CP(0x7C34),CP(0x7C35),CP(0x7C36), + CP(0x7C37),CP(0x7C38),CP(0x7C39),CP(0x7C3A),CP(0x7C3B),CP(0x7C3C),CP(0x7C3D),CP(0x7C3E), + CP(0x7C3F),CP(0x7C40),CP(0x7C41),CP(0x7C42),CP(0x7C43),CP(0x7C44),CP(0x7C45),CP(0x7C46), + CP(0x7C47),CP(0x7C48),CP(0x7C49),CP(0x7C4A),CP(0x7C4B),CP(0x7C4C),CP(0x7C4D),CP(0x7C4E), + CP(0x7C4F),CP(0x7C50),CP(0x7C51),CP(0x7C52),CP(0x7C53),CP(0x7C54),CP(0x7C55),CP(0x7C56), + CP(0x7C57),CP(0x7C58),CP(0x7C59),CP(0x7C5A),CP(0x7C5B),CP(0x7C5C),CP(0x7C5D),CP(0x7C5E), + CP(0x7C5F),CP(0x7C60),CP(0x7C61),CP(0x7C62),CP(0x7C63),CP(0x7C64),CP(0x7C65),CP(0x7C66), + CP(0x7C67),CP(0x7C68),CP(0x7C69),CP(0x7C6A),CP(0x7C6B),CP(0x7C6C),CP(0x7C6D),CP(0x7C6E), + CP(0x7C6F),CP(0x7C70),CP(0x7C71),CP(0x7C72),CP(0x7C73),CP(0x7C74),CP(0x7C75),CP(0x7C76), + CP(0x7C77),CP(0x7C78),CP(0x7C79),CP(0x7C7A),CP(0x7C7B),CP(0x7C7C),CP(0x7C7D),CP(0x7C7E), + CP(0x7D21),CP(0x7D22),CP(0x7D23),CP(0x7D24),CP(0x7D25),CP(0x7D26),CP(0x7D27),CP(0x7D28), + CP(0x7D29),CP(0x7D2A),CP(0x7D2B),CP(0x7D2C),CP(0x7D2D),CP(0x7D2E),CP(0x7D2F),CP(0x7D30), + + /* E300h */ + CP(0x7D31),CP(0x7D32),CP(0x7D33),CP(0x7D34),CP(0x7D35),CP(0x7D36),CP(0x7D37),CP(0x7D38), + CP(0x7D39),CP(0x7D3A),CP(0x7D3B),CP(0x7D3C),CP(0x7D3D),CP(0x7D3E),CP(0x7D3F),CP(0x7D40), + CP(0x7D41),CP(0x7D42),CP(0x7D43),CP(0x7D44),CP(0x7D45),CP(0x7D46),CP(0x7D47),CP(0x7D48), + CP(0x7D49),CP(0x7D4A),CP(0x7D4B),CP(0x7D4C),CP(0x7D4D),CP(0x7D4E),CP(0x7D4F),CP(0x7D50), + CP(0x7D51),CP(0x7D52),CP(0x7D53),CP(0x7D54),CP(0x7D55),CP(0x7D56),CP(0x7D57),CP(0x7D58), + CP(0x7D59),CP(0x7D5A),CP(0x7D5B),CP(0x7D5C),CP(0x7D5D),CP(0x7D5E),CP(0x7D5F),CP(0x7D60), + CP(0x7D61),CP(0x7D62),CP(0x7D63),CP(0x7D64),CP(0x7D65),CP(0x7D66),CP(0x7D67),CP(0x7D68), + CP(0x7D69),CP(0x7D6A),CP(0x7D6B),CP(0x7D6C),CP(0x7D6D),CP(0x7D6E),CP(0x7D6F),CP(0x7D70), + CP(0x7D71),CP(0x7D72),CP(0x7D73),CP(0x7D74),CP(0x7D75),CP(0x7D76),CP(0x7D77),CP(0x7D78), + CP(0x7D79),CP(0x7D7A),CP(0x7D7B),CP(0x7D7C),CP(0x7D7D),CP(0x7D7E),CP(0x7E21),CP(0x7E22), + CP(0x7E23),CP(0x7E24),CP(0x7E25),CP(0x7E26),CP(0x7E27),CP(0x7E28),CP(0x7E29),CP(0x7E2A), + CP(0x7E2B),CP(0x7E2C),CP(0x7E2D),CP(0x7E2E),CP(0x7E2F),CP(0x7E30),CP(0x7E31),CP(0x7E32), + CP(0x7E33),CP(0x7E34),CP(0x7E35),CP(0x7E36),CP(0x7E37),CP(0x7E38),CP(0x7E39),CP(0x7E3A), + CP(0x7E3B),CP(0x7E3C),CP(0x7E3D),CP(0x7E3E),CP(0x7E3F),CP(0x7E40),CP(0x7E41),CP(0x7E42), + CP(0x7E43),CP(0x7E44),CP(0x7E45),CP(0x7E46),CP(0x7E47),CP(0x7E48),CP(0x7E49),CP(0x7E4A), + CP(0x7E4B),CP(0x7E4C),CP(0x7E4D),CP(0x7E4E),CP(0x7E4F),CP(0x7E50),CP(0x7E51),CP(0x7E52), + CP(0x7E53),CP(0x7E54),CP(0x7E55),CP(0x7E56),CP(0x7E57),CP(0x7E58),CP(0x7E59),CP(0x7E5A), + CP(0x7E5B),CP(0x7E5C),CP(0x7E5D),CP(0x7E5E),CP(0x7E5F),CP(0x7E60),CP(0x7E61),CP(0x7E62), + CP(0x7E63),CP(0x7E64),CP(0x7E65),CP(0x7E66),CP(0x7E67),CP(0x7E68),CP(0x7E69),CP(0x7E6A), + CP(0x7E6B),CP(0x7E6C),CP(0x7E6D),CP(0x7E6E),CP(0x7E6F),CP(0x7E70),CP(0x7E71),CP(0x7E72), + CP(0x7E73),CP(0x7E74),CP(0x7E75),CP(0x7E76),CP(0x7E77),CP(0x7E78),CP(0x7E79),CP(0x7E7A), + CP(0x7E7B),CP(0x7E7C),CP(0x7E7D),CP(0x7E7E),J3(0x7521),J3(0x7522),J3(0x7523),J3(0x7524), + J3(0x7525),J3(0x7526),J3(0x7527),J3(0x7528),J3(0x7529),J3(0x752A),J3(0x752B),J3(0x752C), + J3(0x752D),J3(0x752E),J3(0x752F),J3(0x7530),J3(0x7531),J3(0x7532),J3(0x7533),J3(0x7534), + J3(0x7535),J3(0x7536),J3(0x7537),J3(0x7538),J3(0x7539),J3(0x753A),J3(0x753B),J3(0x753C), + J3(0x753D),J3(0x753E),J3(0x753F),J3(0x7540),J3(0x7541),J3(0x7542),J3(0x7543),J3(0x7544), + J3(0x7545),J3(0x7546),J3(0x7547),J3(0x7548),J3(0x7549),J3(0x754A),J3(0x754B),J3(0x754C), + J3(0x754D),J3(0x754E),J3(0x754F),J3(0x7550),J3(0x7551),J3(0x7552),J3(0x7553),J3(0x7554), + J3(0x7555),J3(0x7556),J3(0x7557),J3(0x7558),J3(0x7559),J3(0x755A),J3(0x755B),J3(0x755C), + J3(0x755D),J3(0x755E),J3(0x755F),J3(0x7560),J3(0x7561),J3(0x7562),J3(0x7563),J3(0x7564), + J3(0x7565),J3(0x7566),J3(0x7567),J3(0x7568),J3(0x7569),J3(0x756A),J3(0x756B),J3(0x756C), + J3(0x756D),J3(0x756E),J3(0x756F),J3(0x7570),J3(0x7571),J3(0x7572),J3(0x7573),J3(0x7574), + + /* E400h */ + J3(0x7575),J3(0x7576),J3(0x7577),J3(0x7578),J3(0x7579),J3(0x757A),J3(0x757B),J3(0x757C), + J3(0x757D),J3(0x757E),J3(0x7621),J3(0x7622),J3(0x7623),J3(0x7624),J3(0x7625),J3(0x7626), + J3(0x7627),J3(0x7628),J3(0x7629),J3(0x762A),J3(0x762B),J3(0x762C),J3(0x762D),J3(0x762E), + J3(0x762F),J3(0x7630),J3(0x7631),J3(0x7632),J3(0x7633),J3(0x7634),J3(0x7635),J3(0x7636), + J3(0x7637),J3(0x7638),J3(0x7639),J3(0x763A),J3(0x763B),J3(0x763C),J3(0x763D),J3(0x763E), + J3(0x763F),J3(0x7640),J3(0x7641),J3(0x7642),J3(0x7643),J3(0x7644),J3(0x7645),J3(0x7646), + J3(0x7647),J3(0x7648),J3(0x7649),J3(0x764A),J3(0x764B),J3(0x764C),J3(0x764D),J3(0x764E), + J3(0x764F),J3(0x7650),J3(0x7651),J3(0x7652),J3(0x7653),J3(0x7654),J3(0x7655),J3(0x7656), + J3(0x7657),J3(0x7658),J3(0x7659),J3(0x765A),J3(0x765B),J3(0x765C),J3(0x765D),J3(0x765E), + J3(0x765F),J3(0x7660),J3(0x7661),J3(0x7662),J3(0x7663),J3(0x7664),J3(0x7665),J3(0x7666), + J3(0x7667),J3(0x7668),J3(0x7669),J3(0x766A),J3(0x766B),J3(0x766C),J3(0x766D),J3(0x766E), + J3(0x766F),J3(0x7670),J3(0x7671),J3(0x7672),J3(0x7673),J3(0x7674),J3(0x7675),J3(0x7676), + J3(0x7677),J3(0x7678),J3(0x7679),J3(0x767A),J3(0x767B),J3(0x767C),J3(0x767D),J3(0x767E), + J3(0x7721),J3(0x7722),J3(0x7723),J3(0x7724),J3(0x7725),J3(0x7726),J3(0x7727),J3(0x7728), + J3(0x7729),J3(0x772A),J3(0x772B),J3(0x772C),J3(0x772D),J3(0x772E),J3(0x772F),J3(0x7730), + J3(0x7731),J3(0x7732),J3(0x7733),J3(0x7734),J3(0x7735),J3(0x7736),J3(0x7737),J3(0x7738), + J3(0x7739),J3(0x773A),J3(0x773B),J3(0x773C),J3(0x773D),J3(0x773E),J3(0x773F),J3(0x7740), + J3(0x7741),J3(0x7742),J3(0x7743),J3(0x7744),J3(0x7745),J3(0x7746),J3(0x7747),J3(0x7748), + J3(0x7749),J3(0x774A),J3(0x774B),J3(0x774C),J3(0x774D),J3(0x774E),J3(0x774F),J3(0x7750), + J3(0x7751),J3(0x7752),J3(0x7753),J3(0x7754),J3(0x7755),J3(0x7756),J3(0x7757),J3(0x7758), + J3(0x7759),J3(0x775A),J3(0x775B),J3(0x775C),J3(0x775D),J3(0x775E),J3(0x775F),J3(0x7760), + J3(0x7761),J3(0x7762),J3(0x7763),J3(0x7764),J3(0x7765),J3(0x7766),J3(0x7767),J3(0x7768), + J3(0x7769),J3(0x776A),J3(0x776B),J3(0x776C),J3(0x776D),J3(0x776E),J3(0x776F),J3(0x7770), + J3(0x7771),J3(0x7772),J3(0x7773),J3(0x7774),J3(0x7775),J3(0x7776),J3(0x7777),J3(0x7778), + J3(0x7779),J3(0x777A),J3(0x777B),J3(0x777C),J3(0x777D),J3(0x777E),J3(0x7821),J3(0x7822), + J3(0x7823),J3(0x7824),J3(0x7825),J3(0x7826),J3(0x7827),J3(0x7828),J3(0x7829),J3(0x782A), + J3(0x782B),J3(0x782C),J3(0x782D),J3(0x782E),J3(0x782F),J3(0x7830),J3(0x7831),J3(0x7832), + J3(0x7833),J3(0x7834),J3(0x7835),J3(0x7836),J3(0x7837),J3(0x7838),J3(0x7839),J3(0x783A), + J3(0x783B),J3(0x783C),J3(0x783D),J3(0x783E),J3(0x783F),J3(0x7840),J3(0x7841),J3(0x7842), + J3(0x7843),J3(0x7844),J3(0x7845),J3(0x7846),J3(0x7847),J3(0x7848),J3(0x7849),J3(0x784A), + J3(0x784B),J3(0x784C),J3(0x784D),J3(0x784E),J3(0x784F),J3(0x7850),J3(0x7851),J3(0x7852), + J3(0x7853),J3(0x7854),J3(0x7855),J3(0x7856),J3(0x7857),J3(0x7858),J3(0x7859),J3(0x785A), + + /* E500h */ + J3(0x785B),J3(0x785C),J3(0x785D),J3(0x785E),J3(0x785F),J3(0x7860),J3(0x7861),J3(0x7862), + J3(0x7863),J3(0x7864),J3(0x7865),J3(0x7866),J3(0x7867),J3(0x7868),J3(0x7869),J3(0x786A), + J3(0x786B),J3(0x786C),J3(0x786D),J3(0x786E),J3(0x786F),J3(0x7870),J3(0x7871),J3(0x7872), + J3(0x7873),J3(0x7874),J3(0x7875),J3(0x7876),J3(0x7877),J3(0x7878),J3(0x7879),J3(0x787A), + J3(0x787B),J3(0x787C),J3(0x787D),J3(0x787E),J3(0x7921),J3(0x7922),J3(0x7923),J3(0x7924), + J3(0x7925),J3(0x7926),J3(0x7927),J3(0x7928),J3(0x7929),J3(0x792A),J3(0x792B),J3(0x792C), + J3(0x792D),J3(0x792E),J3(0x792F),J3(0x7930),J3(0x7931),J3(0x7932),J3(0x7933),J3(0x7934), + J3(0x7935),J3(0x7936),J3(0x7937),J3(0x7938),J3(0x7939),J3(0x793A),J3(0x793B),J3(0x793C), + J3(0x793D),J3(0x793E),J3(0x793F),J3(0x7940),J3(0x7941),J3(0x7942),J3(0x7943),J3(0x7944), + J3(0x7945),J3(0x7946),J3(0x7947),J3(0x7948),J3(0x7949),J3(0x794A),J3(0x794B),J3(0x794C), + J3(0x794D),J3(0x794E),J3(0x794F),J3(0x7950),J3(0x7951),J3(0x7952),J3(0x7953),J3(0x7954), + J3(0x7955),J3(0x7956),J3(0x7957),J3(0x7958),J3(0x7959),J3(0x795A),J3(0x795B),J3(0x795C), + J3(0x795D),J3(0x795E),J3(0x795F),J3(0x7960),J3(0x7961),J3(0x7962),J3(0x7963),J3(0x7964), + J3(0x7965),J3(0x7966),J3(0x7967),J3(0x7968),J3(0x7969),J3(0x796A),J3(0x796B),J3(0x796C), + J3(0x796D),J3(0x796E),J3(0x796F),J3(0x7970),J3(0x7971),J3(0x7972),J3(0x7973),J3(0x7974), + J3(0x7975),J3(0x7976),J3(0x7977),J3(0x7978),J3(0x7979),J3(0x797A),J3(0x797B),J3(0x797C), + J3(0x797D),J3(0x797E),J3(0x7A21),J3(0x7A22),J3(0x7A23),J3(0x7A24),J3(0x7A25),J3(0x7A26), + J3(0x7A27),J3(0x7A28),J3(0x7A29),J3(0x7A2A),J3(0x7A2B),J3(0x7A2C),J3(0x7A2D),J3(0x7A2E), + J3(0x7A2F),J3(0x7A30),J3(0x7A31),J3(0x7A32),J3(0x7A33),J3(0x7A34),J3(0x7A35),J3(0x7A36), + J3(0x7A37),J3(0x7A38),J3(0x7A39),J3(0x7A3A),J3(0x7A3B),J3(0x7A3C),J3(0x7A3D),J3(0x7A3E), + J3(0x7A3F),J3(0x7A40),J3(0x7A41),J3(0x7A42),J3(0x7A43),J3(0x7A44),J3(0x7A45),J3(0x7A46), + J3(0x7A47),J3(0x7A48),J3(0x7A49),J3(0x7A4A),J3(0x7A4B),J3(0x7A4C),J3(0x7A4D),J3(0x7A4E), + J3(0x7A4F),J3(0x7A50),J3(0x7A51),J3(0x7A52),J3(0x7A53),J3(0x7A54),J3(0x7A55),J3(0x7A56), + J3(0x7A57),J3(0x7A58),J3(0x7A59),J3(0x7A5A),J3(0x7A5B),J3(0x7A5C),J3(0x7A5D),J3(0x7A5E), + J3(0x7A5F),J3(0x7A60),J3(0x7A61),J3(0x7A62),J3(0x7A63),J3(0x7A64),J3(0x7A65),J3(0x7A66), + J3(0x7A67),J3(0x7A68),J3(0x7A69),J3(0x7A6A),J3(0x7A6B),J3(0x7A6C),J3(0x7A6D),J3(0x7A6E), + J3(0x7A6F),J3(0x7A70),J3(0x7A71),J3(0x7A72),J3(0x7A73),J3(0x7A74),J3(0x7A75),J3(0x7A76), + J3(0x7A77),J3(0x7A78),J3(0x7A79),J3(0x7A7A),J3(0x7A7B),J3(0x7A7C),J3(0x7A7D),J3(0x7A7E), + J3(0x7B21),J3(0x7B22),J3(0x7B23),J3(0x7B24),J3(0x7B25),J3(0x7B26),J3(0x7B27),J3(0x7B28), + J3(0x7B29),J3(0x7B2A),J3(0x7B2B),J3(0x7B2C),J3(0x7B2D),J3(0x7B2E),J3(0x7B2F),J3(0x7B30), + J3(0x7B31),J3(0x7B32),J3(0x7B33),J3(0x7B34),J3(0x7B35),J3(0x7B36),J3(0x7B37),J3(0x7B38), + J3(0x7B39),J3(0x7B3A),J3(0x7B3B),J3(0x7B3C),J3(0x7B3D),J3(0x7B3E),J3(0x7B3F),J3(0x7B40), + + /* E600h */ + J3(0x7B41),J3(0x7B42),J3(0x7B43),J3(0x7B44),J3(0x7B45),J3(0x7B46),J3(0x7B47),J3(0x7B48), + J3(0x7B49),J3(0x7B4A),J3(0x7B4B),J3(0x7B4C),J3(0x7B4D),J3(0x7B4E),J3(0x7B4F),J3(0x7B50), + J3(0x7B51),J3(0x7B52),J3(0x7B53),J3(0x7B54),J3(0x7B55),J3(0x7B56),J3(0x7B57),J3(0x7B58), + J3(0x7B59),J3(0x7B5A),J3(0x7B5B),J3(0x7B5C),J3(0x7B5D),J3(0x7B5E),J3(0x7B5F),J3(0x7B60), + J3(0x7B61),J3(0x7B62),J3(0x7B63),J3(0x7B64),J3(0x7B65),J3(0x7B66),J3(0x7B67),J3(0x7B68), + J3(0x7B69),J3(0x7B6A),J3(0x7B6B),J3(0x7B6C),J3(0x7B6D),J3(0x7B6E),J3(0x7B6F),J3(0x7B70), + J3(0x7B71),J3(0x7B72),J3(0x7B73),J3(0x7B74),J3(0x7B75),J3(0x7B76),J3(0x7B77),J3(0x7B78), + J3(0x7B79),J3(0x7B7A),J3(0x7B7B),J3(0x7B7C),J3(0x7B7D),J3(0x7B7E),J3(0x7C21),J3(0x7C22), + J3(0x7C23),J3(0x7C24),J3(0x7C25),J3(0x7C26),J3(0x7C27),J3(0x7C28),J3(0x7C29),J3(0x7C2A), + J3(0x7C2B),J3(0x7C2C),J3(0x7C2D),J3(0x7C2E),J3(0x7C2F),J3(0x7C30),J3(0x7C31),J3(0x7C32), + J3(0x7C33),J3(0x7C34),J3(0x7C35),J3(0x7C36),J3(0x7C37),J3(0x7C38),J3(0x7C39),J3(0x7C3A), + J3(0x7C3B),J3(0x7C3C),J3(0x7C3D),J3(0x7C3E),J3(0x7C3F),J3(0x7C40),J3(0x7C41),J3(0x7C42), + J3(0x7C43),J3(0x7C44),J3(0x7C45),J3(0x7C46),J3(0x7C47),J3(0x7C48),J3(0x7C49),J3(0x7C4A), + J3(0x7C4B),J3(0x7C4C),J3(0x7C4D),J3(0x7C4E),J3(0x7C4F),J3(0x7C50),J3(0x7C51),J3(0x7C52), + J3(0x7C53),J3(0x7C54),J3(0x7C55),J3(0x7C56),J3(0x7C57),J3(0x7C58),J3(0x7C59),J3(0x7C5A), + J3(0x7C5B),J3(0x7C5C),J3(0x7C5D),J3(0x7C5E),J3(0x7C5F),J3(0x7C60),J3(0x7C61),J3(0x7C62), + J3(0x7C63),J3(0x7C64),J3(0x7C65),J3(0x7C66),J3(0x7C67),J3(0x7C68),J3(0x7C69),J3(0x7C6A), + J3(0x7C6B),J3(0x7C6C),J3(0x7C6D),J3(0x7C6E),J3(0x7C6F),J3(0x7C70),J3(0x7C71),J3(0x7C72), + J3(0x7C73),J3(0x7C74),J3(0x7C75),J3(0x7C76),J3(0x7C77),J3(0x7C78),J3(0x7C79),J3(0x7C7A), + J3(0x7C7B),J3(0x7C7C),J3(0x7C7D),J3(0x7C7E),J3(0x7D21),J3(0x7D22),J3(0x7D23),J3(0x7D24), + J3(0x7D25),J3(0x7D26),J3(0x7D27),J3(0x7D28),J3(0x7D29),J3(0x7D2A),J3(0x7D2B),J3(0x7D2C), + J3(0x7D2D),J3(0x7D2E),J3(0x7D2F),J3(0x7D30),J3(0x7D31),J3(0x7D32),J3(0x7D33),J3(0x7D34), + J3(0x7D35),J3(0x7D36),J3(0x7D37),J3(0x7D38),J3(0x7D39),J3(0x7D3A),J3(0x7D3B),J3(0x7D3C), + J3(0x7D3D),J3(0x7D3E),J3(0x7D3F),J3(0x7D40),J3(0x7D41),J3(0x7D42),J3(0x7D43),J3(0x7D44), + J3(0x7D45),J3(0x7D46),J3(0x7D47),J3(0x7D48),J3(0x7D49),J3(0x7D4A),J3(0x7D4B),J3(0x7D4C), + J3(0x7D4D),J3(0x7D4E),J3(0x7D4F),J3(0x7D50),J3(0x7D51),J3(0x7D52),J3(0x7D53),J3(0x7D54), + J3(0x7D55),J3(0x7D56),J3(0x7D57),J3(0x7D58),J3(0x7D59),J3(0x7D5A),J3(0x7D5B),J3(0x7D5C), + J3(0x7D5D),J3(0x7D5E),J3(0x7D5F),J3(0x7D60),J3(0x7D61),J3(0x7D62),J3(0x7D63),J3(0x7D64), + J3(0x7D65),J3(0x7D66),J3(0x7D67),J3(0x7D68),J3(0x7D69),J3(0x7D6A),J3(0x7D6B),J3(0x7D6C), + J3(0x7D6D),J3(0x7D6E),J3(0x7D6F),J3(0x7D70),J3(0x7D71),J3(0x7D72),J3(0x7D73),J3(0x7D74), + J3(0x7D75),J3(0x7D76),J3(0x7D77),J3(0x7D78),J3(0x7D79),J3(0x7D7A),J3(0x7D7B),J3(0x7D7C), + J3(0x7D7D),J3(0x7D7E),J3(0x7E21),J3(0x7E22),J3(0x7E23),J3(0x7E24),J3(0x7E25),J3(0x7E26), + + /* E700h */ + J3(0x7E27),J3(0x7E28),J3(0x7E29),J3(0x7E2A),J3(0x7E2B),J3(0x7E2C),J3(0x7E2D),J3(0x7E2E), + J3(0x7E2F),J3(0x7E30),J3(0x7E31),J3(0x7E32),J3(0x7E33),J3(0x7E34),J3(0x7E35),J3(0x7E36), + J3(0x7E37),J3(0x7E38),J3(0x7E39),J3(0x7E3A),J3(0x7E3B),J3(0x7E3C),J3(0x7E3D),J3(0x7E3E), + J3(0x7E3F),J3(0x7E40),J3(0x7E41),J3(0x7E42),J3(0x7E43),J3(0x7E44),J3(0x7E45),J3(0x7E46), + J3(0x7E47),J3(0x7E48),J3(0x7E49),J3(0x7E4A),J3(0x7E4B),J3(0x7E4C),J3(0x7E4D),J3(0x7E4E), + J3(0x7E4F),J3(0x7E50),J3(0x7E51),J3(0x7E52),J3(0x7E53),J3(0x7E54),J3(0x7E55),J3(0x7E56), + J3(0x7E57),J3(0x7E58),J3(0x7E59),J3(0x7E5A),J3(0x7E5B),J3(0x7E5C),J3(0x7E5D),J3(0x7E5E), + J3(0x7E5F),J3(0x7E60),J3(0x7E61),J3(0x7E62),J3(0x7E63),J3(0x7E64),J3(0x7E65),J3(0x7E66), + J3(0x7E67),J3(0x7E68),J3(0x7E69),J3(0x7E6A),J3(0x7E6B),J3(0x7E6C),J3(0x7E6D),J3(0x7E6E), + J3(0x7E6F),J3(0x7E70),J3(0x7E71),J3(0x7E72),J3(0x7E73),J3(0x7E74),J3(0x7E75),J3(0x7E76), + J3(0x7E77),J3(0x7E78),J3(0x7E79),J3(0x7E7A),J3(0x7E7B),J3(0x7E7C),J3(0x7E7D),J3(0x7E7E) +}; + + +static const int table_ucs_cp932_user_sjis[] = { + /* E000h */ + CP(0x7F21),CP(0x7F22),CP(0x7F23),CP(0x7F24),CP(0x7F25),CP(0x7F26),CP(0x7F27),CP(0x7F28), + CP(0x7F29),CP(0x7F2A),CP(0x7F2B),CP(0x7F2C),CP(0x7F2D),CP(0x7F2E),CP(0x7F2F),CP(0x7F30), + CP(0x7F31),CP(0x7F32),CP(0x7F33),CP(0x7F34),CP(0x7F35),CP(0x7F36),CP(0x7F37),CP(0x7F38), + CP(0x7F39),CP(0x7F3A),CP(0x7F3B),CP(0x7F3C),CP(0x7F3D),CP(0x7F3E),CP(0x7F3F),CP(0x7F40), + CP(0x7F41),CP(0x7F42),CP(0x7F43),CP(0x7F44),CP(0x7F45),CP(0x7F46),CP(0x7F47),CP(0x7F48), + CP(0x7F49),CP(0x7F4A),CP(0x7F4B),CP(0x7F4C),CP(0x7F4D),CP(0x7F4E),CP(0x7F4F),CP(0x7F50), + CP(0x7F51),CP(0x7F52),CP(0x7F53),CP(0x7F54),CP(0x7F55),CP(0x7F56),CP(0x7F57),CP(0x7F58), + CP(0x7F59),CP(0x7F5A),CP(0x7F5B),CP(0x7F5C),CP(0x7F5D),CP(0x7F5E),CP(0x7F5F),CP(0x7F60), + CP(0x7F61),CP(0x7F62),CP(0x7F63),CP(0x7F64),CP(0x7F65),CP(0x7F66),CP(0x7F67),CP(0x7F68), + CP(0x7F69),CP(0x7F6A),CP(0x7F6B),CP(0x7F6C),CP(0x7F6D),CP(0x7F6E),CP(0x7F6F),CP(0x7F70), + CP(0x7F71),CP(0x7F72),CP(0x7F73),CP(0x7F74),CP(0x7F75),CP(0x7F76),CP(0x7F77),CP(0x7F78), + CP(0x7F79),CP(0x7F7A),CP(0x7F7B),CP(0x7F7C),CP(0x7F7D),CP(0x7F7E),CP(0x8021),CP(0x8022), + CP(0x8023),CP(0x8024),CP(0x8025),CP(0x8026),CP(0x8027),CP(0x8028),CP(0x8029),CP(0x802A), + CP(0x802B),CP(0x802C),CP(0x802D),CP(0x802E),CP(0x802F),CP(0x8030),CP(0x8031),CP(0x8032), + CP(0x8033),CP(0x8034),CP(0x8035),CP(0x8036),CP(0x8037),CP(0x8038),CP(0x8039),CP(0x803A), + CP(0x803B),CP(0x803C),CP(0x803D),CP(0x803E),CP(0x803F),CP(0x8040),CP(0x8041),CP(0x8042), + CP(0x8043),CP(0x8044),CP(0x8045),CP(0x8046),CP(0x8047),CP(0x8048),CP(0x8049),CP(0x804A), + CP(0x804B),CP(0x804C),CP(0x804D),CP(0x804E),CP(0x804F),CP(0x8050),CP(0x8051),CP(0x8052), + CP(0x8053),CP(0x8054),CP(0x8055),CP(0x8056),CP(0x8057),CP(0x8058),CP(0x8059),CP(0x805A), + CP(0x805B),CP(0x805C),CP(0x805D),CP(0x805E),CP(0x805F),CP(0x8060),CP(0x8061),CP(0x8062), + CP(0x8063),CP(0x8064),CP(0x8065),CP(0x8066),CP(0x8067),CP(0x8068),CP(0x8069),CP(0x806A), + CP(0x806B),CP(0x806C),CP(0x806D),CP(0x806E),CP(0x806F),CP(0x8070),CP(0x8071),CP(0x8072), + CP(0x8073),CP(0x8074),CP(0x8075),CP(0x8076),CP(0x8077),CP(0x8078),CP(0x8079),CP(0x807A), + CP(0x807B),CP(0x807C),CP(0x807D),CP(0x807E),CP(0x8121),CP(0x8122),CP(0x8123),CP(0x8124), + CP(0x8125),CP(0x8126),CP(0x8127),CP(0x8128),CP(0x8129),CP(0x812A),CP(0x812B),CP(0x812C), + CP(0x812D),CP(0x812E),CP(0x812F),CP(0x8130),CP(0x8131),CP(0x8132),CP(0x8133),CP(0x8134), + CP(0x8135),CP(0x8136),CP(0x8137),CP(0x8138),CP(0x8139),CP(0x813A),CP(0x813B),CP(0x813C), + CP(0x813D),CP(0x813E),CP(0x813F),CP(0x8140),CP(0x8141),CP(0x8142),CP(0x8143),CP(0x8144), + CP(0x8145),CP(0x8146),CP(0x8147),CP(0x8148),CP(0x8149),CP(0x814A),CP(0x814B),CP(0x814C), + CP(0x814D),CP(0x814E),CP(0x814F),CP(0x8150),CP(0x8151),CP(0x8152),CP(0x8153),CP(0x8154), + CP(0x8155),CP(0x8156),CP(0x8157),CP(0x8158),CP(0x8159),CP(0x815A),CP(0x815B),CP(0x815C), + CP(0x815D),CP(0x815E),CP(0x815F),CP(0x8160),CP(0x8161),CP(0x8162),CP(0x8163),CP(0x8164), + + /* E100h */ + CP(0x8165),CP(0x8166),CP(0x8167),CP(0x8168),CP(0x8169),CP(0x816A),CP(0x816B),CP(0x816C), + CP(0x816D),CP(0x816E),CP(0x816F),CP(0x8170),CP(0x8171),CP(0x8172),CP(0x8173),CP(0x8174), + CP(0x8175),CP(0x8176),CP(0x8177),CP(0x8178),CP(0x8179),CP(0x817A),CP(0x817B),CP(0x817C), + CP(0x817D),CP(0x817E),CP(0x8221),CP(0x8222),CP(0x8223),CP(0x8224),CP(0x8225),CP(0x8226), + CP(0x8227),CP(0x8228),CP(0x8229),CP(0x822A),CP(0x822B),CP(0x822C),CP(0x822D),CP(0x822E), + CP(0x822F),CP(0x8230),CP(0x8231),CP(0x8232),CP(0x8233),CP(0x8234),CP(0x8235),CP(0x8236), + CP(0x8237),CP(0x8238),CP(0x8239),CP(0x823A),CP(0x823B),CP(0x823C),CP(0x823D),CP(0x823E), + CP(0x823F),CP(0x8240),CP(0x8241),CP(0x8242),CP(0x8243),CP(0x8244),CP(0x8245),CP(0x8246), + CP(0x8247),CP(0x8248),CP(0x8249),CP(0x824A),CP(0x824B),CP(0x824C),CP(0x824D),CP(0x824E), + CP(0x824F),CP(0x8250),CP(0x8251),CP(0x8252),CP(0x8253),CP(0x8254),CP(0x8255),CP(0x8256), + CP(0x8257),CP(0x8258),CP(0x8259),CP(0x825A),CP(0x825B),CP(0x825C),CP(0x825D),CP(0x825E), + CP(0x825F),CP(0x8260),CP(0x8261),CP(0x8262),CP(0x8263),CP(0x8264),CP(0x8265),CP(0x8266), + CP(0x8267),CP(0x8268),CP(0x8269),CP(0x826A),CP(0x826B),CP(0x826C),CP(0x826D),CP(0x826E), + CP(0x826F),CP(0x8270),CP(0x8271),CP(0x8272),CP(0x8273),CP(0x8274),CP(0x8275),CP(0x8276), + CP(0x8277),CP(0x8278),CP(0x8279),CP(0x827A),CP(0x827B),CP(0x827C),CP(0x827D),CP(0x827E), + CP(0x8321),CP(0x8322),CP(0x8323),CP(0x8324),CP(0x8325),CP(0x8326),CP(0x8327),CP(0x8328), + CP(0x8329),CP(0x832A),CP(0x832B),CP(0x832C),CP(0x832D),CP(0x832E),CP(0x832F),CP(0x8330), + CP(0x8331),CP(0x8332),CP(0x8333),CP(0x8334),CP(0x8335),CP(0x8336),CP(0x8337),CP(0x8338), + CP(0x8339),CP(0x833A),CP(0x833B),CP(0x833C),CP(0x833D),CP(0x833E),CP(0x833F),CP(0x8340), + CP(0x8341),CP(0x8342),CP(0x8343),CP(0x8344),CP(0x8345),CP(0x8346),CP(0x8347),CP(0x8348), + CP(0x8349),CP(0x834A),CP(0x834B),CP(0x834C),CP(0x834D),CP(0x834E),CP(0x834F),CP(0x8350), + CP(0x8351),CP(0x8352),CP(0x8353),CP(0x8354),CP(0x8355),CP(0x8356),CP(0x8357),CP(0x8358), + CP(0x8359),CP(0x835A),CP(0x835B),CP(0x835C),CP(0x835D),CP(0x835E),CP(0x835F),CP(0x8360), + CP(0x8361),CP(0x8362),CP(0x8363),CP(0x8364),CP(0x8365),CP(0x8366),CP(0x8367),CP(0x8368), + CP(0x8369),CP(0x836A),CP(0x836B),CP(0x836C),CP(0x836D),CP(0x836E),CP(0x836F),CP(0x8370), + CP(0x8371),CP(0x8372),CP(0x8373),CP(0x8374),CP(0x8375),CP(0x8376),CP(0x8377),CP(0x8378), + CP(0x8379),CP(0x837A),CP(0x837B),CP(0x837C),CP(0x837D),CP(0x837E),CP(0x8421),CP(0x8422), + CP(0x8423),CP(0x8424),CP(0x8425),CP(0x8426),CP(0x8427),CP(0x8428),CP(0x8429),CP(0x842A), + CP(0x842B),CP(0x842C),CP(0x842D),CP(0x842E),CP(0x842F),CP(0x8430),CP(0x8431),CP(0x8432), + CP(0x8433),CP(0x8434),CP(0x8435),CP(0x8436),CP(0x8437),CP(0x8438),CP(0x8439),CP(0x843A), + CP(0x843B),CP(0x843C),CP(0x843D),CP(0x843E),CP(0x843F),CP(0x8440),CP(0x8441),CP(0x8442), + CP(0x8443),CP(0x8444),CP(0x8445),CP(0x8446),CP(0x8447),CP(0x8448),CP(0x8449),CP(0x844A), + + /* E200h */ + CP(0x844B),CP(0x844C),CP(0x844D),CP(0x844E),CP(0x844F),CP(0x8450),CP(0x8451),CP(0x8452), + CP(0x8453),CP(0x8454),CP(0x8455),CP(0x8456),CP(0x8457),CP(0x8458),CP(0x8459),CP(0x845A), + CP(0x845B),CP(0x845C),CP(0x845D),CP(0x845E),CP(0x845F),CP(0x8460),CP(0x8461),CP(0x8462), + CP(0x8463),CP(0x8464),CP(0x8465),CP(0x8466),CP(0x8467),CP(0x8468),CP(0x8469),CP(0x846A), + CP(0x846B),CP(0x846C),CP(0x846D),CP(0x846E),CP(0x846F),CP(0x8470),CP(0x8471),CP(0x8472), + CP(0x8473),CP(0x8474),CP(0x8475),CP(0x8476),CP(0x8477),CP(0x8478),CP(0x8479),CP(0x847A), + CP(0x847B),CP(0x847C),CP(0x847D),CP(0x847E),CP(0x8521),CP(0x8522),CP(0x8523),CP(0x8524), + CP(0x8525),CP(0x8526),CP(0x8527),CP(0x8528),CP(0x8529),CP(0x852A),CP(0x852B),CP(0x852C), + CP(0x852D),CP(0x852E),CP(0x852F),CP(0x8530),CP(0x8531),CP(0x8532),CP(0x8533),CP(0x8534), + CP(0x8535),CP(0x8536),CP(0x8537),CP(0x8538),CP(0x8539),CP(0x853A),CP(0x853B),CP(0x853C), + CP(0x853D),CP(0x853E),CP(0x853F),CP(0x8540),CP(0x8541),CP(0x8542),CP(0x8543),CP(0x8544), + CP(0x8545),CP(0x8546),CP(0x8547),CP(0x8548),CP(0x8549),CP(0x854A),CP(0x854B),CP(0x854C), + CP(0x854D),CP(0x854E),CP(0x854F),CP(0x8550),CP(0x8551),CP(0x8552),CP(0x8553),CP(0x8554), + CP(0x8555),CP(0x8556),CP(0x8557),CP(0x8558),CP(0x8559),CP(0x855A),CP(0x855B),CP(0x855C), + CP(0x855D),CP(0x855E),CP(0x855F),CP(0x8560),CP(0x8561),CP(0x8562),CP(0x8563),CP(0x8564), + CP(0x8565),CP(0x8566),CP(0x8567),CP(0x8568),CP(0x8569),CP(0x856A),CP(0x856B),CP(0x856C), + CP(0x856D),CP(0x856E),CP(0x856F),CP(0x8570),CP(0x8571),CP(0x8572),CP(0x8573),CP(0x8574), + CP(0x8575),CP(0x8576),CP(0x8577),CP(0x8578),CP(0x8579),CP(0x857A),CP(0x857B),CP(0x857C), + CP(0x857D),CP(0x857E),CP(0x8621),CP(0x8622),CP(0x8623),CP(0x8624),CP(0x8625),CP(0x8626), + CP(0x8627),CP(0x8628),CP(0x8629),CP(0x862A),CP(0x862B),CP(0x862C),CP(0x862D),CP(0x862E), + CP(0x862F),CP(0x8630),CP(0x8631),CP(0x8632),CP(0x8633),CP(0x8634),CP(0x8635),CP(0x8636), + CP(0x8637),CP(0x8638),CP(0x8639),CP(0x863A),CP(0x863B),CP(0x863C),CP(0x863D),CP(0x863E), + CP(0x863F),CP(0x8640),CP(0x8641),CP(0x8642),CP(0x8643),CP(0x8644),CP(0x8645),CP(0x8646), + CP(0x8647),CP(0x8648),CP(0x8649),CP(0x864A),CP(0x864B),CP(0x864C),CP(0x864D),CP(0x864E), + CP(0x864F),CP(0x8650),CP(0x8651),CP(0x8652),CP(0x8653),CP(0x8654),CP(0x8655),CP(0x8656), + CP(0x8657),CP(0x8658),CP(0x8659),CP(0x865A),CP(0x865B),CP(0x865C),CP(0x865D),CP(0x865E), + CP(0x865F),CP(0x8660),CP(0x8661),CP(0x8662),CP(0x8663),CP(0x8664),CP(0x8665),CP(0x8666), + CP(0x8667),CP(0x8668),CP(0x8669),CP(0x866A),CP(0x866B),CP(0x866C),CP(0x866D),CP(0x866E), + CP(0x866F),CP(0x8670),CP(0x8671),CP(0x8672),CP(0x8673),CP(0x8674),CP(0x8675),CP(0x8676), + CP(0x8677),CP(0x8678),CP(0x8679),CP(0x867A),CP(0x867B),CP(0x867C),CP(0x867D),CP(0x867E), + CP(0x8721),CP(0x8722),CP(0x8723),CP(0x8724),CP(0x8725),CP(0x8726),CP(0x8727),CP(0x8728), + CP(0x8729),CP(0x872A),CP(0x872B),CP(0x872C),CP(0x872D),CP(0x872E),CP(0x872F),CP(0x8730), + + /* E300h */ + CP(0x8731),CP(0x8732),CP(0x8733),CP(0x8734),CP(0x8735),CP(0x8736),CP(0x8737),CP(0x8738), + CP(0x8739),CP(0x873A),CP(0x873B),CP(0x873C),CP(0x873D),CP(0x873E),CP(0x873F),CP(0x8740), + CP(0x8741),CP(0x8742),CP(0x8743),CP(0x8744),CP(0x8745),CP(0x8746),CP(0x8747),CP(0x8748), + CP(0x8749),CP(0x874A),CP(0x874B),CP(0x874C),CP(0x874D),CP(0x874E),CP(0x874F),CP(0x8750), + CP(0x8751),CP(0x8752),CP(0x8753),CP(0x8754),CP(0x8755),CP(0x8756),CP(0x8757),CP(0x8758), + CP(0x8759),CP(0x875A),CP(0x875B),CP(0x875C),CP(0x875D),CP(0x875E),CP(0x875F),CP(0x8760), + CP(0x8761),CP(0x8762),CP(0x8763),CP(0x8764),CP(0x8765),CP(0x8766),CP(0x8767),CP(0x8768), + CP(0x8769),CP(0x876A),CP(0x876B),CP(0x876C),CP(0x876D),CP(0x876E),CP(0x876F),CP(0x8770), + CP(0x8771),CP(0x8772),CP(0x8773),CP(0x8774),CP(0x8775),CP(0x8776),CP(0x8777),CP(0x8778), + CP(0x8779),CP(0x877A),CP(0x877B),CP(0x877C),CP(0x877D),CP(0x877E),CP(0x8821),CP(0x8822), + CP(0x8823),CP(0x8824),CP(0x8825),CP(0x8826),CP(0x8827),CP(0x8828),CP(0x8829),CP(0x882A), + CP(0x882B),CP(0x882C),CP(0x882D),CP(0x882E),CP(0x882F),CP(0x8830),CP(0x8831),CP(0x8832), + CP(0x8833),CP(0x8834),CP(0x8835),CP(0x8836),CP(0x8837),CP(0x8838),CP(0x8839),CP(0x883A), + CP(0x883B),CP(0x883C),CP(0x883D),CP(0x883E),CP(0x883F),CP(0x8840),CP(0x8841),CP(0x8842), + CP(0x8843),CP(0x8844),CP(0x8845),CP(0x8846),CP(0x8847),CP(0x8848),CP(0x8849),CP(0x884A), + CP(0x884B),CP(0x884C),CP(0x884D),CP(0x884E),CP(0x884F),CP(0x8850),CP(0x8851),CP(0x8852), + CP(0x8853),CP(0x8854),CP(0x8855),CP(0x8856),CP(0x8857),CP(0x8858),CP(0x8859),CP(0x885A), + CP(0x885B),CP(0x885C),CP(0x885D),CP(0x885E),CP(0x885F),CP(0x8860),CP(0x8861),CP(0x8862), + CP(0x8863),CP(0x8864),CP(0x8865),CP(0x8866),CP(0x8867),CP(0x8868),CP(0x8869),CP(0x886A), + CP(0x886B),CP(0x886C),CP(0x886D),CP(0x886E),CP(0x886F),CP(0x8870),CP(0x8871),CP(0x8872), + CP(0x8873),CP(0x8874),CP(0x8875),CP(0x8876),CP(0x8877),CP(0x8878),CP(0x8879),CP(0x887A), + CP(0x887B),CP(0x887C),CP(0x887D),CP(0x887E),CP(0x8921),CP(0x8922),CP(0x8923),CP(0x8924), + CP(0x8925),CP(0x8926),CP(0x8927),CP(0x8928),CP(0x8929),CP(0x892A),CP(0x892B),CP(0x892C), + CP(0x892D),CP(0x892E),CP(0x892F),CP(0x8930),CP(0x8931),CP(0x8932),CP(0x8933),CP(0x8934), + CP(0x8935),CP(0x8936),CP(0x8937),CP(0x8938),CP(0x8939),CP(0x893A),CP(0x893B),CP(0x893C), + CP(0x893D),CP(0x893E),CP(0x893F),CP(0x8940),CP(0x8941),CP(0x8942),CP(0x8943),CP(0x8944), + CP(0x8945),CP(0x8946),CP(0x8947),CP(0x8948),CP(0x8949),CP(0x894A),CP(0x894B),CP(0x894C), + CP(0x894D),CP(0x894E),CP(0x894F),CP(0x8950),CP(0x8951),CP(0x8952),CP(0x8953),CP(0x8954), + CP(0x8955),CP(0x8956),CP(0x8957),CP(0x8958),CP(0x8959),CP(0x895A),CP(0x895B),CP(0x895C), + CP(0x895D),CP(0x895E),CP(0x895F),CP(0x8960),CP(0x8961),CP(0x8962),CP(0x8963),CP(0x8964), + CP(0x8965),CP(0x8966),CP(0x8967),CP(0x8968),CP(0x8969),CP(0x896A),CP(0x896B),CP(0x896C), + CP(0x896D),CP(0x896E),CP(0x896F),CP(0x8970),CP(0x8971),CP(0x8972),CP(0x8973),CP(0x8974), + + /* E400h */ + CP(0x8975),CP(0x8976),CP(0x8977),CP(0x8978),CP(0x8979),CP(0x897A),CP(0x897B),CP(0x897C), + CP(0x897D),CP(0x897E),CP(0x8A21),CP(0x8A22),CP(0x8A23),CP(0x8A24),CP(0x8A25),CP(0x8A26), + CP(0x8A27),CP(0x8A28),CP(0x8A29),CP(0x8A2A),CP(0x8A2B),CP(0x8A2C),CP(0x8A2D),CP(0x8A2E), + CP(0x8A2F),CP(0x8A30),CP(0x8A31),CP(0x8A32),CP(0x8A33),CP(0x8A34),CP(0x8A35),CP(0x8A36), + CP(0x8A37),CP(0x8A38),CP(0x8A39),CP(0x8A3A),CP(0x8A3B),CP(0x8A3C),CP(0x8A3D),CP(0x8A3E), + CP(0x8A3F),CP(0x8A40),CP(0x8A41),CP(0x8A42),CP(0x8A43),CP(0x8A44),CP(0x8A45),CP(0x8A46), + CP(0x8A47),CP(0x8A48),CP(0x8A49),CP(0x8A4A),CP(0x8A4B),CP(0x8A4C),CP(0x8A4D),CP(0x8A4E), + CP(0x8A4F),CP(0x8A50),CP(0x8A51),CP(0x8A52),CP(0x8A53),CP(0x8A54),CP(0x8A55),CP(0x8A56), + CP(0x8A57),CP(0x8A58),CP(0x8A59),CP(0x8A5A),CP(0x8A5B),CP(0x8A5C),CP(0x8A5D),CP(0x8A5E), + CP(0x8A5F),CP(0x8A60),CP(0x8A61),CP(0x8A62),CP(0x8A63),CP(0x8A64),CP(0x8A65),CP(0x8A66), + CP(0x8A67),CP(0x8A68),CP(0x8A69),CP(0x8A6A),CP(0x8A6B),CP(0x8A6C),CP(0x8A6D),CP(0x8A6E), + CP(0x8A6F),CP(0x8A70),CP(0x8A71),CP(0x8A72),CP(0x8A73),CP(0x8A74),CP(0x8A75),CP(0x8A76), + CP(0x8A77),CP(0x8A78),CP(0x8A79),CP(0x8A7A),CP(0x8A7B),CP(0x8A7C),CP(0x8A7D),CP(0x8A7E), + CP(0x8B21),CP(0x8B22),CP(0x8B23),CP(0x8B24),CP(0x8B25),CP(0x8B26),CP(0x8B27),CP(0x8B28), + CP(0x8B29),CP(0x8B2A),CP(0x8B2B),CP(0x8B2C),CP(0x8B2D),CP(0x8B2E),CP(0x8B2F),CP(0x8B30), + CP(0x8B31),CP(0x8B32),CP(0x8B33),CP(0x8B34),CP(0x8B35),CP(0x8B36),CP(0x8B37),CP(0x8B38), + CP(0x8B39),CP(0x8B3A),CP(0x8B3B),CP(0x8B3C),CP(0x8B3D),CP(0x8B3E),CP(0x8B3F),CP(0x8B40), + CP(0x8B41),CP(0x8B42),CP(0x8B43),CP(0x8B44),CP(0x8B45),CP(0x8B46),CP(0x8B47),CP(0x8B48), + CP(0x8B49),CP(0x8B4A),CP(0x8B4B),CP(0x8B4C),CP(0x8B4D),CP(0x8B4E),CP(0x8B4F),CP(0x8B50), + CP(0x8B51),CP(0x8B52),CP(0x8B53),CP(0x8B54),CP(0x8B55),CP(0x8B56),CP(0x8B57),CP(0x8B58), + CP(0x8B59),CP(0x8B5A),CP(0x8B5B),CP(0x8B5C),CP(0x8B5D),CP(0x8B5E),CP(0x8B5F),CP(0x8B60), + CP(0x8B61),CP(0x8B62),CP(0x8B63),CP(0x8B64),CP(0x8B65),CP(0x8B66),CP(0x8B67),CP(0x8B68), + CP(0x8B69),CP(0x8B6A),CP(0x8B6B),CP(0x8B6C),CP(0x8B6D),CP(0x8B6E),CP(0x8B6F),CP(0x8B70), + CP(0x8B71),CP(0x8B72),CP(0x8B73),CP(0x8B74),CP(0x8B75),CP(0x8B76),CP(0x8B77),CP(0x8B78), + CP(0x8B79),CP(0x8B7A),CP(0x8B7B),CP(0x8B7C),CP(0x8B7D),CP(0x8B7E),CP(0x8C21),CP(0x8C22), + CP(0x8C23),CP(0x8C24),CP(0x8C25),CP(0x8C26),CP(0x8C27),CP(0x8C28),CP(0x8C29),CP(0x8C2A), + CP(0x8C2B),CP(0x8C2C),CP(0x8C2D),CP(0x8C2E),CP(0x8C2F),CP(0x8C30),CP(0x8C31),CP(0x8C32), + CP(0x8C33),CP(0x8C34),CP(0x8C35),CP(0x8C36),CP(0x8C37),CP(0x8C38),CP(0x8C39),CP(0x8C3A), + CP(0x8C3B),CP(0x8C3C),CP(0x8C3D),CP(0x8C3E),CP(0x8C3F),CP(0x8C40),CP(0x8C41),CP(0x8C42), + CP(0x8C43),CP(0x8C44),CP(0x8C45),CP(0x8C46),CP(0x8C47),CP(0x8C48),CP(0x8C49),CP(0x8C4A), + CP(0x8C4B),CP(0x8C4C),CP(0x8C4D),CP(0x8C4E),CP(0x8C4F),CP(0x8C50),CP(0x8C51),CP(0x8C52), + CP(0x8C53),CP(0x8C54),CP(0x8C55),CP(0x8C56),CP(0x8C57),CP(0x8C58),CP(0x8C59),CP(0x8C5A), + + /* E500h */ + CP(0x8C5B),CP(0x8C5C),CP(0x8C5D),CP(0x8C5E),CP(0x8C5F),CP(0x8C60),CP(0x8C61),CP(0x8C62), + CP(0x8C63),CP(0x8C64),CP(0x8C65),CP(0x8C66),CP(0x8C67),CP(0x8C68),CP(0x8C69),CP(0x8C6A), + CP(0x8C6B),CP(0x8C6C),CP(0x8C6D),CP(0x8C6E),CP(0x8C6F),CP(0x8C70),CP(0x8C71),CP(0x8C72), + CP(0x8C73),CP(0x8C74),CP(0x8C75),CP(0x8C76),CP(0x8C77),CP(0x8C78),CP(0x8C79),CP(0x8C7A), + CP(0x8C7B),CP(0x8C7C),CP(0x8C7D),CP(0x8C7E),CP(0x8D21),CP(0x8D22),CP(0x8D23),CP(0x8D24), + CP(0x8D25),CP(0x8D26),CP(0x8D27),CP(0x8D28),CP(0x8D29),CP(0x8D2A),CP(0x8D2B),CP(0x8D2C), + CP(0x8D2D),CP(0x8D2E),CP(0x8D2F),CP(0x8D30),CP(0x8D31),CP(0x8D32),CP(0x8D33),CP(0x8D34), + CP(0x8D35),CP(0x8D36),CP(0x8D37),CP(0x8D38),CP(0x8D39),CP(0x8D3A),CP(0x8D3B),CP(0x8D3C), + CP(0x8D3D),CP(0x8D3E),CP(0x8D3F),CP(0x8D40),CP(0x8D41),CP(0x8D42),CP(0x8D43),CP(0x8D44), + CP(0x8D45),CP(0x8D46),CP(0x8D47),CP(0x8D48),CP(0x8D49),CP(0x8D4A),CP(0x8D4B),CP(0x8D4C), + CP(0x8D4D),CP(0x8D4E),CP(0x8D4F),CP(0x8D50),CP(0x8D51),CP(0x8D52),CP(0x8D53),CP(0x8D54), + CP(0x8D55),CP(0x8D56),CP(0x8D57),CP(0x8D58),CP(0x8D59),CP(0x8D5A),CP(0x8D5B),CP(0x8D5C), + CP(0x8D5D),CP(0x8D5E),CP(0x8D5F),CP(0x8D60),CP(0x8D61),CP(0x8D62),CP(0x8D63),CP(0x8D64), + CP(0x8D65),CP(0x8D66),CP(0x8D67),CP(0x8D68),CP(0x8D69),CP(0x8D6A),CP(0x8D6B),CP(0x8D6C), + CP(0x8D6D),CP(0x8D6E),CP(0x8D6F),CP(0x8D70),CP(0x8D71),CP(0x8D72),CP(0x8D73),CP(0x8D74), + CP(0x8D75),CP(0x8D76),CP(0x8D77),CP(0x8D78),CP(0x8D79),CP(0x8D7A),CP(0x8D7B),CP(0x8D7C), + CP(0x8D7D),CP(0x8D7E),CP(0x8E21),CP(0x8E22),CP(0x8E23),CP(0x8E24),CP(0x8E25),CP(0x8E26), + CP(0x8E27),CP(0x8E28),CP(0x8E29),CP(0x8E2A),CP(0x8E2B),CP(0x8E2C),CP(0x8E2D),CP(0x8E2E), + CP(0x8E2F),CP(0x8E30),CP(0x8E31),CP(0x8E32),CP(0x8E33),CP(0x8E34),CP(0x8E35),CP(0x8E36), + CP(0x8E37),CP(0x8E38),CP(0x8E39),CP(0x8E3A),CP(0x8E3B),CP(0x8E3C),CP(0x8E3D),CP(0x8E3E), + CP(0x8E3F),CP(0x8E40),CP(0x8E41),CP(0x8E42),CP(0x8E43),CP(0x8E44),CP(0x8E45),CP(0x8E46), + CP(0x8E47),CP(0x8E48),CP(0x8E49),CP(0x8E4A),CP(0x8E4B),CP(0x8E4C),CP(0x8E4D),CP(0x8E4E), + CP(0x8E4F),CP(0x8E50),CP(0x8E51),CP(0x8E52),CP(0x8E53),CP(0x8E54),CP(0x8E55),CP(0x8E56), + CP(0x8E57),CP(0x8E58),CP(0x8E59),CP(0x8E5A),CP(0x8E5B),CP(0x8E5C),CP(0x8E5D),CP(0x8E5E), + CP(0x8E5F),CP(0x8E60),CP(0x8E61),CP(0x8E62),CP(0x8E63),CP(0x8E64),CP(0x8E65),CP(0x8E66), + CP(0x8E67),CP(0x8E68),CP(0x8E69),CP(0x8E6A),CP(0x8E6B),CP(0x8E6C),CP(0x8E6D),CP(0x8E6E), + CP(0x8E6F),CP(0x8E70),CP(0x8E71),CP(0x8E72),CP(0x8E73),CP(0x8E74),CP(0x8E75),CP(0x8E76), + CP(0x8E77),CP(0x8E78),CP(0x8E79),CP(0x8E7A),CP(0x8E7B),CP(0x8E7C),CP(0x8E7D),CP(0x8E7E), + CP(0x8F21),CP(0x8F22),CP(0x8F23),CP(0x8F24),CP(0x8F25),CP(0x8F26),CP(0x8F27),CP(0x8F28), + CP(0x8F29),CP(0x8F2A),CP(0x8F2B),CP(0x8F2C),CP(0x8F2D),CP(0x8F2E),CP(0x8F2F),CP(0x8F30), + CP(0x8F31),CP(0x8F32),CP(0x8F33),CP(0x8F34),CP(0x8F35),CP(0x8F36),CP(0x8F37),CP(0x8F38), + CP(0x8F39),CP(0x8F3A),CP(0x8F3B),CP(0x8F3C),CP(0x8F3D),CP(0x8F3E),CP(0x8F3F),CP(0x8F40), + + /* E600h */ + CP(0x8F41),CP(0x8F42),CP(0x8F43),CP(0x8F44),CP(0x8F45),CP(0x8F46),CP(0x8F47),CP(0x8F48), + CP(0x8F49),CP(0x8F4A),CP(0x8F4B),CP(0x8F4C),CP(0x8F4D),CP(0x8F4E),CP(0x8F4F),CP(0x8F50), + CP(0x8F51),CP(0x8F52),CP(0x8F53),CP(0x8F54),CP(0x8F55),CP(0x8F56),CP(0x8F57),CP(0x8F58), + CP(0x8F59),CP(0x8F5A),CP(0x8F5B),CP(0x8F5C),CP(0x8F5D),CP(0x8F5E),CP(0x8F5F),CP(0x8F60), + CP(0x8F61),CP(0x8F62),CP(0x8F63),CP(0x8F64),CP(0x8F65),CP(0x8F66),CP(0x8F67),CP(0x8F68), + CP(0x8F69),CP(0x8F6A),CP(0x8F6B),CP(0x8F6C),CP(0x8F6D),CP(0x8F6E),CP(0x8F6F),CP(0x8F70), + CP(0x8F71),CP(0x8F72),CP(0x8F73),CP(0x8F74),CP(0x8F75),CP(0x8F76),CP(0x8F77),CP(0x8F78), + CP(0x8F79),CP(0x8F7A),CP(0x8F7B),CP(0x8F7C),CP(0x8F7D),CP(0x8F7E),CP(0x9021),CP(0x9022), + CP(0x9023),CP(0x9024),CP(0x9025),CP(0x9026),CP(0x9027),CP(0x9028),CP(0x9029),CP(0x902A), + CP(0x902B),CP(0x902C),CP(0x902D),CP(0x902E),CP(0x902F),CP(0x9030),CP(0x9031),CP(0x9032), + CP(0x9033),CP(0x9034),CP(0x9035),CP(0x9036),CP(0x9037),CP(0x9038),CP(0x9039),CP(0x903A), + CP(0x903B),CP(0x903C),CP(0x903D),CP(0x903E),CP(0x903F),CP(0x9040),CP(0x9041),CP(0x9042), + CP(0x9043),CP(0x9044),CP(0x9045),CP(0x9046),CP(0x9047),CP(0x9048),CP(0x9049),CP(0x904A), + CP(0x904B),CP(0x904C),CP(0x904D),CP(0x904E),CP(0x904F),CP(0x9050),CP(0x9051),CP(0x9052), + CP(0x9053),CP(0x9054),CP(0x9055),CP(0x9056),CP(0x9057),CP(0x9058),CP(0x9059),CP(0x905A), + CP(0x905B),CP(0x905C),CP(0x905D),CP(0x905E),CP(0x905F),CP(0x9060),CP(0x9061),CP(0x9062), + CP(0x9063),CP(0x9064),CP(0x9065),CP(0x9066),CP(0x9067),CP(0x9068),CP(0x9069),CP(0x906A), + CP(0x906B),CP(0x906C),CP(0x906D),CP(0x906E),CP(0x906F),CP(0x9070),CP(0x9071),CP(0x9072), + CP(0x9073),CP(0x9074),CP(0x9075),CP(0x9076),CP(0x9077),CP(0x9078),CP(0x9079),CP(0x907A), + CP(0x907B),CP(0x907C),CP(0x907D),CP(0x907E),CP(0x9121),CP(0x9122),CP(0x9123),CP(0x9124), + CP(0x9125),CP(0x9126),CP(0x9127),CP(0x9128),CP(0x9129),CP(0x912A),CP(0x912B),CP(0x912C), + CP(0x912D),CP(0x912E),CP(0x912F),CP(0x9130),CP(0x9131),CP(0x9132),CP(0x9133),CP(0x9134), + CP(0x9135),CP(0x9136),CP(0x9137),CP(0x9138),CP(0x9139),CP(0x913A),CP(0x913B),CP(0x913C), + CP(0x913D),CP(0x913E),CP(0x913F),CP(0x9140),CP(0x9141),CP(0x9142),CP(0x9143),CP(0x9144), + CP(0x9145),CP(0x9146),CP(0x9147),CP(0x9148),CP(0x9149),CP(0x914A),CP(0x914B),CP(0x914C), + CP(0x914D),CP(0x914E),CP(0x914F),CP(0x9150),CP(0x9151),CP(0x9152),CP(0x9153),CP(0x9154), + CP(0x9155),CP(0x9156),CP(0x9157),CP(0x9158),CP(0x9159),CP(0x915A),CP(0x915B),CP(0x915C), + CP(0x915D),CP(0x915E),CP(0x915F),CP(0x9160),CP(0x9161),CP(0x9162),CP(0x9163),CP(0x9164), + CP(0x9165),CP(0x9166),CP(0x9167),CP(0x9168),CP(0x9169),CP(0x916A),CP(0x916B),CP(0x916C), + CP(0x916D),CP(0x916E),CP(0x916F),CP(0x9170),CP(0x9171),CP(0x9172),CP(0x9173),CP(0x9174), + CP(0x9175),CP(0x9176),CP(0x9177),CP(0x9178),CP(0x9179),CP(0x917A),CP(0x917B),CP(0x917C), + CP(0x917D),CP(0x917E),CP(0x9221),CP(0x9222),CP(0x9223),CP(0x9224),CP(0x9225),CP(0x9226), + + /* E700h */ + CP(0x9227),CP(0x9228),CP(0x9229),CP(0x922A),CP(0x922B),CP(0x922C),CP(0x922D),CP(0x922E), + CP(0x922F),CP(0x9230),CP(0x9231),CP(0x9232),CP(0x9233),CP(0x9234),CP(0x9235),CP(0x9236), + CP(0x9237),CP(0x9238),CP(0x9239),CP(0x923A),CP(0x923B),CP(0x923C),CP(0x923D),CP(0x923E), + CP(0x923F),CP(0x9240),CP(0x9241),CP(0x9242),CP(0x9243),CP(0x9244),CP(0x9245),CP(0x9246), + CP(0x9247),CP(0x9248),CP(0x9249),CP(0x924A),CP(0x924B),CP(0x924C),CP(0x924D),CP(0x924E), + CP(0x924F),CP(0x9250),CP(0x9251),CP(0x9252),CP(0x9253),CP(0x9254),CP(0x9255),CP(0x9256), + CP(0x9257),CP(0x9258),CP(0x9259),CP(0x925A),CP(0x925B),CP(0x925C),CP(0x925D),CP(0x925E), + CP(0x925F),CP(0x9260),CP(0x9261),CP(0x9262),CP(0x9263),CP(0x9264),CP(0x9265),CP(0x9266), + CP(0x9267),CP(0x9268),CP(0x9269),CP(0x926A),CP(0x926B),CP(0x926C),CP(0x926D),CP(0x926E), + CP(0x926F),CP(0x9270),CP(0x9271),CP(0x9272),CP(0x9273),CP(0x9274),CP(0x9275),CP(0x9276), + CP(0x9277),CP(0x9278),CP(0x9279),CP(0x927A),CP(0x927B),CP(0x927C),CP(0x927D),CP(0x927E) +}; + + +static const int table_ucs_cp932_ext_euc[] = { + 0x2121,CP(0x2D64), + 0x2160,CP(0x2D35), + 0x2161,CP(0x2D36), + 0x2162,CP(0x2D37), + 0x2163,CP(0x2D38), + 0x2164,CP(0x2D39), + 0x2165,CP(0x2D3A), + 0x2166,CP(0x2D3B), + 0x2167,CP(0x2D3C), + 0x2168,CP(0x2D3D), + 0x2169,CP(0x2D3E), + 0x2170,J3(0x7373), + 0x2171,J3(0x7374), + 0x2172,J3(0x7375), + 0x2173,J3(0x7376), + 0x2174,J3(0x7377), + 0x2175,J3(0x7378), + 0x2176,J3(0x7379), + 0x2177,J3(0x737A), + 0x2178,J3(0x737B), + 0x2179,J3(0x737C), + 0x2211,CP(0x2D74), + 0x221F,CP(0x2D78), + 0x222E,CP(0x2D73), + 0x22BF,CP(0x2D79), + 0x2460,CP(0x2D21), + 0x2461,CP(0x2D22), + 0x2462,CP(0x2D23), + 0x2463,CP(0x2D24), + 0x2464,CP(0x2D25), + 0x2465,CP(0x2D26), + 0x2466,CP(0x2D27), + 0x2467,CP(0x2D28), + 0x2468,CP(0x2D29), + 0x2469,CP(0x2D2A), + 0x246A,CP(0x2D2B), + 0x246B,CP(0x2D2C), + 0x246C,CP(0x2D2D), + 0x246D,CP(0x2D2E), + 0x246E,CP(0x2D2F), + 0x246F,CP(0x2D30), + 0x2470,CP(0x2D31), + 0x2471,CP(0x2D32), + 0x2472,CP(0x2D33), + 0x2473,CP(0x2D34), + 0x301D,CP(0x2D60), + 0x301F,CP(0x2D61), + 0x3231,CP(0x2D6A), + 0x3232,CP(0x2D6B), + 0x3239,CP(0x2D6C), + 0x32A4,CP(0x2D65), + 0x32A5,CP(0x2D66), + 0x32A6,CP(0x2D67), + 0x32A7,CP(0x2D68), + 0x32A8,CP(0x2D69), + 0x3303,CP(0x2D46), + 0x330D,CP(0x2D4A), + 0x3314,CP(0x2D41), + 0x3318,CP(0x2D44), + 0x3322,CP(0x2D42), + 0x3323,CP(0x2D4C), + 0x3326,CP(0x2D4B), + 0x3327,CP(0x2D45), + 0x332B,CP(0x2D4D), + 0x3336,CP(0x2D47), + 0x333B,CP(0x2D4F), + 0x3349,CP(0x2D40), + 0x334A,CP(0x2D4E), + 0x334D,CP(0x2D43), + 0x3351,CP(0x2D48), + 0x3357,CP(0x2D49), + 0x337B,CP(0x2D5F), + 0x337C,CP(0x2D6F), + 0x337D,CP(0x2D6E), + 0x337E,CP(0x2D6D), + 0x338E,CP(0x2D53), + 0x338F,CP(0x2D54), + 0x339C,CP(0x2D50), + 0x339D,CP(0x2D51), + 0x339E,CP(0x2D52), + 0x33A1,CP(0x2D56), + 0x33C4,CP(0x2D55), + 0x33CD,CP(0x2D63), + 0x4EFC,J3(0x742F), + 0x50F4,J3(0x7430), + 0x51EC,J3(0x7431), + 0x5307,J3(0x7432), + 0x5324,J3(0x7433), + 0x548A,J3(0x7435), + 0x5759,J3(0x7436), + 0x589E,J3(0x7439), + 0x5BEC,J3(0x743A), + 0x5CF5,J3(0x743B), + 0x5D53,J3(0x743C), + 0x5FB7,J3(0x743E), + 0x6085,J3(0x743F), + 0x6120,J3(0x7440), + 0x654E,J3(0x7441), + 0x663B,J3(0x7442), + 0x6665,J3(0x7443), + 0x6801,J3(0x7446), + 0x6A6B,J3(0x7449), + 0x6AE2,J3(0x744A), + 0x6DF2,J3(0x744C), + 0x6DF8,J3(0x744B), + 0x7028,J3(0x744D), + 0x70BB,J3(0x742E), + 0x7501,J3(0x7450), + 0x7682,J3(0x7451), + 0x769E,J3(0x7452), + 0x7930,J3(0x7454), + 0x7AE7,J3(0x7459), + 0x7DA0,J3(0x745C), + 0x7DD6,J3(0x745D), + 0x8362,J3(0x745F), + 0x85B0,J3(0x7461), + 0x8807,J3(0x7464), + 0x8B7F,J3(0x7466), + 0x8CF4,J3(0x7467), + 0x8D76,J3(0x7468), + 0x90DE,J3(0x746C), + 0x9115,J3(0x746E), + 0x9592,J3(0x7471), + 0x973B,J3(0x7474), + 0x974D,J3(0x7475), + 0x9751,J3(0x7476), + 0x999E,J3(0x747A), + 0x9AD9,J3(0x747B), + 0x9B72,J3(0x747C), + 0x9ED1,J3(0x747E), + 0xF929,J3(0x7445), + 0xF9DC,J3(0x7472), + 0xFA0E,J3(0x7434), + 0xFA0F,J3(0x7437), + 0xFA10,J3(0x7438), + 0xFA11,J3(0x743D), + 0xFA12,J3(0x7444), + 0xFA13,J3(0x7447), + 0xFA14,J3(0x7448), + 0xFA15,J3(0x744E), + 0xFA16,J3(0x744F), + 0xFA17,J3(0x7453), + 0xFA18,J3(0x7455), + 0xFA19,J3(0x7456), + 0xFA1A,J3(0x7457), + 0xFA1B,J3(0x7458), + 0xFA1C,J3(0x745A), + 0xFA1D,J3(0x745B), + 0xFA1E,J3(0x745E), + 0xFA1F,J3(0x7460), + 0xFA20,J3(0x7462), + 0xFA21,J3(0x7463), + 0xFA22,J3(0x7465), + 0xFA23,J3(0x7469), + 0xFA24,J3(0x746A), + 0xFA25,J3(0x746B), + 0xFA26,J3(0x746D), + 0xFA27,J3(0x746F), + 0xFA28,J3(0x7470), + 0xFA29,J3(0x7473), + 0xFA2A,J3(0x7477), + 0xFA2B,J3(0x7478), + 0xFA2C,J3(0x7479), + 0xFA2D,J3(0x747D), + 0xFF02,J3(0x742A), + 0xFF07,J3(0x7429), + 0xFFE4,J3(0x2243) +}; + + +static const int table_ucs_cp932_ext_sjis[] = { + 0x2116,CP(0x2D62), + 0x2121,CP(0x2D64), + 0x2160,CP(0x2D35), + 0x2161,CP(0x2D36), + 0x2162,CP(0x2D37), + 0x2163,CP(0x2D38), + 0x2164,CP(0x2D39), + 0x2165,CP(0x2D3A), + 0x2166,CP(0x2D3B), + 0x2167,CP(0x2D3C), + 0x2168,CP(0x2D3D), + 0x2169,CP(0x2D3E), + 0x2170,CP(0x9321), + 0x2171,CP(0x9322), + 0x2172,CP(0x9323), + 0x2173,CP(0x9324), + 0x2174,CP(0x9325), + 0x2175,CP(0x9326), + 0x2176,CP(0x9327), + 0x2177,CP(0x9328), + 0x2178,CP(0x9329), + 0x2179,CP(0x932A), + 0x2211,CP(0x2D74), + 0x221F,CP(0x2D78), + 0x222E,CP(0x2D73), + 0x22BF,CP(0x2D79), + 0x2460,CP(0x2D21), + 0x2461,CP(0x2D22), + 0x2462,CP(0x2D23), + 0x2463,CP(0x2D24), + 0x2464,CP(0x2D25), + 0x2465,CP(0x2D26), + 0x2466,CP(0x2D27), + 0x2467,CP(0x2D28), + 0x2468,CP(0x2D29), + 0x2469,CP(0x2D2A), + 0x246A,CP(0x2D2B), + 0x246B,CP(0x2D2C), + 0x246C,CP(0x2D2D), + 0x246D,CP(0x2D2E), + 0x246E,CP(0x2D2F), + 0x246F,CP(0x2D30), + 0x2470,CP(0x2D31), + 0x2471,CP(0x2D32), + 0x2472,CP(0x2D33), + 0x2473,CP(0x2D34), + 0x301D,CP(0x2D60), + 0x301F,CP(0x2D61), + 0x3231,CP(0x2D6A), + 0x3232,CP(0x2D6B), + 0x3239,CP(0x2D6C), + 0x32A4,CP(0x2D65), + 0x32A5,CP(0x2D66), + 0x32A6,CP(0x2D67), + 0x32A7,CP(0x2D68), + 0x32A8,CP(0x2D69), + 0x3303,CP(0x2D46), + 0x330D,CP(0x2D4A), + 0x3314,CP(0x2D41), + 0x3318,CP(0x2D44), + 0x3322,CP(0x2D42), + 0x3323,CP(0x2D4C), + 0x3326,CP(0x2D4B), + 0x3327,CP(0x2D45), + 0x332B,CP(0x2D4D), + 0x3336,CP(0x2D47), + 0x333B,CP(0x2D4F), + 0x3349,CP(0x2D40), + 0x334A,CP(0x2D4E), + 0x334D,CP(0x2D43), + 0x3351,CP(0x2D48), + 0x3357,CP(0x2D49), + 0x337B,CP(0x2D5F), + 0x337C,CP(0x2D6F), + 0x337D,CP(0x2D6E), + 0x337E,CP(0x2D6D), + 0x338E,CP(0x2D53), + 0x338F,CP(0x2D54), + 0x339C,CP(0x2D50), + 0x339D,CP(0x2D51), + 0x339E,CP(0x2D52), + 0x33A1,CP(0x2D56), + 0x33C4,CP(0x2D55), + 0x33CD,CP(0x2D63), + 0x4E28,CP(0x9349), + 0x4EE1,CP(0x934A), + 0x4EFC,CP(0x934B), + 0x4F00,CP(0x934C), + 0x4F03,CP(0x934D), + 0x4F39,CP(0x934E), + 0x4F56,CP(0x934F), + 0x4F8A,CP(0x9351), + 0x4F92,CP(0x9350), + 0x4F94,CP(0x9353), + 0x4F9A,CP(0x9352), + 0x4FC9,CP(0x9342), + 0x4FCD,CP(0x9354), + 0x4FFF,CP(0x9357), + 0x501E,CP(0x9358), + 0x5022,CP(0x9356), + 0x5040,CP(0x9355), + 0x5042,CP(0x935B), + 0x5046,CP(0x9359), + 0x5070,CP(0x935A), + 0x5094,CP(0x935C), + 0x50D8,CP(0x935E), + 0x50F4,CP(0x935D), + 0x514A,CP(0x935F), + 0x5164,CP(0x9360), + 0x519D,CP(0x9361), + 0x51BE,CP(0x9362), + 0x51EC,CP(0x9363), + 0x5215,CP(0x9364), + 0x529C,CP(0x9365), + 0x52A6,CP(0x9366), + 0x52AF,CP(0x9558), + 0x52C0,CP(0x9367), + 0x52DB,CP(0x9368), + 0x5300,CP(0x9369), + 0x5307,CP(0x936A), + 0x5324,CP(0x936B), + 0x5372,CP(0x936C), + 0x5393,CP(0x936D), + 0x53B2,CP(0x936E), + 0x53DD,CP(0x936F), + 0x548A,CP(0x9372), + 0x549C,CP(0x9371), + 0x54A9,CP(0x9373), + 0x54FF,CP(0x9374), + 0x5586,CP(0x9375), + 0x5759,CP(0x9376), + 0x5765,CP(0x9377), + 0x57AC,CP(0x9378), + 0x57C7,CP(0x937A), + 0x57C8,CP(0x9379), + 0x589E,CP(0x937D), + 0x58B2,CP(0x937E), + 0x590B,CP(0x9421), + 0x5953,CP(0x9422), + 0x595B,CP(0x9423), + 0x595D,CP(0x9424), + 0x5963,CP(0x9425), + 0x59A4,CP(0x9426), + 0x59BA,CP(0x9427), + 0x5B56,CP(0x9428), + 0x5BC0,CP(0x9429), + 0x5BD8,CP(0x942B), + 0x5BEC,CP(0x942C), + 0x5C1E,CP(0x942D), + 0x5CA6,CP(0x942E), + 0x5CBA,CP(0x942F), + 0x5CF5,CP(0x9430), + 0x5D27,CP(0x9431), + 0x5D42,CP(0x9434), + 0x5D53,CP(0x9432), + 0x5D6D,CP(0x9435), + 0x5DB8,CP(0x9436), + 0x5DB9,CP(0x9437), + 0x5DD0,CP(0x9438), + 0x5F21,CP(0x9439), + 0x5F34,CP(0x943A), + 0x5F45,CP(0x9348), + 0x5F67,CP(0x943B), + 0x5FB7,CP(0x943C), + 0x5FDE,CP(0x943D), + 0x605D,CP(0x943E), + 0x6085,CP(0x943F), + 0x608A,CP(0x9440), + 0x60D5,CP(0x9442), + 0x60DE,CP(0x9441), + 0x60F2,CP(0x9444), + 0x6111,CP(0x9445), + 0x6120,CP(0x9443), + 0x6130,CP(0x9447), + 0x6137,CP(0x9446), + 0x6198,CP(0x9448), + 0x6213,CP(0x9449), + 0x62A6,CP(0x944A), + 0x63F5,CP(0x944B), + 0x6460,CP(0x944C), + 0x649D,CP(0x944D), + 0x64CE,CP(0x944E), + 0x654E,CP(0x944F), + 0x6600,CP(0x9450), + 0x6609,CP(0x9453), + 0x6615,CP(0x9451), + 0x661E,CP(0x9455), + 0x6624,CP(0x9456), + 0x662E,CP(0x9454), + 0x6631,CP(0x9344), + 0x663B,CP(0x9452), + 0x6657,CP(0x9458), + 0x6659,CP(0x9459), + 0x6665,CP(0x9457), + 0x6673,CP(0x945B), + 0x6699,CP(0x945C), + 0x66A0,CP(0x945D), + 0x66B2,CP(0x945E), + 0x66BF,CP(0x945F), + 0x66FA,CP(0x9460), + 0x66FB,CP(0x9347), + 0x670E,CP(0x9461), + 0x6766,CP(0x9463), + 0x67BB,CP(0x9464), + 0x67C0,CP(0x9466), + 0x6801,CP(0x9467), + 0x6844,CP(0x9468), + 0x6852,CP(0x9465), + 0x68C8,CP(0x9345), + 0x68CF,CP(0x9469), + 0x6968,CP(0x946B), + 0x6998,CP(0x946D), + 0x69E2,CP(0x946E), + 0x6A30,CP(0x946F), + 0x6A46,CP(0x9471), + 0x6A6B,CP(0x9470), + 0x6A73,CP(0x9472), + 0x6A7E,CP(0x9473), + 0x6AE2,CP(0x9474), + 0x6AE4,CP(0x9475), + 0x6BD6,CP(0x9476), + 0x6C3F,CP(0x9477), + 0x6C5C,CP(0x9478), + 0x6C6F,CP(0x947A), + 0x6C86,CP(0x9479), + 0x6CDA,CP(0x947B), + 0x6D04,CP(0x947C), + 0x6D6F,CP(0x947E), + 0x6D87,CP(0x947D), + 0x6D96,CP(0x9521), + 0x6DAC,CP(0x9522), + 0x6DCF,CP(0x9523), + 0x6DF2,CP(0x9525), + 0x6DF8,CP(0x9524), + 0x6DFC,CP(0x9526), + 0x6E27,CP(0x9529), + 0x6E39,CP(0x9527), + 0x6E3C,CP(0x952A), + 0x6E5C,CP(0x9528), + 0x6EBF,CP(0x952B), + 0x6F88,CP(0x952C), + 0x6FB5,CP(0x952D), + 0x6FF5,CP(0x952E), + 0x7005,CP(0x952F), + 0x7007,CP(0x9530), + 0x7028,CP(0x9531), + 0x7085,CP(0x9532), + 0x70AB,CP(0x9533), + 0x70BB,CP(0x9343), + 0x7104,CP(0x9535), + 0x710F,CP(0x9534), + 0x7146,CP(0x9537), + 0x7147,CP(0x9538), + 0x715C,CP(0x9536), + 0x71C1,CP(0x953A), + 0x71FE,CP(0x953B), + 0x72B1,CP(0x953C), + 0x72BE,CP(0x953D), + 0x7324,CP(0x953E), + 0x7377,CP(0x9540), + 0x73BD,CP(0x9541), + 0x73C9,CP(0x9542), + 0x73D2,CP(0x9545), + 0x73D6,CP(0x9543), + 0x73E3,CP(0x9544), + 0x73F5,CP(0x9547), + 0x7407,CP(0x9546), + 0x7426,CP(0x9548), + 0x7429,CP(0x954A), + 0x742A,CP(0x9549), + 0x742E,CP(0x954B), + 0x7462,CP(0x954C), + 0x7489,CP(0x954D), + 0x749F,CP(0x954E), + 0x7501,CP(0x954F), + 0x752F,CP(0x942A), + 0x756F,CP(0x9550), + 0x7682,CP(0x9551), + 0x769B,CP(0x9554), + 0x769C,CP(0x9552), + 0x769E,CP(0x9553), + 0x76A6,CP(0x9555), + 0x7746,CP(0x9557), + 0x7821,CP(0x9559), + 0x784E,CP(0x955A), + 0x7864,CP(0x955B), + 0x787A,CP(0x955C), + 0x7930,CP(0x955D), + 0x7994,CP(0x9561), + 0x799B,CP(0x9563), + 0x7AD1,CP(0x9564), + 0x7AE7,CP(0x9565), + 0x7AEB,CP(0x9567), + 0x7B9E,CP(0x9568), + 0x7D48,CP(0x956A), + 0x7D5C,CP(0x956B), + 0x7DA0,CP(0x956D), + 0x7DB7,CP(0x956C), + 0x7DD6,CP(0x956E), + 0x7E52,CP(0x956F), + 0x7E8A,CP(0x933D), + 0x7F47,CP(0x9570), + 0x7FA1,CP(0x9571), + 0x8301,CP(0x9573), + 0x8362,CP(0x9574), + 0x837F,CP(0x9575), + 0x83C7,CP(0x9576), + 0x83F6,CP(0x9577), + 0x8448,CP(0x9578), + 0x84B4,CP(0x9579), + 0x84DC,CP(0x9341), + 0x8553,CP(0x957A), + 0x8559,CP(0x957B), + 0x856B,CP(0x957C), + 0x85B0,CP(0x957E), + 0x8807,CP(0x9623), + 0x88F5,CP(0x9624), + 0x891C,CP(0x933E), + 0x8A12,CP(0x9625), + 0x8A37,CP(0x9626), + 0x8A79,CP(0x9627), + 0x8AA7,CP(0x9628), + 0x8ABE,CP(0x9629), + 0x8ADF,CP(0x962A), + 0x8AF6,CP(0x962C), + 0x8B53,CP(0x962D), + 0x8B7F,CP(0x962E), + 0x8CF0,CP(0x962F), + 0x8CF4,CP(0x9630), + 0x8D12,CP(0x9631), + 0x8D76,CP(0x9632), + 0x8ECF,CP(0x9634), + 0x9067,CP(0x9637), + 0x90DE,CP(0x9638), + 0x9115,CP(0x963A), + 0x9127,CP(0x963B), + 0x91D7,CP(0x963D), + 0x91DA,CP(0x963C), + 0x91DE,CP(0x963E), + 0x91E4,CP(0x9641), + 0x91E5,CP(0x9642), + 0x91ED,CP(0x963F), + 0x91EE,CP(0x9640), + 0x9206,CP(0x9643), + 0x920A,CP(0x9645), + 0x9210,CP(0x9644), + 0x9239,CP(0x964C), + 0x923A,CP(0x9646), + 0x923C,CP(0x9648), + 0x9240,CP(0x9647), + 0x924E,CP(0x9649), + 0x9251,CP(0x964B), + 0x9259,CP(0x964A), + 0x9267,CP(0x964D), + 0x9277,CP(0x964F), + 0x9278,CP(0x9650), + 0x9288,CP(0x9340), + 0x92A7,CP(0x964E), + 0x92D0,CP(0x9654), + 0x92D3,CP(0x9658), + 0x92D5,CP(0x9656), + 0x92D7,CP(0x9652), + 0x92D9,CP(0x9653), + 0x92E0,CP(0x9657), + 0x92E7,CP(0x9651), + 0x92F9,CP(0x9346), + 0x92FB,CP(0x965B), + 0x92FF,CP(0x965E), + 0x9302,CP(0x9660), + 0x931D,CP(0x965F), + 0x931E,CP(0x965D), + 0x9321,CP(0x965A), + 0x9325,CP(0x9659), + 0x9348,CP(0x933F), + 0x9357,CP(0x9662), + 0x9370,CP(0x9661), + 0x93A4,CP(0x9663), + 0x93C6,CP(0x9664), + 0x93DE,CP(0x9665), + 0x93F8,CP(0x9666), + 0x9431,CP(0x9667), + 0x9445,CP(0x9668), + 0x9448,CP(0x9669), + 0x9592,CP(0x966A), + 0x969D,CP(0x966D), + 0x96AF,CP(0x966E), + 0x9733,CP(0x966F), + 0x973B,CP(0x9670), + 0x9743,CP(0x9671), + 0x974D,CP(0x9672), + 0x974F,CP(0x9673), + 0x9751,CP(0x9674), + 0x9755,CP(0x9675), + 0x9857,CP(0x9676), + 0x9865,CP(0x9677), + 0x9927,CP(0x967A), + 0x999E,CP(0x967C), + 0x9A4E,CP(0x967D), + 0x9AD9,CP(0x967E), + 0x9ADC,CP(0x9721), + 0x9B72,CP(0x9723), + 0x9B75,CP(0x9722), + 0x9B8F,CP(0x9724), + 0x9BB1,CP(0x9725), + 0x9BBB,CP(0x9726), + 0x9C00,CP(0x9727), + 0x9D6B,CP(0x9729), + 0x9D70,CP(0x9728), + 0x9E19,CP(0x972B), + 0x9ED1,CP(0x972C), + 0xF929,CP(0x9462), + 0xF9DC,CP(0x966B), + 0xFA0E,CP(0x9370), + 0xFA0F,CP(0x937B), + 0xFA10,CP(0x937C), + 0xFA11,CP(0x9433), + 0xFA12,CP(0x945A), + 0xFA13,CP(0x946A), + 0xFA14,CP(0x946C), + 0xFA15,CP(0x9539), + 0xFA16,CP(0x953F), + 0xFA17,CP(0x9556), + 0xFA18,CP(0x955E), + 0xFA19,CP(0x955F), + 0xFA1A,CP(0x9560), + 0xFA1B,CP(0x9562), + 0xFA1C,CP(0x9566), + 0xFA1D,CP(0x9569), + 0xFA1E,CP(0x9572), + 0xFA1F,CP(0x957D), + 0xFA20,CP(0x9621), + 0xFA21,CP(0x9622), + 0xFA22,CP(0x962B), + 0xFA23,CP(0x9633), + 0xFA24,CP(0x9635), + 0xFA25,CP(0x9636), + 0xFA26,CP(0x9639), + 0xFA27,CP(0x9655), + 0xFA28,CP(0x965C), + 0xFA29,CP(0x966C), + 0xFA2A,CP(0x9678), + 0xFA2B,CP(0x9679), + 0xFA2C,CP(0x967B), + 0xFA2D,CP(0x972A), + 0xFF02,CP(0x9338), + 0xFF07,CP(0x9337), + 0xFFE4,CP(0x9336), +}; + + #undef J1 #undef J2 #undef J3 +#undef CP -static const mbfl_lookup_table lookup_ascii_ucs = { +static mbfl_convert_table lookup_ascii_ucs = { + MBFL_TABLE_TYPE_LOOKUP, "ja_ascii_ucs", table_ascii_ucs, sizeof(table_ascii_ucs)/sizeof(int), 0, sizeof(table_ascii_ucs)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_jisx0201_ucs_gl = { +static mbfl_convert_table lookup_jisx0201_ucs_gl = { + MBFL_TABLE_TYPE_LOOKUP, "ja_jisx0201_ucs_gl", table_jisx0201_ucs_gl, sizeof(table_jisx0201_ucs_gl)/sizeof(int), MBFL_WCSPLANE_JIS0201 + 0x20, MBFL_WCSPLANE_JIS0201 + 0x20 + sizeof(table_jisx0201_ucs_gl)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_jisx0201_ucs_gr = { +static mbfl_convert_table lookup_jisx0201_ucs_gr = { + MBFL_TABLE_TYPE_LOOKUP, "ja_jisx0201_ucs_gr", table_jisx0201_ucs_gr, sizeof(table_jisx0201_ucs_gr)/sizeof(int), MBFL_WCSPLANE_JIS0201 + 0xa0, MBFL_WCSPLANE_JIS0201 + 0xa0 + sizeof(table_jisx0201_ucs_gr)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_jisx0208_ucs_1ku = { +static mbfl_convert_table lookup_jisx0201_ucs_ascii = { + MBFL_TABLE_TYPE_LOOKUP, + "ja_jisx0201_ucs_ascii", + table_ascii_ucs, + sizeof(table_ascii_ucs)/sizeof(int), + MBFL_WCSPLANE_JIS0201, + MBFL_WCSPLANE_JIS0201 + sizeof(table_ascii_ucs)/sizeof(int), + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_table lookup_jisx0208_ucs_1ku = { + MBFL_TABLE_TYPE_LOOKUP, "ja_jisx0208_ucs_1ku", table_jisx0208_ucs_1ku, sizeof(table_jisx0208_ucs_1ku)/sizeof(int), MBFL_WCSPLANE_JIS0208, MBFL_WCSPLANE_JIS0208 + sizeof(table_jisx0208_ucs_1ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_jisx0208_ucs_16ku = { +static mbfl_convert_table lookup_jisx0208_ucs_16ku = { + MBFL_TABLE_TYPE_LOOKUP, "ja_jisx0208_ucs_16ku", table_jisx0208_ucs_16ku, sizeof(table_jisx0208_ucs_16ku)/sizeof(int), MBFL_WCSPLANE_JIS0208 + (16 - 1)*94, MBFL_WCSPLANE_JIS0208 + (16 - 1)*94 + sizeof(table_jisx0208_ucs_16ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_1ku = { +static mbfl_convert_table lookup_cp932_ucs_1ku = { + MBFL_TABLE_TYPE_LOOKUP, "ja_cp932_ucs_1ku", table_cp932_ucs_1ku, sizeof(table_cp932_ucs_1ku)/sizeof(int), - MBFL_WCSPLANE_JIS0208, - MBFL_WCSPLANE_JIS0208 + sizeof(table_cp932_ucs_1ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + MBFL_WCSPLANE_WINCP932, + MBFL_WCSPLANE_WINCP932 + sizeof(table_cp932_ucs_1ku)/sizeof(int), + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_table lookup_cp932_ucs_16ku = { + MBFL_TABLE_TYPE_LOOKUP, + "ja_cp932_ucs_16ku", + table_jisx0208_ucs_16ku, + sizeof(table_jisx0208_ucs_16ku)/sizeof(int), + MBFL_WCSPLANE_WINCP932 + (16 - 1)*94, + MBFL_WCSPLANE_WINCP932 + (16 - 1)*94 + sizeof(table_jisx0208_ucs_16ku)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_13ku = { +static mbfl_convert_table lookup_cp932_ucs_13ku = { /* vender ext1 */ + MBFL_TABLE_TYPE_LOOKUP, "ja_cp932_ucs_13ku", table_cp932_ucs_13ku, sizeof(table_cp932_ucs_13ku)/sizeof(int), - MBFL_WCSPLANE_JIS0208 + (13 - 1)*94, - MBFL_WCSPLANE_JIS0208 + (13 - 1)*94 + sizeof(table_cp932_ucs_13ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + MBFL_WCSPLANE_WINCP932 + (13 - 1)*94, + MBFL_WCSPLANE_WINCP932 + (13 - 1)*94 + sizeof(table_cp932_ucs_13ku)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_89ku = { - "ja_cp932_ucs_13ku", +static mbfl_convert_table lookup_cp932_ucs_89ku = { /* vender ext2 */ + MBFL_TABLE_TYPE_LOOKUP, + "ja_cp932_ucs_89ku", table_cp932_ucs_89ku, sizeof(table_cp932_ucs_89ku)/sizeof(int), - MBFL_WCSPLANE_JIS0208 + (89 - 1)*94, - MBFL_WCSPLANE_JIS0208 + (89 - 1)*94 + sizeof(table_cp932_ucs_89ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + MBFL_WCSPLANE_WINCP932 + (89 - 1)*94, + MBFL_WCSPLANE_WINCP932 + (89 - 1)*94 + sizeof(table_cp932_ucs_89ku)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_95ku = { /* user1 */ +static mbfl_convert_table lookup_cp932_ucs_95ku = { /* user1 */ + MBFL_TABLE_TYPE_LOOKUP, "ja_cp932_ucs_95ku", table_cp932_ucs_95ku, sizeof(table_cp932_ucs_95ku)/sizeof(int), - MBFL_WCSPLANE_JIS0208 + (95 - 1)*94, - MBFL_WCSPLANE_JIS0208 + (95 - 1)*94 + sizeof(table_cp932_ucs_95ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + MBFL_WCSPLANE_WINCP932 + (95 - 1)*94, + MBFL_WCSPLANE_WINCP932 + (95 - 1)*94 + sizeof(table_cp932_ucs_95ku)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_95ku_euc = { /* user1 */ +static mbfl_convert_table lookup_cp932_ucs_95ku_euc = { /* user1 */ + MBFL_TABLE_TYPE_LOOKUP, "ja_cp932_ucs_95ku_euc", table_cp932_ucs_95ku, sizeof(table_cp932_ucs_95ku)/sizeof(int), - MBFL_WCSPLANE_JIS0208 + (85 - 1)*94, - MBFL_WCSPLANE_JIS0208 + (85 - 1)*94 + sizeof(table_cp932_ucs_95ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + MBFL_WCSPLANE_WINCP932 + (85 - 1)*94, + MBFL_WCSPLANE_WINCP932 + (85 - 1)*94 + sizeof(table_cp932_ucs_95ku)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_105ku = { /* user2 */ +static mbfl_convert_table lookup_cp932_ucs_105ku = { /* user2 */ + MBFL_TABLE_TYPE_LOOKUP, "ja_cp932_ucs_105ku", table_cp932_ucs_105ku, sizeof(table_cp932_ucs_105ku)/sizeof(int), - MBFL_WCSPLANE_JIS0208 + (105 - 1)*94, - MBFL_WCSPLANE_JIS0208 + (105 - 1)*94 + sizeof(table_cp932_ucs_105ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + MBFL_WCSPLANE_WINCP932 + (105 - 1)*94, + MBFL_WCSPLANE_WINCP932 + (105 - 1)*94 + sizeof(table_cp932_ucs_105ku)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_105ku_euc = { /* user2 */ +static mbfl_convert_table lookup_cp932_ucs_105ku_euc = { /* user2 */ + MBFL_TABLE_TYPE_LOOKUP, "ja_cp932_ucs_105ku_euc", table_cp932_ucs_105ku, sizeof(table_cp932_ucs_105ku)/sizeof(int), MBFL_WCSPLANE_JIS0212 + (85 - 1)*94, MBFL_WCSPLANE_JIS0212 + (85 - 1)*94 + sizeof(table_cp932_ucs_105ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_cp932_ucs_115ku = { +static mbfl_convert_table lookup_cp932_ucs_115ku = { /* vender ext3 */ + MBFL_TABLE_TYPE_LOOKUP, "ja_cp932_ucs_115ku", table_cp932_ucs_115ku, sizeof(table_cp932_ucs_115ku)/sizeof(int), - MBFL_WCSPLANE_JIS0208 + (115 - 1)*94, - MBFL_WCSPLANE_JIS0208 + (115 - 1)*94 + sizeof(table_cp932_ucs_115ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + MBFL_WCSPLANE_WINCP932 + (115 - 1)*94, + MBFL_WCSPLANE_WINCP932 + (115 - 1)*94 + sizeof(table_cp932_ucs_115ku)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_jisx0212_ucs_1ku = { +static mbfl_convert_table lookup_cp932_ucs_115ku_euc = { /* vender ext3 */ + MBFL_TABLE_TYPE_LOOKUP, + "ja_cp932_ucs_115ku_euc", + table_cp932_ucs_115ku_euc, + sizeof(table_cp932_ucs_115ku_euc)/sizeof(int), + MBFL_WCSPLANE_JIS0212 + (83 - 1)*94, + MBFL_WCSPLANE_JIS0212 + (83 - 1)*94 + sizeof(table_cp932_ucs_115ku_euc)/sizeof(int), + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_table lookup_jisx0212_ucs_1ku = { + MBFL_TABLE_TYPE_LOOKUP, "ja_jisx0212_ucs_1ku", table_jisx0212_ucs_1ku, sizeof(table_jisx0212_ucs_1ku)/sizeof(int), MBFL_WCSPLANE_JIS0212, MBFL_WCSPLANE_JIS0212+ sizeof(table_jisx0212_ucs_1ku)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_ucs_jis_a1 = { +static mbfl_convert_table lookup_ucs_jis_a1 = { + MBFL_TABLE_TYPE_LOOKUP, "ja_ucs_jis_a1", table_ucs_jis_a1, sizeof(table_ucs_jis_a1)/sizeof(int), 0, sizeof(table_ucs_jis_a1)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_ucs_jis_a2 = { +static mbfl_convert_table lookup_ucs_jis_a2 = { + MBFL_TABLE_TYPE_LOOKUP, "ja_ucs_jis_a2", table_ucs_jis_a2, sizeof(table_ucs_jis_a2)/sizeof(int), 0x2000, 0x2000 + sizeof(table_ucs_jis_a2)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_ucs_jis_a3 = { +static mbfl_convert_table lookup_ucs_jis_a3 = { + MBFL_TABLE_TYPE_LOOKUP, "ja_ucs_jis_a3", table_ucs_jis_a3, sizeof(table_ucs_jis_a3)/sizeof(int), 0x3000, 0x3000 + sizeof(table_ucs_jis_a3)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_ucs_jis_i = { +static mbfl_convert_table lookup_ucs_jis_i = { + MBFL_TABLE_TYPE_LOOKUP, "ja_ucs_jis_i", table_ucs_jis_i, sizeof(table_ucs_jis_i)/sizeof(int), 0x4e00, 0x4e00 + sizeof(table_ucs_jis_i)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_ucs_jis_r1 = { +static mbfl_convert_table lookup_ucs_jis_r = { + MBFL_TABLE_TYPE_LOOKUP, "ja_ucs_jis_r1", table_ucs_jis_r1, sizeof(table_ucs_jis_r1)/sizeof(int), - 0xf900, - 0xf900 + sizeof(table_ucs_jis_r1)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, + 0xff00, + 0xff00 + sizeof(table_ucs_jis_r1)/sizeof(int), MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table lookup_ucs_jis_r2 = { - "ja_ucs_jis_r2", - table_ucs_jis_r2, - sizeof(table_ucs_jis_r2)/sizeof(int), - 0xff00, - 0xff00 + sizeof(table_ucs_jis_r2)/sizeof(int), - MBFL_MEMORY_TYPE_CONST, +static mbfl_convert_table lookup_ucs_cp932_user_euc = { + MBFL_TABLE_TYPE_LOOKUP, + "ja_ucs_cp932_user_euc", + table_ucs_cp932_user_euc, + sizeof(table_ucs_cp932_user_euc)/sizeof(int), + 0xe000, + 0xe000 + sizeof(table_ucs_cp932_user_euc)/sizeof(int), + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_table lookup_ucs_cp932_user_sjis = { + MBFL_TABLE_TYPE_LOOKUP, + "ja_ucs_cp932_user_sjis", + table_ucs_cp932_user_sjis, + sizeof(table_ucs_cp932_user_sjis)/sizeof(int), + 0xe000, + 0xe000 + sizeof(table_ucs_cp932_user_sjis)/sizeof(int), + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_table index_ucs_cp932_ext_euc = { + MBFL_TABLE_TYPE_SORT, + "ja_ucs_cp932_ext_euc", + table_ucs_cp932_ext_euc, + sizeof(table_ucs_cp932_ext_euc)/sizeof(int), + 0, + 0, + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_table index_ucs_cp932_ext_sjis = { + MBFL_TABLE_TYPE_SORT, + "ja_ucs_cp932_ext_sjis", + table_ucs_cp932_ext_sjis, + sizeof(table_ucs_cp932_ext_sjis)/sizeof(int), + 0, + 0, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_lookup_table *lookup_list_eucjp_wc[] = { + +static mbfl_convert_table *table_list_eucjp_wc[] = { &lookup_ascii_ucs, &lookup_jisx0208_ucs_1ku, &lookup_jisx0208_ucs_16ku, @@ -7483,7 +8707,7 @@ NULL }; -static const mbfl_lookup_table *lookup_list_sjis_wc[] = { +static mbfl_convert_table *table_list_sjis_wc[] = { &lookup_ascii_ucs, &lookup_jisx0208_ucs_1ku, &lookup_jisx0208_ucs_16ku, @@ -7491,7 +8715,7 @@ NULL }; -static const mbfl_lookup_table *lookup_list_jis_wc[] = { +static mbfl_convert_table *table_list_jis_wc[] = { &lookup_ascii_ucs, &lookup_jisx0208_ucs_1ku, &lookup_jisx0208_ucs_16ku, @@ -7501,23 +8725,24 @@ NULL }; -static const mbfl_lookup_table *lookup_list_eucjpwin_wc[] = { +static mbfl_convert_table *table_list_eucjpwin_wc[] = { &lookup_ascii_ucs, &lookup_cp932_ucs_1ku, + &lookup_cp932_ucs_16ku, &lookup_jisx0201_ucs_gr, - &lookup_jisx0208_ucs_16ku, &lookup_cp932_ucs_13ku, &lookup_cp932_ucs_95ku_euc, &lookup_cp932_ucs_105ku_euc, + &lookup_cp932_ucs_115ku_euc, &lookup_jisx0212_ucs_1ku, NULL }; -static const mbfl_lookup_table *lookup_list_sjiswin_wc[] = { +static mbfl_convert_table *table_list_sjiswin_wc[] = { &lookup_ascii_ucs, &lookup_cp932_ucs_1ku, + &lookup_cp932_ucs_16ku, &lookup_jisx0201_ucs_gr, - &lookup_jisx0208_ucs_16ku, &lookup_cp932_ucs_13ku, &lookup_cp932_ucs_95ku, &lookup_cp932_ucs_105ku, @@ -7526,23 +8751,45 @@ NULL }; -static const mbfl_lookup_table *lookup_list_wc_jis[] = { +static mbfl_convert_table *table_list_wc_jis[] = { + &lookup_ucs_jis_a1, + &lookup_ucs_jis_a2, + &lookup_ucs_jis_a3, + &lookup_ucs_jis_i, + &lookup_ucs_jis_r, + NULL +}; + +static mbfl_convert_table *table_list_wc_eucjpwin[] = { &lookup_ucs_jis_a1, + &index_ucs_cp932_ext_euc, &lookup_ucs_jis_a2, &lookup_ucs_jis_a3, &lookup_ucs_jis_i, - &lookup_ucs_jis_r1, - &lookup_ucs_jis_r2, + &lookup_ucs_jis_r, + &lookup_ucs_cp932_user_euc, NULL }; +static mbfl_convert_table *table_list_wc_sjiswin[] = { + &lookup_ucs_jis_a1, + &index_ucs_cp932_ext_sjis, + &lookup_ucs_jis_a2, + &lookup_ucs_jis_a3, + &lookup_ucs_jis_i, + &lookup_ucs_jis_r, + &lookup_ucs_cp932_user_sjis, + NULL +}; -const mbfl_lookup_table * mbfl_lookup_table_list_ja[] = { + +mbfl_convert_table * mbfl_convert_table_list_ja[] = { &lookup_ascii_ucs, &lookup_jisx0208_ucs_1ku, &lookup_jisx0208_ucs_16ku, &lookup_jisx0201_ucs_gl, &lookup_jisx0201_ucs_gr, + &lookup_jisx0201_ucs_ascii, &lookup_jisx0212_ucs_1ku, &lookup_cp932_ucs_1ku, &lookup_cp932_ucs_13ku, @@ -7552,35 +8799,43 @@ &lookup_cp932_ucs_115ku, &lookup_cp932_ucs_95ku_euc, &lookup_cp932_ucs_105ku_euc, + &lookup_cp932_ucs_115ku_euc, &lookup_ucs_jis_a1, &lookup_ucs_jis_a2, &lookup_ucs_jis_a3, &lookup_ucs_jis_i, - &lookup_ucs_jis_r1, - &lookup_ucs_jis_r2, + &lookup_ucs_jis_r, + &lookup_ucs_cp932_user_euc, + &lookup_ucs_cp932_user_sjis, + &index_ucs_cp932_ext_euc, + &index_ucs_cp932_ext_sjis, NULL }; -#define LKUP_EUCJP_WC lookup_list_eucjp_wc -#define LKUP_SJIS_WC lookup_list_sjis_wc -#define LKUP_JIS_WC lookup_list_jis_wc -#define LKUP_EUCJPWIN_WC lookup_list_eucjpwin_wc -#define LKUP_SJISWIN_WC lookup_list_sjiswin_wc -#define LKUP_WC_JIS lookup_list_wc_jis +#define TABLE_EUCJP_WCHAR table_list_eucjp_wc +#define TABLE_SJIS_WCHAR table_list_sjis_wc +#define TABLE_JIS_WCHAR table_list_jis_wc +#define TABLE_EUCJPWIN_WCHAR table_list_eucjpwin_wc +#define TABLE_SJISWIN_WCHAR table_list_sjiswin_wc +#define TABLE_WCHAR_JIS table_list_wc_jis +#define TABLE_WCHAR_EUCJPWIN table_list_wc_eucjpwin +#define TABLE_WCHAR_SJISWIN table_list_wc_sjiswin #else /* not HAVE_MBSTR_JA */ -const mbfl_lookup_table * mbfl_lookup_table_list_ja[] = { +mbfl_convert_table * mbfl_convert_table_list_ja[] = { NULL }; -#define LKUP_EUCJP_WC NULL -#define LKUP_SJIS_WC NULL -#define LKUP_JIS_WC NULL -#define LKUP_EUCJPWIN_WC NULL -#define LKUP_SJISWIN_WC NULL -#define LKUP_WC_JIS NULL +#define TABLE_EUCJP_WCHAR mbfl_convert_table_list_empty +#define TABLE_SJIS_WCHAR mbfl_convert_table_list_empty +#define TABLE_JIS_WCHAR mbfl_convert_table_list_empty +#define TABLE_EUCJPWIN_WCHAR mbfl_convert_table_list_empty +#define TABLE_SJISWIN_WCHAR mbfl_convert_table_list_empty +#define TABLE_WCHAR_JIS mbfl_convert_table_list_empty +#define TABLE_WCHAR_EUCJPWIN mbfl_convert_table_list_empty +#define TABLE_WCHAR_SJISWIN mbfl_convert_table_list_empty #endif @@ -7588,7 +8843,7 @@ /* * convert filter function */ -static const mbfl_convert_function cvfn_eucjp_wchar = { +static mbfl_convert_function cvfn_eucjp_wchar = { "eucjp_wchar", mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, @@ -7597,7 +8852,7 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_function cvfn_wchar_eucjp = { +static mbfl_convert_function cvfn_wchar_eucjp = { "wchar_eucjp", mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, @@ -7606,7 +8861,7 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_function cvfn_sjis_wchar = { +static mbfl_convert_function cvfn_sjis_wchar = { "sjis_wchar", mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, @@ -7615,7 +8870,7 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_function cvfn_wchar_sjis = { +static mbfl_convert_function cvfn_wchar_sjis = { "wchar_sjis", mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, @@ -7624,7 +8879,43 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_function cvfn_jis_wchar = { +static mbfl_convert_function cvfn_eucjpwin_wchar = { + "eucjpwin_wchar", + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + filt_conv_eucjpwin_wchar, + mbfl_filt_conv_common_flush, + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_function cvfn_wchar_eucjpwin = { + "wchar_eucjpwin", + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + filt_conv_wchar_eucjpwin, + mbfl_filt_conv_common_flush, + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_function cvfn_sjiswin_wchar = { + "sjiswin_wchar", + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + filt_conv_sjiswin_wchar, + mbfl_filt_conv_common_flush, + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_function cvfn_wchar_sjiswin = { + "wchar_sjiswin", + mbfl_filt_conv_common_ctor, + mbfl_filt_conv_common_dtor, + filt_conv_wchar_sjiswin, + mbfl_filt_conv_common_flush, + MBFL_MEMORY_TYPE_CONST +}; + +static mbfl_convert_function cvfn_jis_wchar = { "jis_wchar", mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, @@ -7633,7 +8924,7 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_function cvfn_wchar_jis = { +static mbfl_convert_function cvfn_wchar_jis = { "wchar_jis", mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, @@ -7642,11 +8933,11 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_function cvfn_wchar_2022jp = { +static mbfl_convert_function cvfn_wchar_2022jp = { "wchar_2022jp", mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, - mbfl_filt_conv_wchar_2022jp, + filt_conv_wchar_2022jp, filt_conv_any_jis_flush, MBFL_MEMORY_TYPE_CONST }; @@ -7655,123 +8946,111 @@ /* * convert filter collection */ -static const mbfl_convert_collection conv_eucjp_wchar = { +static mbfl_convert_collection conv_eucjp_wchar = { "eucjp_wchar", php_mb_encid_euc_jp, php_mb_encid_wchar, &cvfn_eucjp_wchar, - NULL, - LKUP_EUCJP_WC, + TABLE_EUCJP_WCHAR, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_wchar_eucjp = { +static mbfl_convert_collection conv_wchar_eucjp = { "wchar_eucjp", php_mb_encid_wchar, php_mb_encid_euc_jp, &cvfn_wchar_eucjp, - NULL, - LKUP_WC_JIS, + TABLE_WCHAR_JIS, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_sjis_wchar = { +static mbfl_convert_collection conv_sjis_wchar = { "sjis_wchar", php_mb_encid_sjis, php_mb_encid_wchar, &cvfn_sjis_wchar, - NULL, - LKUP_SJIS_WC, + TABLE_SJIS_WCHAR, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_wchar_sjis = { +static mbfl_convert_collection conv_wchar_sjis = { "wchar_sjis", php_mb_encid_wchar, php_mb_encid_sjis, &cvfn_wchar_sjis, - NULL, - LKUP_WC_JIS, + TABLE_WCHAR_JIS, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_jis_wchar = { +static mbfl_convert_collection conv_jis_wchar = { "jis_wchar", php_mb_encid_jis, php_mb_encid_wchar, &cvfn_jis_wchar, - NULL, - LKUP_JIS_WC, + TABLE_JIS_WCHAR, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_wchar_jis = { +static mbfl_convert_collection conv_wchar_jis = { "wchar_jis", php_mb_encid_wchar, php_mb_encid_jis, &cvfn_wchar_jis, - NULL, - LKUP_WC_JIS, + TABLE_WCHAR_JIS, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_2022jp_wchar = { +static mbfl_convert_collection conv_2022jp_wchar = { "2022jp_wchar", php_mb_encid_2022jp, php_mb_encid_wchar, &cvfn_jis_wchar, - NULL, - LKUP_JIS_WC, + TABLE_JIS_WCHAR, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_wchar_2022jp = { +static mbfl_convert_collection conv_wchar_2022jp = { "wchar_2022jp", php_mb_encid_wchar, php_mb_encid_2022jp, &cvfn_wchar_2022jp, - NULL, - LKUP_WC_JIS, + TABLE_WCHAR_JIS, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_eucjpwin_wchar = { +static mbfl_convert_collection conv_eucjpwin_wchar = { "eucjpwin_wchar", php_mb_encid_eucjp_win, php_mb_encid_wchar, - &cvfn_eucjp_wchar, - NULL, - LKUP_EUCJPWIN_WC, + &cvfn_eucjpwin_wchar, + TABLE_EUCJPWIN_WCHAR, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_wchar_eucjpwin = { +static mbfl_convert_collection conv_wchar_eucjpwin = { "wchar_eucjpwin", php_mb_encid_wchar, php_mb_encid_eucjp_win, - &cvfn_wchar_eucjp, - NULL, - LKUP_WC_JIS, + &cvfn_wchar_eucjpwin, + TABLE_WCHAR_EUCJPWIN, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_sjiswin_wchar = { +static mbfl_convert_collection conv_sjiswin_wchar = { "sjiswin_wchar", php_mb_encid_sjis_win, php_mb_encid_wchar, - &cvfn_sjis_wchar, - NULL, - LKUP_SJISWIN_WC, + &cvfn_sjiswin_wchar, + TABLE_SJISWIN_WCHAR, MBFL_MEMORY_TYPE_CONST }; -static const mbfl_convert_collection conv_wchar_sjiswin = { +static mbfl_convert_collection conv_wchar_sjiswin = { "wchar_sjiswin", php_mb_encid_wchar, php_mb_encid_sjis_win, - &cvfn_wchar_sjis, - NULL, - LKUP_WC_JIS, + &cvfn_wchar_sjiswin, + TABLE_WCHAR_SJISWIN, MBFL_MEMORY_TYPE_CONST }; @@ -7780,7 +9059,8 @@ /* * identify filter function table */ -static const mbfl_identify_function ident_func_eucjp = { +static mbfl_identify_function ident_func_eucjp = { + "eucjp", php_mb_encid_euc_jp, mbfl_filt_ident_common_ctor, mbfl_filt_ident_common_dtor, @@ -7788,7 +9068,8 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_identify_function ident_func_eucjpwin = { +static mbfl_identify_function ident_func_eucjpwin = { + "eucjpwin", php_mb_encid_eucjp_win, mbfl_filt_ident_common_ctor, mbfl_filt_ident_common_dtor, @@ -7796,7 +9077,8 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_identify_function ident_func_sjis = { +static mbfl_identify_function ident_func_sjis = { + "sjis", php_mb_encid_sjis, mbfl_filt_ident_common_ctor, mbfl_filt_ident_common_dtor, @@ -7804,7 +9086,8 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_identify_function ident_func_sjiswin = { +static mbfl_identify_function ident_func_sjiswin = { + "sjiswin", php_mb_encid_sjis_win, mbfl_filt_ident_common_ctor, mbfl_filt_ident_common_dtor, @@ -7812,7 +9095,8 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_identify_function ident_func_jis = { +static mbfl_identify_function ident_func_jis = { + "jis", php_mb_encid_jis, mbfl_filt_ident_common_ctor, mbfl_filt_ident_common_dtor, @@ -7820,7 +9104,8 @@ MBFL_MEMORY_TYPE_CONST }; -static const mbfl_identify_function ident_func_2022jp = { +static mbfl_identify_function ident_func_2022jp = { + "iso2022jp", php_mb_encid_2022jp, mbfl_filt_ident_common_ctor, mbfl_filt_ident_common_dtor, @@ -7833,20 +9118,22 @@ /* * filter list */ -#if 0 -const mbfl_convert_function * mbfl_convert_function_list_ja[] = { +mbfl_convert_function * mbfl_convert_function_list_ja[] = { &cvfn_eucjp_wchar, &cvfn_wchar_eucjp, &cvfn_sjis_wchar, &cvfn_wchar_sjis, + &cvfn_eucjpwin_wchar, + &cvfn_wchar_eucjpwin, + &cvfn_sjiswin_wchar, + &cvfn_wchar_sjiswin, &cvfn_jis_wchar, &cvfn_wchar_jis, &cvfn_wchar_2022jp, NULL }; -#endif -const mbfl_convert_collection * mbfl_convert_collection_list_ja[] = { +mbfl_convert_collection * mbfl_convert_collection_list_ja[] = { &conv_eucjp_wchar, &conv_wchar_eucjp, &conv_sjis_wchar, @@ -7863,7 +9150,7 @@ }; -const mbfl_identify_function * mbfl_identify_function_list_ja[] = { +mbfl_identify_function * mbfl_identify_function_list_ja[] = { &ident_func_eucjp, &ident_func_sjis, &ident_func_eucjpwin,