#include "map/jisx0201k_ucs.map"
#include "map/iso88591_ucs.map"
#include "map/iso88592_ucs.map"
#include "map/iso88593_ucs.map"
#include "map/iso88594_ucs.map"
#include "map/iso88595_ucs.map"
#include "map/iso88596_ucs.map"
#include "map/iso88597_ucs.map"
#include "map/iso88598_ucs.map"
#include "map/iso88599_ucs.map"
#include "map/iso885910_ucs.map"
#include "map/iso885911_ucs.map"
#include "map/iso885913_ucs.map"
#include "map/iso885914_ucs.map"
#include "map/iso885915_ucs.map"
#include "map/iso885916_ucs.map"
#include "map/cp437_ucs.map"
#include "map/cp737_ucs.map"
#include "map/cp775_ucs.map"
#include "map/cp850_ucs.map"
#include "map/cp852_ucs.map"
#include "map/cp855_ucs.map"
#include "map/cp856_ucs.map"
#include "map/cp857_ucs.map"
#include "map/cp860_ucs.map"
#include "map/cp861_ucs.map"
#include "map/cp862_ucs.map"
#include "map/cp863_ucs.map"
#include "map/cp864_ucs.map"
#include "map/cp865_ucs.map"
#include "map/cp866_ucs.map"
#include "map/cp869_ucs.map"
#include "map/cp874_ucs.map"
#include "map/cp1006_ucs.map"
#include "map/cp1250_ucs.map"
#include "map/cp1251_ucs.map"
#include "map/cp1252_ucs.map"
#include "map/cp1253_ucs.map"
#include "map/cp1254_ucs.map"
#include "map/cp1255_ucs.map"
#include "map/cp1256_ucs.map"
#include "map/cp1257_ucs.map"
#include "map/cp1258_ucs.map"
#include "map/tcvn5712_ucs.map"
#include "map/viscii11_ucs.map"
#include "map/vps_ucs.map"
#include "map/koi8r_ucs.map"
#include "map/koi8u_ucs.map"
#include "map/nextstep_ucs.map"
#include "map/jisx0208x0212x0213_ucs.map"
#include "map/jisx0213_ucs_p2.map"
#include "map/gb2312_ucs.map"
#include "map/cns11643_ucs.map"
#include "map/ksx1001_ucs.map"
#include "map/big5_ucs.map"
#include "map/hkscs_ucs.map"
#include "map/hkscs_ucs_p2.map"
#include "map/gb12345_ucs.map"
#include "map/johab_ucs.map"
#include "map/sjis_ext_ucs.map"
#include "map/gbk_ucs.map"
#include "map/uhc_ucs.map"
static wc_uint16 *cs94_ucs_map[] = {
NULL, /* 40 */
NULL, /* 41 */
NULL, /* 42 (US_ASCII) */
NULL, /* 43 */
NULL, /* 44 */
NULL, /* 45 */
NULL, /* 46 */
NULL, /* 47 */
NULL, /* 48 */
jisx0201k_ucs_map, /* 49 (JIS X 0201 Kana) */
NULL, /* 4A (JIS X 0201) */
NULL, /* 4B */
NULL, /* 4C */
NULL, /* 4D */
NULL, /* 4E */
NULL, /* 4F */
NULL, /* 50 */
NULL, /* 51 */
NULL, /* 52 */
NULL, /* 53 */
NULL, /* 54 (GB 1988) */
};
static wc_uint16 *cs96_ucs_map[] = {
NULL, /* 40 */
iso88591_ucs_map, /* 41 (ISO 8859-1) */
iso88592_ucs_map, /* 42 (ISO 8859-2) */
iso88593_ucs_map, /* 43 (ISO 8859-3) */
iso88594_ucs_map, /* 44 (ISO 8859-4) */
NULL, /* 45 */
iso88597_ucs_map, /* 46 (ISO 8859-7) */
iso88596_ucs_map, /* 47 (ISO 8859-6) */
iso88598_ucs_map, /* 48 (ISO 8859-8) */
NULL, /* 49 */
NULL, /* 4A */
NULL, /* 4B */
iso88595_ucs_map, /* 4C (ISO 8859-5) */
iso88599_ucs_map, /* 4D (ISO 8859-9) */
NULL, /* 4E */
NULL, /* 4F */
NULL, /* 50 */
NULL, /* 51 */
NULL, /* 52 */
NULL, /* 53 */
iso885911_ucs_map, /* 54 (ISO 8859-11, TIS 620) */
NULL, /* 55 */
iso885910_ucs_map, /* 56 (ISO 8859-10) */
NULL, /* 57 */
NULL, /* 58 */
iso885913_ucs_map, /* 59 (ISO 8859-13) */
NULL, /* 5A */
NULL, /* 5B */
NULL, /* 5C */
NULL, /* 5D */
NULL, /* 5E */
iso885914_ucs_map, /* 5F (ISO 8859-14) */
NULL, /* 60 */
NULL, /* 61 */
iso885915_ucs_map, /* 62 (ISO 8859-15) */
NULL, /* 63 */
NULL, /* 64 */
NULL, /* 65 */
iso885916_ucs_map, /* 66 (ISO 8859-16) */
};
static wc_uint16 **cs942_ucs_map;
static wc_uint16 *pcs_ucs_map[] = {
cp437_ucs_map,
cp737_ucs_map,
cp775_ucs_map,
cp850_ucs_map,
cp852_ucs_map,
cp855_ucs_map,
cp856_ucs_map,
cp857_ucs_map,
cp860_ucs_map,
cp861_ucs_map,
cp862_ucs_map,
cp863_ucs_map,
cp864_ucs_map,
cp865_ucs_map,
cp866_ucs_map,
cp869_ucs_map,
cp874_ucs_map,
cp1006_ucs_map,
cp1250_ucs_map,
cp1251_ucs_map,
cp1252_ucs_map,
cp1253_ucs_map,
cp1254_ucs_map,
cp1255_ucs_map,
cp1256_ucs_map,
cp1257_ucs_map,
cp1258_ucs_map,
NULL,
tcvn57121_ucs_map,
tcvn57122_ucs_map,
NULL,
viscii111_ucs_map,
viscii112_ucs_map,
vps1_ucs_map,
vps2_ucs_map,
koi8r_ucs_map,
koi8u_ucs_map,
nextstep_ucs_map,
NULL,
NULL, /* (Raw) */
};
static wc_uint32 *pcs_ucs_map_size[] = {
0x80, /* cp437_ucs_map */
0x80, /* cp737_ucs_map */
0x80, /* cp775_ucs_map */
0x80, /* cp850_ucs_map */
0x80, /* cp852_ucs_map */
0x80, /* cp855_ucs_map */
0x80, /* cp856_ucs_map */
0x80, /* cp857_ucs_map */
0x80, /* cp860_ucs_map */
0x80, /* cp861_ucs_map */
0x80, /* cp862_ucs_map */
0x80, /* cp863_ucs_map */
0x80, /* cp864_ucs_map */
0x80, /* cp865_ucs_map */
0x80, /* cp866_ucs_map */
0x80, /* cp869_ucs_map */
0x80, /* cp874_ucs_map */
0x80, /* cp1006_ucs_map */
0x80, /* cp1250_ucs_map */
0x80, /* cp1251_ucs_map */
0x80, /* cp1252_ucs_map */
0x80, /* cp1253_ucs_map */
0x80, /* cp1254_ucs_map */
0x80, /* cp1255_ucs_map */
0x80, /* cp1256_ucs_map */
0x80, /* cp1257_ucs_map */
0x80, /* cp1258_ucs_map */
0, /* NULL */
0x80, /* tcvn57121_ucs_map */
0x20, /* tcvn57122_ucs_map */
0, /* NULL */
0x80, /* viscii111_ucs_map */
0x20, /* viscii112_ucs_map */
0x80, /* vps1_ucs_map */
0x20, /* vps2_ucs_map */
0x80, /* koi8r_ucs_map */
0x80, /* koi8u_ucs_map */
0x80, /* nextstep_ucs_map */
0, /* NULL */
0, /* NULL (Raw) */
};
static wc_uint16 *cs94w_ucs_map[] = {
jisx0208x02131_ucs_map, /* 40 (JIS C 6226) */
gb2312_ucs_map, /* 41 (GB 2312) */
jisx0208x02131_ucs_map, /* 42 (JIS X 0208) */
ksx1001_ucs_map, /* 43 (KS X 1001) */
jisx0212x02132_ucs_map, /* 44 (JIS X 0212) */
NULL, /* 45 (ISO IR 165) */
NULL, /* 46 */
cns116431_ucs_map, /* 47 (CNS 11643-1) */
cns116432_ucs_map, /* 48 (CNS 11643-2) */
NULL, /* 49 (CNS 11643-3) */
NULL, /* 4A (CNS 11643-4) */
NULL, /* 4B (CNS 11643-5) */
NULL, /* 4C (CNS 11643-6) */
NULL, /* 4D (CNS 11643-7) */
NULL, /* 4E (KSP 9566) */
jisx0208x02131_ucs_map, /* 4F (JIS X 0213-1) */
jisx0212x02132_ucs_map, /* 50 (JIS X 0213-2) */
};
static wc_uint32 cs94w_ucs_map_size[] = {
N_jisx0208x02131_ucs_map, /* 40 (JIS C 6226) */
N_gb2312_ucs_map, /* 41 (GB 2312) */
N_jisx0208x02131_ucs_map, /* 42 (JIS X 0208) */
N_ksx1001_ucs_map, /* 43 (KS X 1001) */
N_jisx0212x02132_ucs_map, /* 44 (JIS X 0212) */
0, /* 45 (ISO IR 165) */
0, /* 46 */
N_cns116431_ucs_map, /* 47 (CNS 11643-1) */
N_cns116432_ucs_map, /* 48 (CNS 11643-2) */
0, /* 49 (CNS 11643-3) */
0, /* 4A (CNS 11643-4) */
0, /* 4B (CNS 11643-5) */
0, /* 4C (CNS 11643-6) */
0, /* 4D (CNS 11643-7) */
0, /* 4E (KSP 9566) */
N_jisx0208x02131_ucs_map, /* 4F (JIS X 0213-1) */
N_jisx0212x02132_ucs_map, /* 50 (JIS X 0213-2) */
};
static wc_uint16 **cs96w_ucs_map;
static wc_uint32 *cs96w_ucs_map_size;
static wc_uint16 *pcsw_ucs_map[] = {
big5_ucs_map, /* Big5 */
big5_ucs_map, /* Big5-1 */
big5_ucs_map, /* Big5-2 */
NULL, /* CNS 11643-8 */
NULL, /* CNS 11643-9 */
NULL, /* CNS 11643-10 */
NULL, /* CNS 11643-11 */
NULL, /* CNS 11643-12 */
NULL, /* CNS 11643-13 */
NULL, /* CNS 11643-14 */
NULL, /* CNS 11643-15 */
NULL, /* CNS 11643-16 */
NULL, /* CNS 11643-X */
gb12345_ucs_map, /* GB 12345 */
NULL, /* Johab (special conversion) */
NULL, /* Johab-1 (special conversion) */
NULL, /* Johab-2 (special conversion) */
ksx1001_ucs_map, /* Johab-3 */
sjis_ext_ucs_map, /* Shift_JIS(CP932) ext */
sjis_ext_ucs_map, /* Shift_JIS(CP932) ext-1 */
sjis_ext_ucs_map, /* Shift_JIS(CP932) ext-2 */
gbk_ucs_map, /* GBK(CP936) */
gbk_ucs_map, /* GBK(CP936)-1 */
gbk_ucs_map, /* GBK(CP936)-2 */
NULL, /* GB18030 GBK-ext (special conversion) */
NULL, /* GB18030 GBK-ext-1 (special conversion) */
NULL, /* GB18030 GBK-ext-2 (special conversion) */
uhc_ucs_map, /* UHC(CP949) */
uhc_ucs_map, /* UHC(CP949)-1 */
uhc_ucs_map, /* UHC(CP949)-2 */
hkscs_ucs_map, /* HKSCS */
hkscs_ucs_map, /* HKSCS-1 */
hkscs_ucs_map, /* HKSCS-2 */
};
static wc_uint32 pcsw_ucs_map_size[] = {
N_big5_ucs_map, /* Big5 */
N_big5_ucs_map, /* Big5-1 */
N_big5_ucs_map, /* Big5-2 */
0, /* CNS 11643-8 */
0, /* CNS 11643-9 */
0, /* CNS 11643-10 */
0, /* CNS 11643-11 */
0, /* CNS 11643-12 */
0, /* CNS 11643-13 */
0, /* CNS 11643-14 */
0, /* CNS 11643-15 */
0, /* CNS 11643-16 */
0, /* CNS 11643-X */
N_gb12345_ucs_map, /* GB 12345 */
0, /* Johab (special conversion) */
0, /* Johab-1 (special conversion) */
0, /* Johab-2 (special conversion) */
N_ksx1001_ucs_map, /* Johab-3 */
N_sjis_ext_ucs_map, /* Shift_JIS(CP932) ext */
N_sjis_ext_ucs_map, /* Shift_JIS(CP932) ext-1 */
N_sjis_ext_ucs_map, /* Shift_JIS(CP932) ext-2 */
N_gbk_ucs_map, /* GBK(CP936) */
N_gbk_ucs_map, /* GBK(CP936)-1 */
N_gbk_ucs_map, /* GBK(CP936)-2 */
0, /* GB18030 GBK-ext (special conversion) */
0, /* GB18030 GBK-ext-1 (special conversion) */
0, /* GB18030 GBK-ext-2 (special conversion) */
N_uhc_ucs_map, /* UHC(CP949) */
N_uhc_ucs_map, /* UHC(CP949)-1 */
N_uhc_ucs_map, /* UHC(CP949)-2 */
N_hkscs_ucs_map, /* HKSCS */
N_hkscs_ucs_map, /* HKSCS-1 */
N_hkscs_ucs_map, /* HKSCS-2 */
};
static wc_wchar_t
ucs_cs94_conv(wc_ccs ccs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = ccs;
cc.code = c;
return cc;
}
#define ucs_cs96_conv ucs_cs94_conv
#define ucs_cs94w_conv ucs_cs94_conv
#define ucs_cs96w_conv ucs_cs94_conv
#define ucs_cs128w_conv ucs_cs94_conv
static wc_wchar_t
ucs_viet_conv(wc_ccs ccs, wc_uint16 c)
{
wc_wchar_t cc;
if (c & 0x80) {
cc.ccs = ccs;
switch (ccs) {
case WC_CCS_TCVN_5712_2:
cc.ccs = WC_CCS_TCVN_5712_1;
break;
case WC_CCS_VISCII_11_2:
cc.ccs = WC_CCS_VISCII_11_1;
break;
case WC_CCS_VPS_2:
cc.ccs = WC_CCS_VPS_1;
break;
}
} else {
cc.ccs = ccs;
switch (ccs) {
case WC_CCS_TCVN_5712_1:
cc.ccs = WC_CCS_TCVN_5712_2;
break;
case WC_CCS_VISCII_11_1:
cc.ccs = WC_CCS_VISCII_11_2;
break;
case WC_CCS_VPS_1:
cc.ccs = WC_CCS_VPS_2;
break;
}
}
cc.code = c & 0xff;
return cc;
}
static wc_wchar_t
ucs_cp1258_conv(wc_ccs ccs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = (c < 0x100) ? WC_CCS_CP1258_1 : WC_CCS_CP1258_2;
cc.code = c;
return cc;
}
static wc_wchar_t
ucs_cns11643_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = (c & 0x8000) ? WC_CCS_CNS_11643_2 : WC_CCS_CNS_11643_1;
cc.code = c & 0x7f7f;
return cc;
}
static wc_wchar_t
ucs_big5_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = cs;
cc.code = c;
return wc_big5_to_cs94w(cc);
}
static wc_wchar_t
ucs_johab2_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = cs;
cc.code = c;
return wc_johab_to_cs128w(cc);
}
static wc_wchar_t
ucs_johab3_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
if ((c >= 0x2121 && c < 0x2421) ||
(c > 0x2453 && c <= 0x2C7E) ||
(c >= 0x4A21 && c <= 0x7D7E))
cc.ccs = cs;
else
cc.ccs = WC_CCS_UNKNOWN_W;
cc.code = c;
return cc;
}
static wc_wchar_t
ucs_sjis_ext_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = cs;
cc.code = c;
return wc_sjis_ext_to_cs94w(cc);
}
static wc_wchar_t
ucs_gbk_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = cs;
cc.code = c;
return wc_gbk_to_cs128w(cc);
}
static wc_wchar_t
ucs_uhc_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = cs;
cc.code = c;
return wc_uhc_to_cs128w(cc);
}
static wc_wchar_t
ucs_hkscs_conv(wc_ccs cs, wc_uint16 c)
{
wc_wchar_t cc;
cc.ccs = cs;
cc.code = c;
return wc_hkscs_to_cs128w(cc);
}
#define null_table { 0, 0, NULL, (void *)ucs_cs94_conv }
static wc_table ucs_cs94_table[] = {
null_table, /* 40 */
null_table, /* 41 */
null_table, /* 42 (US_ASCII) */
null_table, /* 43 */
null_table, /* 44 */
null_table, /* 45 */
null_table, /* 46 */
null_table, /* 47 */
null_table, /* 48 */
{ WC_CCS_JIS_X_0201K, N_ucs_jisx0201k_map, ucs_jisx0201k_map, (void *)ucs_cs94_conv },
null_table, /* 4A (JIS X 0201) */
null_table, /* 4B */
null_table, /* 4C */
null_table, /* 4D */
null_table, /* 4E */
null_table, /* 4F */
null_table, /* 50 */
null_table, /* 51 */
null_table, /* 52 */
null_table, /* 53 */
null_table, /* 54 (GB 1988) */
};
static wc_table ucs_cs96_table[] = {
null_table, /* 40 */
{ WC_CCS_ISO_8859_1, N_ucs_iso88591_map, ucs_iso88591_map, (void *)ucs_cs96_conv },
{ WC_CCS_ISO_8859_2, N_ucs_iso88592_map, ucs_iso88592_map, (void *)ucs_cs96_conv },
{ WC_CCS_ISO_8859_3, N_ucs_iso88593_map, ucs_iso88593_map, (void *)ucs_cs96_conv },
{ WC_CCS_ISO_8859_4, N_ucs_iso88594_map, ucs_iso88594_map, (void *)ucs_cs96_conv },
null_table, /* 45 */
{ WC_CCS_ISO_8859_7, N_ucs_iso88597_map, ucs_iso88597_map, (void *)ucs_cs96_conv },
{ WC_CCS_ISO_8859_6, N_ucs_iso88596_map, ucs_iso88596_map, (void *)ucs_cs96_conv },
{ WC_CCS_ISO_8859_8, N_ucs_iso88598_map, ucs_iso88598_map, (void *)ucs_cs96_conv },
null_table, /* 49 */
null_table, /* 4A */
null_table, /* 4B */
{ WC_CCS_ISO_8859_5, N_ucs_iso88595_map, ucs_iso88595_map, (void *)ucs_cs96_conv },
{ WC_CCS_ISO_8859_9, N_ucs_iso88599_map, ucs_iso88599_map, (void *)ucs_cs96_conv },
null_table, /* 4E */
null_table, /* 4F */
null_table, /* 50 */
null_table, /* 51 */
null_table, /* 52 */
null_table, /* 53 */
{ WC_CCS_ISO_8859_11, N_ucs_iso885911_map, ucs_iso885911_map, (void *)ucs_cs96_conv },
null_table, /* 55 */
{ WC_CCS_ISO_8859_10, N_ucs_iso885910_map, ucs_iso885910_map, (void *)ucs_cs96_conv },
null_table, /* 57 */
null_table, /* 58 */
{ WC_CCS_ISO_8859_13, N_ucs_iso885913_map, ucs_iso885913_map, (void *)ucs_cs96_conv },
null_table, /* 5A */
null_table, /* 5B */
null_table, /* 5C */
null_table, /* 5D */
null_table, /* 5E */
{ WC_CCS_ISO_8859_14, N_ucs_iso885914_map, ucs_iso885914_map, (void *)ucs_cs96_conv },
null_table, /* 60 */
null_table, /* 61 */
{ WC_CCS_ISO_8859_15, N_ucs_iso885915_map, ucs_iso885915_map, (void *)ucs_cs96_conv },
null_table, /* 63 */
null_table, /* 64 */
null_table, /* 65 */
{ WC_CCS_ISO_8859_16, N_ucs_iso885916_map, ucs_iso885916_map, (void *)ucs_cs96_conv },
};
static wc_table *ucs_cs942_table;
static wc_table ucs_pcs_table[] = {
{ WC_CCS_CP437, N_ucs_cp437_map, ucs_cp437_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP737, N_ucs_cp737_map, ucs_cp737_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP775, N_ucs_cp775_map, ucs_cp775_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP850, N_ucs_cp850_map, ucs_cp850_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP852, N_ucs_cp852_map, ucs_cp852_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP855, N_ucs_cp855_map, ucs_cp855_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP856, N_ucs_cp856_map, ucs_cp856_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP857, N_ucs_cp857_map, ucs_cp857_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP860, N_ucs_cp860_map, ucs_cp860_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP861, N_ucs_cp861_map, ucs_cp861_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP862, N_ucs_cp862_map, ucs_cp862_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP863, N_ucs_cp863_map, ucs_cp863_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP864, N_ucs_cp864_map, ucs_cp864_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP865, N_ucs_cp865_map, ucs_cp865_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP866, N_ucs_cp866_map, ucs_cp866_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP869, N_ucs_cp869_map, ucs_cp869_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP874, N_ucs_cp874_map, ucs_cp874_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1006, N_ucs_cp1006_map, ucs_cp1006_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1250, N_ucs_cp1250_map, ucs_cp1250_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1251, N_ucs_cp1251_map, ucs_cp1251_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1252, N_ucs_cp1252_map, ucs_cp1252_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1253, N_ucs_cp1253_map, ucs_cp1253_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1254, N_ucs_cp1254_map, ucs_cp1254_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1255, N_ucs_cp1255_map, ucs_cp1255_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1256, N_ucs_cp1256_map, ucs_cp1256_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1257, N_ucs_cp1257_map, ucs_cp1257_map, (void *)ucs_cs96_conv },
{ WC_CCS_CP1258_1, N_ucs_cp1258_map, ucs_cp1258_map, (void *)ucs_cp1258_conv },
{ WC_CCS_CP1258_2, N_ucs_cp1258_map, ucs_cp1258_map, (void *)ucs_cp1258_conv },
{ WC_CCS_TCVN_5712_1, N_ucs_tcvn5712_map, ucs_tcvn5712_map, (void *)ucs_viet_conv },
{ WC_CCS_TCVN_5712_2, N_ucs_tcvn5712_map, ucs_tcvn5712_map, (void *)ucs_viet_conv },
{ WC_CCS_TCVN_5712_3, N_ucs_tcvn5712_map, ucs_tcvn5712_map, (void *)ucs_viet_conv },
{ WC_CCS_VISCII_11_1, N_ucs_viscii11_map, ucs_viscii11_map, (void *)ucs_viet_conv },
{ WC_CCS_VISCII_11_2, N_ucs_viscii11_map, ucs_viscii11_map, (void *)ucs_viet_conv },
{ WC_CCS_VPS_1, N_ucs_vps_map, ucs_vps_map, (void *)ucs_viet_conv },
{ WC_CCS_VPS_2, N_ucs_vps_map, ucs_vps_map, (void *)ucs_viet_conv },
{ WC_CCS_KOI8_R, N_ucs_koi8r_map, ucs_koi8r_map, (void *)ucs_cs96_conv },
{ WC_CCS_KOI8_U, N_ucs_koi8u_map, ucs_koi8u_map, (void *)ucs_cs96_conv },
{ WC_CCS_NEXTSTEP, N_ucs_nextstep_map, ucs_nextstep_map, (void *)ucs_cs96_conv },
{ WC_CCS_GBK_80, N_ucs_gbk_80_map, ucs_gbk_80_map, (void *)ucs_cs96_conv },
null_table, /* (Raw) */
};
static wc_table ucs_cs94w_table[] = {
null_table, /* 40 (JIS C 6226) */
{ WC_CCS_GB_2312, N_ucs_gb2312_map, ucs_gb2312_map, (void *)ucs_cs94w_conv },
{ WC_CCS_JIS_X_0208, N_ucs_jisx0208_map, ucs_jisx0208_map, (void *)ucs_cs94w_conv },
{ WC_CCS_KS_X_1001, N_ucs_ksx1001_map, ucs_ksx1001_map, (void *)ucs_cs94w_conv },
{ WC_CCS_JIS_X_0212, N_ucs_jisx0212_map, ucs_jisx0212_map, (void *)ucs_cs94w_conv },
null_table, /* 45 (ISO IR 165) */
null_table, /* 46 */
{ WC_CCS_CNS_11643_1, N_ucs_cns11643_map, ucs_cns11643_map, (void *)ucs_cns11643_conv },
{ WC_CCS_CNS_11643_2, N_ucs_cns11643_map, ucs_cns11643_map, (void *)ucs_cns11643_conv },
null_table, /* 49 (CNS 11643-3) */
null_table, /* 4A (CNS 11643-4) */
null_table, /* 4B (CNS 11643-5) */
null_table, /* 4C (CNS 11643-6) */
null_table, /* 4D (CNS 11643-7) */
null_table, /* 4E (KSP 9566) */
{ WC_CCS_JIS_X_0213_1, N_ucs_jisx02131_map, ucs_jisx02131_map, (void *)ucs_cs94w_conv },
{ WC_CCS_JIS_X_0213_2, N_ucs_jisx02132_map, ucs_jisx02132_map, (void *)ucs_cs94w_conv },
};
static wc_table *ucs_cs96w_table;
static wc_table ucs_pcsw_table[] = {
{ WC_CCS_BIG5, N_ucs_big5_map, ucs_big5_map, (void *)ucs_cs94w_conv },
{ WC_CCS_BIG5_1, N_ucs_big5_map, ucs_big5_map, (void *)ucs_big5_conv },
{ WC_CCS_BIG5_2, N_ucs_big5_map, ucs_big5_map, (void *)ucs_big5_conv },
null_table, /* CNS 11643-8 */
null_table, /* CNS 11643-9 */
null_table, /* CNS 11643-10 */
null_table, /* CNS 11643-11 */
null_table, /* CNS 11643-12 */
null_table, /* CNS 11643-13 */
null_table, /* CNS 11643-14 */
null_table, /* CNS 11643-15 */
null_table, /* CNS 11643-16 */
null_table, /* CNS 11643-X */
/* use GB 12345 instead of GB 2312 */
{ WC_CCS_GB_2312, N_ucs_gb12345_map, ucs_gb12345_map, (void *)ucs_cs94w_conv },
null_table, /* Johab (special conversion) */
null_table, /* Johab-1 (special conversion) */
{ WC_CCS_JOHAB_2, N_ucs_johab2_map, ucs_johab2_map, (void *)ucs_johab2_conv },
{ WC_CCS_JOHAB_3, N_ucs_ksx1001_map, ucs_ksx1001_map, (void *)ucs_johab3_conv },
{ WC_CCS_SJIS_EXT, N_ucs_sjis_ext_map, ucs_sjis_ext_map, (void *)ucs_cs94w_conv },
{ WC_CCS_SJIS_EXT_1, N_ucs_sjis_ext_map, ucs_sjis_ext_map, (void *)ucs_sjis_ext_conv },
{ WC_CCS_SJIS_EXT_2, N_ucs_sjis_ext_map, ucs_sjis_ext_map, (void *)ucs_sjis_ext_conv },
{ WC_CCS_GBK, N_ucs_gbk_map, ucs_gbk_map, (void *)ucs_cs128w_conv },
{ WC_CCS_GBK_1, N_ucs_gbk_map, ucs_gbk_map, (void *)ucs_gbk_conv },
{ WC_CCS_GBK_2, N_ucs_gbk_map, ucs_gbk_map, (void *)ucs_gbk_conv },
null_table, /* GB18030 GBK-ext (special conversion) */
null_table, /* GB18030 GBK-ext-1 (special conversion) */
null_table, /* GB18030 GBK-ext-2 (special conversion) */
{ WC_CCS_UHC, N_ucs_uhc_map, ucs_uhc_map, (void *)ucs_cs128w_conv },
{ WC_CCS_UHC_1, N_ucs_uhc_map, ucs_uhc_map, (void *)ucs_uhc_conv },
{ WC_CCS_UHC_2, N_ucs_uhc_map, ucs_uhc_map, (void *)ucs_uhc_conv },
{ WC_CCS_HKSCS, N_ucs_hkscs_map, ucs_hkscs_map, (void *)ucs_cs128w_conv },
{ WC_CCS_HKSCS_1, N_ucs_hkscs_map, ucs_hkscs_map, (void *)ucs_hkscs_conv },
{ WC_CCS_HKSCS_2, N_ucs_hkscs_map, ucs_hkscs_map, (void *)ucs_hkscs_conv },
};