Intial commit
[profile/ivi/w3m.git] / libwc / ucs.map
1
2 #include "map/jisx0201k_ucs.map"
3 #include "map/iso88591_ucs.map"
4 #include "map/iso88592_ucs.map"
5 #include "map/iso88593_ucs.map"
6 #include "map/iso88594_ucs.map"
7 #include "map/iso88595_ucs.map"
8 #include "map/iso88596_ucs.map"
9 #include "map/iso88597_ucs.map"
10 #include "map/iso88598_ucs.map"
11 #include "map/iso88599_ucs.map"
12 #include "map/iso885910_ucs.map"
13 #include "map/iso885911_ucs.map"
14 #include "map/iso885913_ucs.map"
15 #include "map/iso885914_ucs.map"
16 #include "map/iso885915_ucs.map"
17 #include "map/iso885916_ucs.map"
18
19 #include "map/cp437_ucs.map"
20 #include "map/cp737_ucs.map"
21 #include "map/cp775_ucs.map"
22 #include "map/cp850_ucs.map"
23 #include "map/cp852_ucs.map"
24 #include "map/cp855_ucs.map"
25 #include "map/cp856_ucs.map"
26 #include "map/cp857_ucs.map"
27 #include "map/cp860_ucs.map"
28 #include "map/cp861_ucs.map"
29 #include "map/cp862_ucs.map"
30 #include "map/cp863_ucs.map"
31 #include "map/cp864_ucs.map"
32 #include "map/cp865_ucs.map"
33 #include "map/cp866_ucs.map"
34 #include "map/cp869_ucs.map"
35 #include "map/cp874_ucs.map"
36 #include "map/cp1006_ucs.map"
37 #include "map/cp1250_ucs.map"
38 #include "map/cp1251_ucs.map"
39 #include "map/cp1252_ucs.map"
40 #include "map/cp1253_ucs.map"
41 #include "map/cp1254_ucs.map"
42 #include "map/cp1255_ucs.map"
43 #include "map/cp1256_ucs.map"
44 #include "map/cp1257_ucs.map"
45 #include "map/cp1258_ucs.map"
46 #include "map/tcvn5712_ucs.map"
47 #include "map/viscii11_ucs.map"
48 #include "map/vps_ucs.map"
49 #include "map/koi8r_ucs.map"
50 #include "map/koi8u_ucs.map"
51 #include "map/nextstep_ucs.map"
52
53 #include "map/jisx0208x0212x0213_ucs.map"
54 #include "map/jisx0213_ucs_p2.map"
55 #include "map/gb2312_ucs.map"
56 #include "map/cns11643_ucs.map"
57 #include "map/ksx1001_ucs.map"
58 #include "map/big5_ucs.map"
59 #include "map/hkscs_ucs.map"
60 #include "map/hkscs_ucs_p2.map"
61 #include "map/gb12345_ucs.map"
62 #include "map/johab_ucs.map"
63 #include "map/sjis_ext_ucs.map"
64 #include "map/gbk_ucs.map"
65 #include "map/uhc_ucs.map"
66
67 static wc_uint16 *cs94_ucs_map[] = {
68   NULL,                 /* 40 */
69   NULL,                 /* 41 */
70   NULL,                 /* 42 (US_ASCII) */
71   NULL,                 /* 43 */
72   NULL,                 /* 44 */
73   NULL,                 /* 45 */
74   NULL,                 /* 46 */
75   NULL,                 /* 47 */
76   NULL,                 /* 48 */
77   jisx0201k_ucs_map,    /* 49 (JIS X 0201 Kana) */
78   NULL,                 /* 4A (JIS X 0201) */
79   NULL,                 /* 4B */
80   NULL,                 /* 4C */
81   NULL,                 /* 4D */
82   NULL,                 /* 4E */
83   NULL,                 /* 4F */
84   NULL,                 /* 50 */
85   NULL,                 /* 51 */
86   NULL,                 /* 52 */
87   NULL,                 /* 53 */
88   NULL,                 /* 54 (GB 1988) */
89 };
90
91 static wc_uint16 *cs96_ucs_map[] = {
92   NULL,                 /* 40 */
93   iso88591_ucs_map,     /* 41 (ISO 8859-1) */
94   iso88592_ucs_map,     /* 42 (ISO 8859-2) */
95   iso88593_ucs_map,     /* 43 (ISO 8859-3) */
96   iso88594_ucs_map,     /* 44 (ISO 8859-4) */
97   NULL,                 /* 45 */
98   iso88597_ucs_map,     /* 46 (ISO 8859-7) */
99   iso88596_ucs_map,     /* 47 (ISO 8859-6) */
100   iso88598_ucs_map,     /* 48 (ISO 8859-8) */
101   NULL,                 /* 49 */
102   NULL,                 /* 4A */
103   NULL,                 /* 4B */
104   iso88595_ucs_map,     /* 4C (ISO 8859-5) */
105   iso88599_ucs_map,     /* 4D (ISO 8859-9) */
106   NULL,                 /* 4E */
107   NULL,                 /* 4F */
108   NULL,                 /* 50 */
109   NULL,                 /* 51 */
110   NULL,                 /* 52 */
111   NULL,                 /* 53 */
112   iso885911_ucs_map,    /* 54 (ISO 8859-11, TIS 620) */
113   NULL,                 /* 55 */
114   iso885910_ucs_map,    /* 56 (ISO 8859-10) */
115   NULL,                 /* 57 */
116   NULL,                 /* 58 */
117   iso885913_ucs_map,    /* 59 (ISO 8859-13) */
118   NULL,                 /* 5A */
119   NULL,                 /* 5B */
120   NULL,                 /* 5C */
121   NULL,                 /* 5D */
122   NULL,                 /* 5E */
123   iso885914_ucs_map,    /* 5F (ISO 8859-14) */
124   NULL,                 /* 60 */
125   NULL,                 /* 61 */
126   iso885915_ucs_map,    /* 62 (ISO 8859-15) */
127   NULL,                 /* 63 */
128   NULL,                 /* 64 */
129   NULL,                 /* 65 */
130   iso885916_ucs_map,    /* 66 (ISO 8859-16) */
131 };
132
133 static wc_uint16 **cs942_ucs_map;
134
135 static wc_uint16 *pcs_ucs_map[] = {
136   cp437_ucs_map,
137   cp737_ucs_map,
138   cp775_ucs_map,
139   cp850_ucs_map,
140   cp852_ucs_map,
141   cp855_ucs_map,
142   cp856_ucs_map,
143   cp857_ucs_map,
144   cp860_ucs_map,
145   cp861_ucs_map,
146   cp862_ucs_map,
147   cp863_ucs_map,
148   cp864_ucs_map,
149   cp865_ucs_map,
150   cp866_ucs_map,
151   cp869_ucs_map,
152   cp874_ucs_map,
153   cp1006_ucs_map,
154   cp1250_ucs_map,
155   cp1251_ucs_map,
156   cp1252_ucs_map,
157   cp1253_ucs_map,
158   cp1254_ucs_map,
159   cp1255_ucs_map,
160   cp1256_ucs_map,
161   cp1257_ucs_map,
162   cp1258_ucs_map,
163   NULL,
164   tcvn57121_ucs_map,
165   tcvn57122_ucs_map,
166   NULL,
167   viscii111_ucs_map,
168   viscii112_ucs_map,
169   vps1_ucs_map,
170   vps2_ucs_map,
171   koi8r_ucs_map,
172   koi8u_ucs_map,
173   nextstep_ucs_map,
174   NULL,
175   NULL,                 /* (Raw) */
176 };
177
178 static wc_uint16 *cs94w_ucs_map[] = {
179   jisx0208x02131_ucs_map,       /* 40 (JIS C 6226) */
180   gb2312_ucs_map,               /* 41 (GB 2312) */
181   jisx0208x02131_ucs_map,       /* 42 (JIS X 0208) */
182   ksx1001_ucs_map,              /* 43 (KS X 1001) */
183   jisx0212x02132_ucs_map,       /* 44 (JIS X 0212) */
184   NULL,                         /* 45 (ISO IR 165) */
185   NULL,                         /* 46 */
186   cns116431_ucs_map,            /* 47 (CNS 11643-1) */
187   cns116432_ucs_map,            /* 48 (CNS 11643-2) */
188   NULL,                         /* 49 (CNS 11643-3) */
189   NULL,                         /* 4A (CNS 11643-4) */
190   NULL,                         /* 4B (CNS 11643-5) */
191   NULL,                         /* 4C (CNS 11643-6) */
192   NULL,                         /* 4D (CNS 11643-7) */
193   NULL,                         /* 4E (KSP 9566) */
194   jisx0208x02131_ucs_map,       /* 4F (JIS X 0213-1) */
195   jisx0212x02132_ucs_map,       /* 50 (JIS X 0213-2) */
196 };
197
198 static wc_uint16 **cs96w_ucs_map;
199
200 static wc_uint16 *pcsw_ucs_map[] = {
201   big5_ucs_map,         /* Big5 */
202   big5_ucs_map,         /* Big5-1 */
203   big5_ucs_map,         /* Big5-2 */
204   NULL,                 /* CNS 11643-8 */
205   NULL,                 /* CNS 11643-9 */
206   NULL,                 /* CNS 11643-10 */
207   NULL,                 /* CNS 11643-11 */
208   NULL,                 /* CNS 11643-12 */
209   NULL,                 /* CNS 11643-13 */
210   NULL,                 /* CNS 11643-14 */
211   NULL,                 /* CNS 11643-15 */
212   NULL,                 /* CNS 11643-16 */
213   NULL,                 /* CNS 11643-X */
214   gb12345_ucs_map,      /* GB 12345 */
215   NULL,                 /* Johab (special conversion) */
216   NULL,                 /* Johab-1 (special conversion) */
217   NULL,                 /* Johab-2 (special conversion) */
218   ksx1001_ucs_map,      /* Johab-3 */
219   sjis_ext_ucs_map,     /* Shift_JIS(CP932) ext */
220   sjis_ext_ucs_map,     /* Shift_JIS(CP932) ext-1 */
221   sjis_ext_ucs_map,     /* Shift_JIS(CP932) ext-2 */
222   gbk_ucs_map,          /* GBK(CP936) */
223   gbk_ucs_map,          /* GBK(CP936)-1 */
224   gbk_ucs_map,          /* GBK(CP936)-2 */
225   NULL,                 /* GB18030 GBK-ext (special conversion) */
226   NULL,                 /* GB18030 GBK-ext-1 (special conversion) */
227   NULL,                 /* GB18030 GBK-ext-2 (special conversion) */
228   uhc_ucs_map,          /* UHC(CP949) */
229   uhc_ucs_map,          /* UHC(CP949)-1 */
230   uhc_ucs_map,          /* UHC(CP949)-2 */
231   hkscs_ucs_map,        /* HKSCS */
232   hkscs_ucs_map,        /* HKSCS-1 */
233   hkscs_ucs_map,        /* HKSCS-2 */
234 };
235
236 static wc_wchar_t
237 ucs_cs94_conv(wc_ccs ccs, wc_uint16 c)
238 {
239   wc_wchar_t cc;
240
241   cc.ccs = ccs;
242   cc.code = c;
243   return cc;
244 }
245
246 #define ucs_cs96_conv ucs_cs94_conv
247 #define ucs_cs94w_conv ucs_cs94_conv
248 #define ucs_cs96w_conv ucs_cs94_conv
249 #define ucs_cs128w_conv ucs_cs94_conv
250
251 static wc_wchar_t
252 ucs_viet_conv(wc_ccs ccs, wc_uint16 c)
253 {
254   wc_wchar_t cc;
255
256   if (c & 0x80) {
257     cc.ccs = ccs;
258     switch (ccs) {
259     case WC_CCS_TCVN_5712_2:
260         cc.ccs = WC_CCS_TCVN_5712_1;
261         break;
262     case WC_CCS_VISCII_11_2:
263         cc.ccs = WC_CCS_VISCII_11_1;
264         break;
265     case WC_CCS_VPS_2:
266         cc.ccs = WC_CCS_VPS_1;
267         break;
268     }
269   } else {
270     cc.ccs = ccs;
271     switch (ccs) {
272     case WC_CCS_TCVN_5712_1:
273         cc.ccs = WC_CCS_TCVN_5712_2;
274         break;
275     case WC_CCS_VISCII_11_1:
276         cc.ccs = WC_CCS_VISCII_11_2;
277         break;
278     case WC_CCS_VPS_1:
279         cc.ccs = WC_CCS_VPS_2;
280         break;
281     }
282   }
283   cc.code = c & 0xff;
284   return cc;
285 }
286
287 static wc_wchar_t
288 ucs_cp1258_conv(wc_ccs ccs, wc_uint16 c)
289 {
290   wc_wchar_t cc;
291
292   cc.ccs = (c < 0x100) ? WC_CCS_CP1258_1 : WC_CCS_CP1258_2;
293   cc.code = c;
294   return cc;
295 }
296
297 static wc_wchar_t
298 ucs_cns11643_conv(wc_ccs cs, wc_uint16 c)
299 {
300   wc_wchar_t cc;
301
302   cc.ccs = (c & 0x8000) ? WC_CCS_CNS_11643_2 : WC_CCS_CNS_11643_1;
303   cc.code = c & 0x7f7f;
304   return cc;
305 }
306
307 static wc_wchar_t
308 ucs_big5_conv(wc_ccs cs, wc_uint16 c)
309 {
310   wc_wchar_t cc;
311
312   cc.ccs = cs;
313   cc.code = c;
314   return wc_big5_to_cs94w(cc);
315 }
316
317 static wc_wchar_t
318 ucs_johab2_conv(wc_ccs cs, wc_uint16 c)
319 {
320   wc_wchar_t cc;
321
322   cc.ccs = cs;
323   cc.code = c;
324   return wc_johab_to_cs128w(cc);
325 }
326
327 static wc_wchar_t
328 ucs_johab3_conv(wc_ccs cs, wc_uint16 c)
329 {
330   wc_wchar_t cc;
331
332   if ((c >= 0x2121 && c <  0x2421) ||
333       (c >  0x2453 && c <= 0x2C7E) ||
334       (c >= 0x4A21 && c <= 0x7D7E))
335      cc.ccs = cs;
336   else
337      cc.ccs = WC_CCS_UNKNOWN_W;
338   cc.code = c;
339   return cc;
340 }
341
342 static wc_wchar_t
343 ucs_sjis_ext_conv(wc_ccs cs, wc_uint16 c)
344 {
345   wc_wchar_t cc;
346
347   cc.ccs = cs;
348   cc.code = c;
349   return wc_sjis_ext_to_cs94w(cc);
350 }
351
352 static wc_wchar_t
353 ucs_gbk_conv(wc_ccs cs, wc_uint16 c)
354 {
355   wc_wchar_t cc;
356
357   cc.ccs = cs;
358   cc.code = c;
359   return wc_gbk_to_cs128w(cc);
360 }
361
362 static wc_wchar_t
363 ucs_uhc_conv(wc_ccs cs, wc_uint16 c)
364 {
365   wc_wchar_t cc;
366
367   cc.ccs = cs;
368   cc.code = c;
369   return wc_uhc_to_cs128w(cc);
370 }
371
372 static wc_wchar_t
373 ucs_hkscs_conv(wc_ccs cs, wc_uint16 c)
374 {
375   wc_wchar_t cc;
376
377   cc.ccs = cs;
378   cc.code = c;
379   return wc_hkscs_to_cs128w(cc);
380 }
381
382 #define null_table { 0, 0, NULL, (void *)ucs_cs94_conv }
383
384 static wc_table ucs_cs94_table[] = {
385   null_table,           /* 40 */
386   null_table,           /* 41 */
387   null_table,           /* 42 (US_ASCII) */
388   null_table,           /* 43 */
389   null_table,           /* 44 */
390   null_table,           /* 45 */
391   null_table,           /* 46 */
392   null_table,           /* 47 */
393   null_table,           /* 48 */
394   { WC_CCS_JIS_X_0201K, N_ucs_jisx0201k_map, ucs_jisx0201k_map, (void *)ucs_cs94_conv },
395   null_table,           /* 4A (JIS X 0201) */
396   null_table,           /* 4B */
397   null_table,           /* 4C */
398   null_table,           /* 4D */
399   null_table,           /* 4E */
400   null_table,           /* 4F */
401   null_table,           /* 50 */
402   null_table,           /* 51 */
403   null_table,           /* 52 */
404   null_table,           /* 53 */
405   null_table,           /* 54 (GB 1988) */
406 };
407
408 static wc_table ucs_cs96_table[] = {
409   null_table,           /* 40 */
410   { WC_CCS_ISO_8859_1,  N_ucs_iso88591_map,  ucs_iso88591_map,  (void *)ucs_cs96_conv },
411   { WC_CCS_ISO_8859_2,  N_ucs_iso88592_map,  ucs_iso88592_map,  (void *)ucs_cs96_conv },
412   { WC_CCS_ISO_8859_3,  N_ucs_iso88593_map,  ucs_iso88593_map,  (void *)ucs_cs96_conv },
413   { WC_CCS_ISO_8859_4,  N_ucs_iso88594_map,  ucs_iso88594_map,  (void *)ucs_cs96_conv },
414   null_table,           /* 45 */
415   { WC_CCS_ISO_8859_7,  N_ucs_iso88597_map,  ucs_iso88597_map,  (void *)ucs_cs96_conv },
416   { WC_CCS_ISO_8859_6,  N_ucs_iso88596_map,  ucs_iso88596_map,  (void *)ucs_cs96_conv },
417   { WC_CCS_ISO_8859_8,  N_ucs_iso88598_map,  ucs_iso88598_map,  (void *)ucs_cs96_conv },
418   null_table,           /* 49 */
419   null_table,           /* 4A */
420   null_table,           /* 4B */
421   { WC_CCS_ISO_8859_5,  N_ucs_iso88595_map,  ucs_iso88595_map,  (void *)ucs_cs96_conv },
422   { WC_CCS_ISO_8859_9,  N_ucs_iso88599_map,  ucs_iso88599_map,  (void *)ucs_cs96_conv },
423   null_table,           /* 4E */
424   null_table,           /* 4F */
425   null_table,           /* 50 */
426   null_table,           /* 51 */
427   null_table,           /* 52 */
428   null_table,           /* 53 */
429   { WC_CCS_ISO_8859_11, N_ucs_iso885911_map, ucs_iso885911_map, (void *)ucs_cs96_conv },
430   null_table,           /* 55 */
431   { WC_CCS_ISO_8859_10, N_ucs_iso885910_map, ucs_iso885910_map, (void *)ucs_cs96_conv },
432   null_table,           /* 57 */
433   null_table,           /* 58 */
434   { WC_CCS_ISO_8859_13, N_ucs_iso885913_map, ucs_iso885913_map, (void *)ucs_cs96_conv },
435   null_table,           /* 5A */
436   null_table,           /* 5B */
437   null_table,           /* 5C */
438   null_table,           /* 5D */
439   null_table,           /* 5E */
440   { WC_CCS_ISO_8859_14, N_ucs_iso885914_map, ucs_iso885914_map, (void *)ucs_cs96_conv },
441   null_table,           /* 60 */
442   null_table,           /* 61 */
443   { WC_CCS_ISO_8859_15, N_ucs_iso885915_map, ucs_iso885915_map, (void *)ucs_cs96_conv },
444   null_table,           /* 63 */
445   null_table,           /* 64 */
446   null_table,           /* 65 */
447   { WC_CCS_ISO_8859_16, N_ucs_iso885916_map, ucs_iso885916_map, (void *)ucs_cs96_conv },
448 };
449
450 static wc_table *ucs_cs942_table;
451
452 static wc_table ucs_pcs_table[] = {
453   { WC_CCS_CP437,  N_ucs_cp437_map,  ucs_cp437_map,  (void *)ucs_cs96_conv },
454   { WC_CCS_CP737,  N_ucs_cp737_map,  ucs_cp737_map,  (void *)ucs_cs96_conv },
455   { WC_CCS_CP775,  N_ucs_cp775_map,  ucs_cp775_map,  (void *)ucs_cs96_conv },
456   { WC_CCS_CP850,  N_ucs_cp850_map,  ucs_cp850_map,  (void *)ucs_cs96_conv },
457   { WC_CCS_CP852,  N_ucs_cp852_map,  ucs_cp852_map,  (void *)ucs_cs96_conv },
458   { WC_CCS_CP855,  N_ucs_cp855_map,  ucs_cp855_map,  (void *)ucs_cs96_conv },
459   { WC_CCS_CP856,  N_ucs_cp856_map,  ucs_cp856_map,  (void *)ucs_cs96_conv },
460   { WC_CCS_CP857,  N_ucs_cp857_map,  ucs_cp857_map,  (void *)ucs_cs96_conv },
461   { WC_CCS_CP860,  N_ucs_cp860_map,  ucs_cp860_map,  (void *)ucs_cs96_conv },
462   { WC_CCS_CP861,  N_ucs_cp861_map,  ucs_cp861_map,  (void *)ucs_cs96_conv },
463   { WC_CCS_CP862,  N_ucs_cp862_map,  ucs_cp862_map,  (void *)ucs_cs96_conv },
464   { WC_CCS_CP863,  N_ucs_cp863_map,  ucs_cp863_map,  (void *)ucs_cs96_conv },
465   { WC_CCS_CP864,  N_ucs_cp864_map,  ucs_cp864_map,  (void *)ucs_cs96_conv },
466   { WC_CCS_CP865,  N_ucs_cp865_map,  ucs_cp865_map,  (void *)ucs_cs96_conv },
467   { WC_CCS_CP866,  N_ucs_cp866_map,  ucs_cp866_map,  (void *)ucs_cs96_conv },
468   { WC_CCS_CP869,  N_ucs_cp869_map,  ucs_cp869_map,  (void *)ucs_cs96_conv },
469   { WC_CCS_CP874,  N_ucs_cp874_map,  ucs_cp874_map,  (void *)ucs_cs96_conv },
470   { WC_CCS_CP1006, N_ucs_cp1006_map, ucs_cp1006_map, (void *)ucs_cs96_conv },
471   { WC_CCS_CP1250, N_ucs_cp1250_map, ucs_cp1250_map, (void *)ucs_cs96_conv },
472   { WC_CCS_CP1251, N_ucs_cp1251_map, ucs_cp1251_map, (void *)ucs_cs96_conv },
473   { WC_CCS_CP1252, N_ucs_cp1252_map, ucs_cp1252_map, (void *)ucs_cs96_conv },
474   { WC_CCS_CP1253, N_ucs_cp1253_map, ucs_cp1253_map, (void *)ucs_cs96_conv },
475   { WC_CCS_CP1254, N_ucs_cp1254_map, ucs_cp1254_map, (void *)ucs_cs96_conv },
476   { WC_CCS_CP1255, N_ucs_cp1255_map, ucs_cp1255_map, (void *)ucs_cs96_conv },
477   { WC_CCS_CP1256, N_ucs_cp1256_map, ucs_cp1256_map, (void *)ucs_cs96_conv },
478   { WC_CCS_CP1257, N_ucs_cp1257_map, ucs_cp1257_map, (void *)ucs_cs96_conv },
479   { WC_CCS_CP1258_1, N_ucs_cp1258_map, ucs_cp1258_map, (void *)ucs_cp1258_conv },
480   { WC_CCS_CP1258_2, N_ucs_cp1258_map, ucs_cp1258_map, (void *)ucs_cp1258_conv },
481   { WC_CCS_TCVN_5712_1, N_ucs_tcvn5712_map, ucs_tcvn5712_map, (void *)ucs_viet_conv },
482   { WC_CCS_TCVN_5712_2, N_ucs_tcvn5712_map, ucs_tcvn5712_map, (void *)ucs_viet_conv },
483   { WC_CCS_TCVN_5712_3, N_ucs_tcvn5712_map, ucs_tcvn5712_map, (void *)ucs_viet_conv },
484   { WC_CCS_VISCII_11_1, N_ucs_viscii11_map, ucs_viscii11_map, (void *)ucs_viet_conv },
485   { WC_CCS_VISCII_11_2, N_ucs_viscii11_map, ucs_viscii11_map, (void *)ucs_viet_conv },
486   { WC_CCS_VPS_1,  N_ucs_vps_map,    ucs_vps_map,    (void *)ucs_viet_conv },
487   { WC_CCS_VPS_2,  N_ucs_vps_map,    ucs_vps_map,    (void *)ucs_viet_conv },
488   { WC_CCS_KOI8_R, N_ucs_koi8r_map,  ucs_koi8r_map, (void *)ucs_cs96_conv },
489   { WC_CCS_KOI8_U, N_ucs_koi8u_map,  ucs_koi8u_map, (void *)ucs_cs96_conv },
490   { WC_CCS_NEXTSTEP, N_ucs_nextstep_map, ucs_nextstep_map, (void *)ucs_cs96_conv },
491   { WC_CCS_GBK_80, N_ucs_gbk_80_map, ucs_gbk_80_map, (void *)ucs_cs96_conv },
492   null_table,           /* (Raw) */
493 };
494
495 static wc_table ucs_cs94w_table[] = {
496   null_table,           /* 40 (JIS C 6226) */
497   { WC_CCS_GB_2312, N_ucs_gb2312_map, ucs_gb2312_map, (void *)ucs_cs94w_conv },
498   { WC_CCS_JIS_X_0208, N_ucs_jisx0208_map, ucs_jisx0208_map, (void *)ucs_cs94w_conv },
499   { WC_CCS_KS_X_1001, N_ucs_ksx1001_map, ucs_ksx1001_map, (void *)ucs_cs94w_conv },
500   { WC_CCS_JIS_X_0212, N_ucs_jisx0212_map, ucs_jisx0212_map, (void *)ucs_cs94w_conv },
501   null_table,           /* 45 (ISO IR 165) */
502   null_table,           /* 46 */
503   { WC_CCS_CNS_11643_1, N_ucs_cns11643_map, ucs_cns11643_map, (void *)ucs_cns11643_conv },
504   { WC_CCS_CNS_11643_2, N_ucs_cns11643_map, ucs_cns11643_map, (void *)ucs_cns11643_conv },
505   null_table,           /* 49 (CNS 11643-3) */
506   null_table,           /* 4A (CNS 11643-4) */
507   null_table,           /* 4B (CNS 11643-5) */
508   null_table,           /* 4C (CNS 11643-6) */
509   null_table,           /* 4D (CNS 11643-7) */
510   null_table,           /* 4E (KSP 9566) */
511   { WC_CCS_JIS_X_0213_1, N_ucs_jisx02131_map, ucs_jisx02131_map, (void *)ucs_cs94w_conv },
512   { WC_CCS_JIS_X_0213_2, N_ucs_jisx02132_map, ucs_jisx02132_map, (void *)ucs_cs94w_conv },
513 };
514
515 static wc_table *ucs_cs96w_table;
516
517 static wc_table ucs_pcsw_table[] = {
518   { WC_CCS_BIG5,   N_ucs_big5_map, ucs_big5_map, (void *)ucs_cs94w_conv },
519   { WC_CCS_BIG5_1, N_ucs_big5_map, ucs_big5_map, (void *)ucs_big5_conv },
520   { WC_CCS_BIG5_2, N_ucs_big5_map, ucs_big5_map, (void *)ucs_big5_conv },
521   null_table,           /* CNS 11643-8 */
522   null_table,           /* CNS 11643-9 */
523   null_table,           /* CNS 11643-10 */
524   null_table,           /* CNS 11643-11 */
525   null_table,           /* CNS 11643-12 */
526   null_table,           /* CNS 11643-13 */
527   null_table,           /* CNS 11643-14 */
528   null_table,           /* CNS 11643-15 */
529   null_table,           /* CNS 11643-16 */
530   null_table,           /* CNS 11643-X */
531   /* use GB 12345 instead of GB 2312 */ 
532   { WC_CCS_GB_2312, N_ucs_gb12345_map, ucs_gb12345_map, (void *)ucs_cs94w_conv },
533   null_table,           /* Johab (special conversion) */
534   null_table,           /* Johab-1 (special conversion) */
535   { WC_CCS_JOHAB_2, N_ucs_johab2_map, ucs_johab2_map, (void *)ucs_johab2_conv },
536   { WC_CCS_JOHAB_3, N_ucs_ksx1001_map, ucs_ksx1001_map, (void *)ucs_johab3_conv },
537   { WC_CCS_SJIS_EXT,   N_ucs_sjis_ext_map, ucs_sjis_ext_map, (void *)ucs_cs94w_conv },
538   { WC_CCS_SJIS_EXT_1, N_ucs_sjis_ext_map, ucs_sjis_ext_map, (void *)ucs_sjis_ext_conv },
539   { WC_CCS_SJIS_EXT_2, N_ucs_sjis_ext_map, ucs_sjis_ext_map, (void *)ucs_sjis_ext_conv },
540   { WC_CCS_GBK,   N_ucs_gbk_map, ucs_gbk_map, (void *)ucs_cs128w_conv },
541   { WC_CCS_GBK_1, N_ucs_gbk_map, ucs_gbk_map, (void *)ucs_gbk_conv },
542   { WC_CCS_GBK_2, N_ucs_gbk_map, ucs_gbk_map, (void *)ucs_gbk_conv },
543   null_table,           /* GB18030 GBK-ext (special conversion) */
544   null_table,           /* GB18030 GBK-ext-1 (special conversion) */
545   null_table,           /* GB18030 GBK-ext-2 (special conversion) */
546   { WC_CCS_UHC,   N_ucs_uhc_map, ucs_uhc_map, (void *)ucs_cs128w_conv },
547   { WC_CCS_UHC_1, N_ucs_uhc_map, ucs_uhc_map, (void *)ucs_uhc_conv },
548   { WC_CCS_UHC_2, N_ucs_uhc_map, ucs_uhc_map, (void *)ucs_uhc_conv },
549   { WC_CCS_HKSCS,   N_ucs_hkscs_map, ucs_hkscs_map, (void *)ucs_cs128w_conv },
550   { WC_CCS_HKSCS_1, N_ucs_hkscs_map, ucs_hkscs_map, (void *)ucs_hkscs_conv },
551   { WC_CCS_HKSCS_2, N_ucs_hkscs_map, ucs_hkscs_map, (void *)ucs_hkscs_conv },
552 };
553