xref: /aoo41x/main/sal/textenc/tcvtkr6.tab (revision cdf0e10c)
1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28/* ======================================================================= */
29
30/* This file contain the information tables for all  */
31/* korean charsets: */
32/* CP949, JOHAB */
33
34/* ======================================================================= */
35
36static ImplDBCSToUniLeadTab const aKSC5601UniLeadTab[256] =
37{
38    { 0x0000,    0,    0, NULL },                               /* 0x00 */
39    { 0x0001,    0,    0, NULL },                               /* 0x01 */
40    { 0x0002,    0,    0, NULL },                               /* 0x02 */
41    { 0x0003,    0,    0, NULL },                               /* 0x03 */
42    { 0x0004,    0,    0, NULL },                               /* 0x04 */
43    { 0x0005,    0,    0, NULL },                               /* 0x05 */
44    { 0x0006,    0,    0, NULL },                               /* 0x06 */
45    { 0x0007,    0,    0, NULL },                               /* 0x07 */
46    { 0x0008,    0,    0, NULL },                               /* 0x08 */
47    { 0x0009,    0,    0, NULL },                               /* 0x09 */
48    { 0x000A,    0,    0, NULL },                               /* 0x0A */
49    { 0x000B,    0,    0, NULL },                               /* 0x0B */
50    { 0x000C,    0,    0, NULL },                               /* 0x0C */
51    { 0x000D,    0,    0, NULL },                               /* 0x0D */
52    { 0x000E,    0,    0, NULL },                               /* 0x0E */
53    { 0x000F,    0,    0, NULL },                               /* 0x0F */
54    { 0x0010,    0,    0, NULL },                               /* 0x10 */
55    { 0x0011,    0,    0, NULL },                               /* 0x11 */
56    { 0x0012,    0,    0, NULL },                               /* 0x12 */
57    { 0x0013,    0,    0, NULL },                               /* 0x13 */
58    { 0x0014,    0,    0, NULL },                               /* 0x14 */
59    { 0x0015,    0,    0, NULL },                               /* 0x15 */
60    { 0x0016,    0,    0, NULL },                               /* 0x16 */
61    { 0x0017,    0,    0, NULL },                               /* 0x17 */
62    { 0x0018,    0,    0, NULL },                               /* 0x18 */
63    { 0x0019,    0,    0, NULL },                               /* 0x19 */
64    { 0x001A,    0,    0, NULL },                               /* 0x1A */
65    { 0x001B,    0,    0, NULL },                               /* 0x1B */
66    { 0x001C,    0,    0, NULL },                               /* 0x1C */
67    { 0x001D,    0,    0, NULL },                               /* 0x1D */
68    { 0x001E,    0,    0, NULL },                               /* 0x1E */
69    { 0x001F,    0,    0, NULL },                               /* 0x1F */
70    { 0x0020,    0,    0, NULL },                               /* 0x20 */
71    { 0x0021,    0,    0, NULL },                               /* 0x21 */
72    { 0x0022,    0,    0, NULL },                               /* 0x22 */
73    { 0x0023,    0,    0, NULL },                               /* 0x23 */
74    { 0x0024,    0,    0, NULL },                               /* 0x24 */
75    { 0x0025,    0,    0, NULL },                               /* 0x25 */
76    { 0x0026,    0,    0, NULL },                               /* 0x26 */
77    { 0x0027,    0,    0, NULL },                               /* 0x27 */
78    { 0x0028,    0,    0, NULL },                               /* 0x28 */
79    { 0x0029,    0,    0, NULL },                               /* 0x29 */
80    { 0x002A,    0,    0, NULL },                               /* 0x2A */
81    { 0x002B,    0,    0, NULL },                               /* 0x2B */
82    { 0x002C,    0,    0, NULL },                               /* 0x2C */
83    { 0x002D,    0,    0, NULL },                               /* 0x2D */
84    { 0x002E,    0,    0, NULL },                               /* 0x2E */
85    { 0x002F,    0,    0, NULL },                               /* 0x2F */
86    { 0x0030,    0,    0, NULL },                               /* 0x30 */
87    { 0x0031,    0,    0, NULL },                               /* 0x31 */
88    { 0x0032,    0,    0, NULL },                               /* 0x32 */
89    { 0x0033,    0,    0, NULL },                               /* 0x33 */
90    { 0x0034,    0,    0, NULL },                               /* 0x34 */
91    { 0x0035,    0,    0, NULL },                               /* 0x35 */
92    { 0x0036,    0,    0, NULL },                               /* 0x36 */
93    { 0x0037,    0,    0, NULL },                               /* 0x37 */
94    { 0x0038,    0,    0, NULL },                               /* 0x38 */
95    { 0x0039,    0,    0, NULL },                               /* 0x39 */
96    { 0x003A,    0,    0, NULL },                               /* 0x3A */
97    { 0x003B,    0,    0, NULL },                               /* 0x3B */
98    { 0x003C,    0,    0, NULL },                               /* 0x3C */
99    { 0x003D,    0,    0, NULL },                               /* 0x3D */
100    { 0x003E,    0,    0, NULL },                               /* 0x3E */
101    { 0x003F,    0,    0, NULL },                               /* 0x3F */
102    { 0x0040,    0,    0, NULL },                               /* 0x40 */
103    { 0x0041,    0,    0, NULL },                               /* 0x41 */
104    { 0x0042,    0,    0, NULL },                               /* 0x42 */
105    { 0x0043,    0,    0, NULL },                               /* 0x43 */
106    { 0x0044,    0,    0, NULL },                               /* 0x44 */
107    { 0x0045,    0,    0, NULL },                               /* 0x45 */
108    { 0x0046,    0,    0, NULL },                               /* 0x46 */
109    { 0x0047,    0,    0, NULL },                               /* 0x47 */
110    { 0x0048,    0,    0, NULL },                               /* 0x48 */
111    { 0x0049,    0,    0, NULL },                               /* 0x49 */
112    { 0x004A,    0,    0, NULL },                               /* 0x4A */
113    { 0x004B,    0,    0, NULL },                               /* 0x4B */
114    { 0x004C,    0,    0, NULL },                               /* 0x4C */
115    { 0x004D,    0,    0, NULL },                               /* 0x4D */
116    { 0x004E,    0,    0, NULL },                               /* 0x4E */
117    { 0x004F,    0,    0, NULL },                               /* 0x4F */
118    { 0x0050,    0,    0, NULL },                               /* 0x50 */
119    { 0x0051,    0,    0, NULL },                               /* 0x51 */
120    { 0x0052,    0,    0, NULL },                               /* 0x52 */
121    { 0x0053,    0,    0, NULL },                               /* 0x53 */
122    { 0x0054,    0,    0, NULL },                               /* 0x54 */
123    { 0x0055,    0,    0, NULL },                               /* 0x55 */
124    { 0x0056,    0,    0, NULL },                               /* 0x56 */
125    { 0x0057,    0,    0, NULL },                               /* 0x57 */
126    { 0x0058,    0,    0, NULL },                               /* 0x58 */
127    { 0x0059,    0,    0, NULL },                               /* 0x59 */
128    { 0x005A,    0,    0, NULL },                               /* 0x5A */
129    { 0x005B,    0,    0, NULL },                               /* 0x5B */
130    { 0x005C,    0,    0, NULL },                               /* 0x5C */
131    { 0x005D,    0,    0, NULL },                               /* 0x5D */
132    { 0x005E,    0,    0, NULL },                               /* 0x5E */
133    { 0x005F,    0,    0, NULL },                               /* 0x5F */
134    { 0x0060,    0,    0, NULL },                               /* 0x60 */
135    { 0x0061,    0,    0, NULL },                               /* 0x61 */
136    { 0x0062,    0,    0, NULL },                               /* 0x62 */
137    { 0x0063,    0,    0, NULL },                               /* 0x63 */
138    { 0x0064,    0,    0, NULL },                               /* 0x64 */
139    { 0x0065,    0,    0, NULL },                               /* 0x65 */
140    { 0x0066,    0,    0, NULL },                               /* 0x66 */
141    { 0x0067,    0,    0, NULL },                               /* 0x67 */
142    { 0x0068,    0,    0, NULL },                               /* 0x68 */
143    { 0x0069,    0,    0, NULL },                               /* 0x69 */
144    { 0x006A,    0,    0, NULL },                               /* 0x6A */
145    { 0x006B,    0,    0, NULL },                               /* 0x6B */
146    { 0x006C,    0,    0, NULL },                               /* 0x6C */
147    { 0x006D,    0,    0, NULL },                               /* 0x6D */
148    { 0x006E,    0,    0, NULL },                               /* 0x6E */
149    { 0x006F,    0,    0, NULL },                               /* 0x6F */
150    { 0x0070,    0,    0, NULL },                               /* 0x70 */
151    { 0x0071,    0,    0, NULL },                               /* 0x71 */
152    { 0x0072,    0,    0, NULL },                               /* 0x72 */
153    { 0x0073,    0,    0, NULL },                               /* 0x73 */
154    { 0x0074,    0,    0, NULL },                               /* 0x74 */
155    { 0x0075,    0,    0, NULL },                               /* 0x75 */
156    { 0x0076,    0,    0, NULL },                               /* 0x76 */
157    { 0x0077,    0,    0, NULL },                               /* 0x77 */
158    { 0x0078,    0,    0, NULL },                               /* 0x78 */
159    { 0x0079,    0,    0, NULL },                               /* 0x79 */
160    { 0x007A,    0,    0, NULL },                               /* 0x7A */
161    { 0x007B,    0,    0, NULL },                               /* 0x7B */
162    { 0x007C,    0,    0, NULL },                               /* 0x7C */
163    { 0x007D,    0,    0, NULL },                               /* 0x7D */
164    { 0x007E,    0,    0, NULL },                               /* 0x7E */
165    { 0x007F,    0,    0, NULL },                               /* 0x7F */
166    {      0,    1,    0, NULL },                               /* 0x80 */
167    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_81 },       /* 0x81 */
168    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_82 },       /* 0x82 */
169    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_83 },       /* 0x83 */
170    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_84 },       /* 0x84 */
171    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_85 },       /* 0x85 */
172    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_86 },       /* 0x86 */
173    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_87 },       /* 0x87 */
174    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_88 },       /* 0x88 */
175    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_89 },       /* 0x89 */
176    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8A },       /* 0x8A */
177    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8B },       /* 0x8B */
178    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8C },       /* 0x8C */
179    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8D },       /* 0x8D */
180    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8E },       /* 0x8E */
181    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_8F },       /* 0x8F */
182    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_90 },       /* 0x90 */
183    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_91 },       /* 0x91 */
184    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_92 },       /* 0x92 */
185    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_93 },       /* 0x93 */
186    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_94 },       /* 0x94 */
187    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_95 },       /* 0x95 */
188    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_96 },       /* 0x96 */
189    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_97 },       /* 0x97 */
190    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_98 },       /* 0x98 */
191    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_99 },       /* 0x99 */
192    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9A },       /* 0x9A */
193    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9B },       /* 0x9B */
194    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9C },       /* 0x9C */
195    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9D },       /* 0x9D */
196    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9E },       /* 0x9E */
197    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_9F },       /* 0x9F */
198    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A0 },       /* 0xA0 */
199    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A1 },       /* 0xA1 */
200    {      0, 0x41, 0xE7, aImplDBCSToUniTab_KSC5601_A2 },       /* 0xA2 */
201    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A3 },       /* 0xA3 */
202    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A4 },       /* 0xA4 */
203    {      0, 0x41, 0xF8, aImplDBCSToUniTab_KSC5601_A5 },       /* 0xA5 */
204    {      0, 0x41, 0xE4, aImplDBCSToUniTab_KSC5601_A6 },       /* 0xA6 */
205    {      0, 0x41, 0xEF, aImplDBCSToUniTab_KSC5601_A7 },       /* 0xA7 */
206    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A8 },       /* 0xA8 */
207    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_A9 },       /* 0xA9 */
208    {      0, 0x41, 0xF3, aImplDBCSToUniTab_KSC5601_AA },       /* 0xAA */
209    {      0, 0x41, 0xF6, aImplDBCSToUniTab_KSC5601_AB },       /* 0xAB */
210    {      0, 0x41, 0xF1, aImplDBCSToUniTab_KSC5601_AC },       /* 0xAC */
211    {      0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AD },       /* 0xAD */
212    {      0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AE },       /* 0xAE */
213    {      0, 0x41, 0xA0, aImplDBCSToUniTab_KSC5601_AF },       /* 0xAF */
214    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B0 },       /* 0xB0 */
215    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B1 },       /* 0xB1 */
216    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B2 },       /* 0xB2 */
217    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B3 },       /* 0xB3 */
218    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B4 },       /* 0xB4 */
219    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B5 },       /* 0xB5 */
220    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B6 },       /* 0xB6 */
221    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B7 },       /* 0xB7 */
222    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B8 },       /* 0xB8 */
223    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_B9 },       /* 0xB9 */
224    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BA },       /* 0xBA */
225    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BB },       /* 0xBB */
226    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BC },       /* 0xBC */
227    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BD },       /* 0xBD */
228    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BE },       /* 0xBE */
229    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_BF },       /* 0xBF */
230    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C0 },       /* 0xC0 */
231    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C1 },       /* 0xC1 */
232    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C2 },       /* 0xC2 */
233    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C3 },       /* 0xC3 */
234    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C4 },       /* 0xC4 */
235    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C5 },       /* 0xC5 */
236    {      0, 0x41, 0xFE, aImplDBCSToUniTab_KSC5601_C6 },       /* 0xC6 */
237    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C7 },       /* 0xC7 */
238    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_C8 },       /* 0xC8 */
239    {      0,    1,    0, aImplDoubleByteIdentifierTab },       /* 0xC9 */
240    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CA },       /* 0xCA */
241    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CB },       /* 0xCB */
242    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CC },       /* 0xCC */
243    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CD },       /* 0xCD */
244    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CE },       /* 0xCE */
245    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_CF },       /* 0xCF */
246    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D0 },       /* 0xD0 */
247    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D1 },       /* 0xD1 */
248    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D2 },       /* 0xD2 */
249    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D3 },       /* 0xD3 */
250    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D4 },       /* 0xD4 */
251    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D5 },       /* 0xD5 */
252    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D6 },       /* 0xD6 */
253    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D7 },       /* 0xD7 */
254    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D8 },       /* 0xD8 */
255    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_D9 },       /* 0xD9 */
256    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DA },       /* 0xDA */
257    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DB },       /* 0xDB */
258    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DC },       /* 0xDC */
259    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DD },       /* 0xDD */
260    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DE },       /* 0xDE */
261    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_DF },       /* 0xDF */
262    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E0 },       /* 0xE0 */
263    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E1 },       /* 0xE1 */
264    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E2 },       /* 0xE2 */
265    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E3 },       /* 0xE3 */
266    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E4 },       /* 0xE4 */
267    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E5 },       /* 0xE5 */
268    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E6 },       /* 0xE6 */
269    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E7 },       /* 0xE7 */
270    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E8 },       /* 0xE8 */
271    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_E9 },       /* 0xE9 */
272    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EA },       /* 0xEA */
273    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EB },       /* 0xEB */
274    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EC },       /* 0xEC */
275    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_ED },       /* 0xED */
276    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EE },       /* 0xEE */
277    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_EF },       /* 0xEF */
278    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F0 },       /* 0xF0 */
279    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F1 },       /* 0xF1 */
280    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F2 },       /* 0xF2 */
281    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F3 },       /* 0xF3 */
282    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F4 },       /* 0xF4 */
283    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F5 },       /* 0xF5 */
284    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F6 },       /* 0xF6 */
285    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F7 },       /* 0xF7 */
286    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F8 },       /* 0xF8 */
287    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_F9 },       /* 0xF9 */
288    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FA },       /* 0xFA */
289    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FB },       /* 0xFB */
290    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FC },       /* 0xFC */
291    {      0, 0xA1, 0xFE, aImplDBCSToUniTab_KSC5601_FD },       /* 0xFD */
292    {      0,    1,    0, aImplDoubleByteIdentifierTab },       /* 0xFE */
293    {      0,    1,    0, NULL }                                /* 0xFF */
294};
295
296/* ----------------------------------------------------------------------- */
297
298static ImplUniToDBCSHighTab const aKSC5601DBCSHighTab[256] =
299{
300    { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_00 },               /* 0x00 */
301    { 0x11, 0x67, aImplUniToDBCSTab_KSC5601_01 },               /* 0x01 */
302    { 0xC7, 0xDD, aImplUniToDBCSTab_KSC5601_02 },               /* 0x02 */
303    { 0x91, 0xC9, aImplUniToDBCSTab_KSC5601_03 },               /* 0x03 */
304    { 0x01, 0x51, aImplUniToDBCSTab_KSC5601_04 },               /* 0x04 */
305    {    1,    0, NULL },                                       /* 0x05 */
306    {    1,    0, NULL },                                       /* 0x06 */
307    {    1,    0, NULL },                                       /* 0x07 */
308    {    1,    0, NULL },                                       /* 0x08 */
309    {    1,    0, NULL },                                       /* 0x09 */
310    {    1,    0, NULL },                                       /* 0x0A */
311    {    1,    0, NULL },                                       /* 0x0B */
312    {    1,    0, NULL },                                       /* 0x0C */
313    {    1,    0, NULL },                                       /* 0x0D */
314    {    1,    0, NULL },                                       /* 0x0E */
315    {    1,    0, NULL },                                       /* 0x0F */
316    {    1,    0, NULL },                                       /* 0x10 */
317    {    1,    0, NULL },                                       /* 0x11 */
318    {    1,    0, NULL },                                       /* 0x12 */
319    {    1,    0, NULL },                                       /* 0x13 */
320    {    1,    0, NULL },                                       /* 0x14 */
321    {    1,    0, NULL },                                       /* 0x15 */
322    {    1,    0, NULL },                                       /* 0x16 */
323    {    1,    0, NULL },                                       /* 0x17 */
324    {    1,    0, NULL },                                       /* 0x18 */
325    {    1,    0, NULL },                                       /* 0x19 */
326    {    1,    0, NULL },                                       /* 0x1A */
327    {    1,    0, NULL },                                       /* 0x1B */
328    {    1,    0, NULL },                                       /* 0x1C */
329    {    1,    0, NULL },                                       /* 0x1D */
330    {    1,    0, NULL },                                       /* 0x1E */
331    {    1,    0, NULL },                                       /* 0x1F */
332    { 0x15, 0xAC, aImplUniToDBCSTab_KSC5601_20 },               /* 0x20 */
333    { 0x03, 0xD4, aImplUniToDBCSTab_KSC5601_21 },               /* 0x21 */
334    { 0x00, 0xA5, aImplUniToDBCSTab_KSC5601_22 },               /* 0x22 */
335    { 0x12, 0x12, aImplUniToDBCSTab_KSC5601_23 },               /* 0x23 */
336    { 0x60, 0xE9, aImplUniToDBCSTab_KSC5601_24 },               /* 0x24 */
337    { 0x00, 0xD1, aImplUniToDBCSTab_KSC5601_25 },               /* 0x25 */
338    { 0x05, 0x6D, aImplUniToDBCSTab_KSC5601_26 },               /* 0x26 */
339    {    1,    0, NULL },                                       /* 0x27 */
340    {    1,    0, NULL },                                       /* 0x28 */
341    {    1,    0, NULL },                                       /* 0x29 */
342    {    1,    0, NULL },                                       /* 0x2A */
343    {    1,    0, NULL },                                       /* 0x2B */
344    {    1,    0, NULL },                                       /* 0x2C */
345    {    1,    0, NULL },                                       /* 0x2D */
346    {    1,    0, NULL },                                       /* 0x2E */
347    {    1,    0, NULL },                                       /* 0x2F */
348    { 0x00, 0xF7, aImplUniToDBCSTab_KSC5601_30 },               /* 0x30 */
349    { 0x31, 0xFE, aImplUniToDBCSTab_KSC5601_31 },               /* 0x31 */
350    { 0x00, 0x7F, aImplUniToDBCSTab_KSC5601_32 },               /* 0x32 */
351    { 0x80, 0xDD, aImplUniToDBCSTab_KSC5601_33 },               /* 0x33 */
352    {    1,    0, NULL },                                       /* 0x34 */
353    {    1,    0, NULL },                                       /* 0x35 */
354    {    1,    0, NULL },                                       /* 0x36 */
355    {    1,    0, NULL },                                       /* 0x37 */
356    {    1,    0, NULL },                                       /* 0x38 */
357    {    1,    0, NULL },                                       /* 0x39 */
358    {    1,    0, NULL },                                       /* 0x3A */
359    {    1,    0, NULL },                                       /* 0x3B */
360    {    1,    0, NULL },                                       /* 0x3C */
361    {    1,    0, NULL },                                       /* 0x3D */
362    {    1,    0, NULL },                                       /* 0x3E */
363    {    1,    0, NULL },                                       /* 0x3F */
364    {    1,    0, NULL },                                       /* 0x40 */
365    {    1,    0, NULL },                                       /* 0x41 */
366    {    1,    0, NULL },                                       /* 0x42 */
367    {    1,    0, NULL },                                       /* 0x43 */
368    {    1,    0, NULL },                                       /* 0x44 */
369    {    1,    0, NULL },                                       /* 0x45 */
370    {    1,    0, NULL },                                       /* 0x46 */
371    {    1,    0, NULL },                                       /* 0x47 */
372    {    1,    0, NULL },                                       /* 0x48 */
373    {    1,    0, NULL },                                       /* 0x49 */
374    {    1,    0, NULL },                                       /* 0x4A */
375    {    1,    0, NULL },                                       /* 0x4B */
376    {    1,    0, NULL },                                       /* 0x4C */
377    {    1,    0, NULL },                                       /* 0x4D */
378    { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_4E },               /* 0x4E */
379    { 0x01, 0xFA, aImplUniToDBCSTab_KSC5601_4F },               /* 0x4F */
380    { 0x02, 0xFF, aImplUniToDBCSTab_KSC5601_50 },               /* 0x50 */
381    { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_51 },               /* 0x51 */
382    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_52 },               /* 0x52 */
383    { 0x05, 0xF8, aImplUniToDBCSTab_KSC5601_53 },               /* 0x53 */
384    { 0x03, 0xFA, aImplUniToDBCSTab_KSC5601_54 },               /* 0x54 */
385    { 0x04, 0xFE, aImplUniToDBCSTab_KSC5601_55 },               /* 0x55 */
386    { 0x06, 0xFA, aImplUniToDBCSTab_KSC5601_56 },               /* 0x56 */
387    { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_57 },               /* 0x57 */
388    { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_58 },               /* 0x58 */
389    { 0x07, 0xFF, aImplUniToDBCSTab_KSC5601_59 },               /* 0x59 */
390    { 0x01, 0xE9, aImplUniToDBCSTab_KSC5601_5A },               /* 0x5A */
391    { 0x05, 0xFA, aImplUniToDBCSTab_KSC5601_5B },               /* 0x5B */
392    { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_5C },               /* 0x5C */
393    { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_5D },               /* 0x5D */
394    { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_5E },               /* 0x5E */
395    { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_5F },               /* 0x5F */
396    { 0x07, 0xFB, aImplUniToDBCSTab_KSC5601_60 },               /* 0x60 */
397    { 0x01, 0xFF, aImplUniToDBCSTab_KSC5601_61 },               /* 0x61 */
398    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_62 },               /* 0x62 */
399    { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_63 },               /* 0x63 */
400    { 0x0D, 0xFE, aImplUniToDBCSTab_KSC5601_64 },               /* 0x64 */
401    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_65 },               /* 0x65 */
402    { 0x06, 0xFF, aImplUniToDBCSTab_KSC5601_66 },               /* 0x66 */
403    { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_67 },               /* 0x67 */
404    { 0x12, 0xFA, aImplUniToDBCSTab_KSC5601_68 },               /* 0x68 */
405    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_69 },               /* 0x69 */
406    { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_6A },               /* 0x6A */
407    { 0x04, 0xEC, aImplUniToDBCSTab_KSC5601_6B },               /* 0x6B */
408    { 0x08, 0xF3, aImplUniToDBCSTab_KSC5601_6C },               /* 0x6C */
409    { 0x03, 0xFB, aImplUniToDBCSTab_KSC5601_6D },               /* 0x6D */
410    { 0x17, 0xFF, aImplUniToDBCSTab_KSC5601_6E },               /* 0x6E */
411    { 0x01, 0xFE, aImplUniToDBCSTab_KSC5601_6F },               /* 0x6F */
412    { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_70 },               /* 0x70 */
413    { 0x04, 0xFF, aImplUniToDBCSTab_KSC5601_71 },               /* 0x71 */
414    { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_72 },               /* 0x72 */
415    { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_73 },               /* 0x73 */
416    { 0x01, 0xF7, aImplUniToDBCSTab_KSC5601_74 },               /* 0x74 */
417    { 0x01, 0xFC, aImplUniToDBCSTab_KSC5601_75 },               /* 0x75 */
418    { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_76 },               /* 0x76 */
419    { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_77 },               /* 0x77 */
420    { 0x02, 0xFB, aImplUniToDBCSTab_KSC5601_78 },               /* 0x78 */
421    { 0x01, 0xFB, aImplUniToDBCSTab_KSC5601_79 },               /* 0x79 */
422    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_7A },               /* 0x7A */
423    { 0x0F, 0xE9, aImplUniToDBCSTab_KSC5601_7B },               /* 0x7B */
424    { 0x07, 0xFE, aImplUniToDBCSTab_KSC5601_7C },               /* 0x7C */
425    { 0x00, 0xFB, aImplUniToDBCSTab_KSC5601_7D },               /* 0x7D */
426    { 0x09, 0x9C, aImplUniToDBCSTab_KSC5601_7E },               /* 0x7E */
427    { 0x36, 0xFC, aImplUniToDBCSTab_KSC5601_7F },               /* 0x7F */
428    { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_80 },               /* 0x80 */
429    { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_81 },               /* 0x81 */
430    { 0x05, 0xFE, aImplUniToDBCSTab_KSC5601_82 },               /* 0x82 */
431    { 0x01, 0xFD, aImplUniToDBCSTab_KSC5601_83 },               /* 0x83 */
432    { 0x03, 0xFC, aImplUniToDBCSTab_KSC5601_84 },               /* 0x84 */
433    { 0x11, 0xFF, aImplUniToDBCSTab_KSC5601_85 },               /* 0x85 */
434    { 0x02, 0xFE, aImplUniToDBCSTab_KSC5601_86 },               /* 0x86 */
435    { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_87 },               /* 0x87 */
436    { 0x05, 0xFD, aImplUniToDBCSTab_KSC5601_88 },               /* 0x88 */
437    { 0x07, 0xF8, aImplUniToDBCSTab_KSC5601_89 },               /* 0x89 */
438    { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_8A },               /* 0x8A */
439    { 0x00, 0x9A, aImplUniToDBCSTab_KSC5601_8B },               /* 0x8B */
440    { 0x37, 0xFD, aImplUniToDBCSTab_KSC5601_8C },               /* 0x8C */
441    { 0x04, 0xFB, aImplUniToDBCSTab_KSC5601_8D },               /* 0x8D */
442    { 0x0A, 0xFE, aImplUniToDBCSTab_KSC5601_8E },               /* 0x8E */
443    { 0x03, 0xFD, aImplUniToDBCSTab_KSC5601_8F },               /* 0x8F */
444    { 0x00, 0xFD, aImplUniToDBCSTab_KSC5601_90 },               /* 0x90 */
445    { 0x02, 0xF5, aImplUniToDBCSTab_KSC5601_91 },               /* 0x91 */
446    { 0x0D, 0xFC, aImplUniToDBCSTab_KSC5601_92 },               /* 0x92 */
447    { 0x04, 0xF6, aImplUniToDBCSTab_KSC5601_93 },               /* 0x93 */
448    { 0x04, 0x7F, aImplUniToDBCSTab_KSC5601_94 },               /* 0x94 */
449    { 0x77, 0xE2, aImplUniToDBCSTab_KSC5601_95 },               /* 0x95 */
450    { 0x1C, 0xFB, aImplUniToDBCSTab_KSC5601_96 },               /* 0x96 */
451    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_97 },               /* 0x97 */
452    { 0x00, 0xFE, aImplUniToDBCSTab_KSC5601_98 },               /* 0x98 */
453    { 0x03, 0xFF, aImplUniToDBCSTab_KSC5601_99 },               /* 0x99 */
454    { 0x01, 0xEE, aImplUniToDBCSTab_KSC5601_9A },               /* 0x9A */
455    { 0x1A, 0xE8, aImplUniToDBCSTab_KSC5601_9B },               /* 0x9B */
456    { 0x0D, 0xF6, aImplUniToDBCSTab_KSC5601_9C },               /* 0x9C */
457    { 0x09, 0xFA, aImplUniToDBCSTab_KSC5601_9D },               /* 0x9D */
458    { 0x1A, 0xF4, aImplUniToDBCSTab_KSC5601_9E },               /* 0x9E */
459    { 0x07, 0x9C, aImplUniToDBCSTab_KSC5601_9F },               /* 0x9F */
460    {    1,    0, NULL },                                       /* 0xA0 */
461    {    1,    0, NULL },                                       /* 0xA1 */
462    {    1,    0, NULL },                                       /* 0xA2 */
463    {    1,    0, NULL },                                       /* 0xA3 */
464    {    1,    0, NULL },                                       /* 0xA4 */
465    {    1,    0, NULL },                                       /* 0xA5 */
466    {    1,    0, NULL },                                       /* 0xA6 */
467    {    1,    0, NULL },                                       /* 0xA7 */
468    {    1,    0, NULL },                                       /* 0xA8 */
469    {    1,    0, NULL },                                       /* 0xA9 */
470    {    1,    0, NULL },                                       /* 0xAA */
471    {    1,    0, NULL },                                       /* 0xAB */
472    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AC },               /* 0xAC */
473    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AD },               /* 0xAD */
474    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AE },               /* 0xAE */
475    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_AF },               /* 0xAF */
476    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B0 },               /* 0xB0 */
477    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B1 },               /* 0xB1 */
478    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B2 },               /* 0xB2 */
479    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B3 },               /* 0xB3 */
480    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B4 },               /* 0xB4 */
481    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B5 },               /* 0xB5 */
482    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B6 },               /* 0xB6 */
483    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B7 },               /* 0xB7 */
484    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B8 },               /* 0xB8 */
485    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_B9 },               /* 0xB9 */
486    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BA },               /* 0xBA */
487    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BB },               /* 0xBB */
488    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BC },               /* 0xBC */
489    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BD },               /* 0xBD */
490    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BE },               /* 0xBE */
491    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_BF },               /* 0xBF */
492    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C0 },               /* 0xC0 */
493    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C1 },               /* 0xC1 */
494    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C2 },               /* 0xC2 */
495    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C3 },               /* 0xC3 */
496    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C4 },               /* 0xC4 */
497    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C5 },               /* 0xC5 */
498    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C6 },               /* 0xC6 */
499    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C7 },               /* 0xC7 */
500    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C8 },               /* 0xC8 */
501    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_C9 },               /* 0xC9 */
502    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CA },               /* 0xCA */
503    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CB },               /* 0xCB */
504    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CC },               /* 0xCC */
505    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CD },               /* 0xCD */
506    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CE },               /* 0xCE */
507    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_CF },               /* 0xCF */
508    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D0 },               /* 0xD0 */
509    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D1 },               /* 0xD1 */
510    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D2 },               /* 0xD2 */
511    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D3 },               /* 0xD3 */
512    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D4 },               /* 0xD4 */
513    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D5 },               /* 0xD5 */
514    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_D6 },               /* 0xD6 */
515    { 0x00, 0xA3, aImplUniToDBCSTab_KSC5601_D7 },               /* 0xD7 */
516    {    1,    0, NULL },                                       /* 0xD8 */
517    {    1,    0, NULL },                                       /* 0xD9 */
518    {    1,    0, NULL },                                       /* 0xDA */
519    {    1,    0, NULL },                                       /* 0xDB */
520    {    1,    0, NULL },                                       /* 0xDC */
521    {    1,    0, NULL },                                       /* 0xDD */
522    {    1,    0, NULL },                                       /* 0xDE */
523    {    1,    0, NULL },                                       /* 0xDF */
524    {    1,    0, NULL },                                       /* 0xE0 */
525    {    1,    0, NULL },                                       /* 0xE1 */
526    {    1,    0, NULL },                                       /* 0xE2 */
527    {    1,    0, NULL },                                       /* 0xE3 */
528    {    1,    0, NULL },                                       /* 0xE4 */
529    {    1,    0, NULL },                                       /* 0xE5 */
530    {    1,    0, NULL },                                       /* 0xE6 */
531    {    1,    0, NULL },                                       /* 0xE7 */
532    {    1,    0, NULL },                                       /* 0xE8 */
533    {    1,    0, NULL },                                       /* 0xE9 */
534    {    1,    0, NULL },                                       /* 0xEA */
535    {    1,    0, NULL },                                       /* 0xEB */
536    {    1,    0, NULL },                                       /* 0xEC */
537    {    1,    0, NULL },                                       /* 0xED */
538    {    1,    0, NULL },                                       /* 0xEE */
539    {    1,    0, NULL },                                       /* 0xEF */
540    {    1,    0, NULL },                                       /* 0xF0 */
541    {    1,    0, NULL },                                       /* 0xF1 */
542    {    1,    0, NULL },                                       /* 0xF2 */
543    {    1,    0, NULL },                                       /* 0xF3 */
544    {    1,    0, NULL },                                       /* 0xF4 */
545    {    1,    0, NULL },                                       /* 0xF5 */
546    {    1,    0, NULL },                                       /* 0xF6 */
547    {    1,    0, NULL },                                       /* 0xF7 */
548    {    1,    0, NULL },                                       /* 0xF8 */
549    { 0x00, 0xFF, aImplUniToDBCSTab_KSC5601_F9 },               /* 0xF9 */
550    { 0x00, 0x0B, aImplUniToDBCSTab_KSC5601_FA },               /* 0xFA */
551    {    1,    0, NULL },                                       /* 0xFB */
552    {    1,    0, NULL },                                       /* 0xFC */
553    {    1,    0, NULL },                                       /* 0xFD */
554    {    1,    0, NULL },                                       /* 0xFE */
555    { 0x01, 0xE6, aImplUniToDBCSTab_KSC5601_FF }                /* 0xFF */
556};
557
558/* ----------------------------------------------------------------------- */
559
560/* C9A1-C9FE    -> E000-E05D */
561/* FEA1-FEFE    -> E05E-E0BB */
562
563#define DBCS_EUDC_MS949_COUNT    2
564static ImplDBCSEUDCData const aImplMS949DBCSEUDCTab[DBCS_EUDC_MS949_COUNT] =
565{
566    /* EUDC-Range */
567    /* Lead:    C9-C9 */
568    /* Trail:   A1-FE */
569    { 0xC9, 0xC9, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5E, 0xE000, 0xE05D },
570    /* Lead:    FE-FE */
571    /* Trail:   A1-FE */
572    { 0xFE, 0xFE, 0xA1, 0xFE, 0, 0, 0, 0, 1, 0x5E, 0xE05E, 0xE0BB }
573};
574
575/* ----------------------------------------------------------------------- */
576
577static ImplDBCSConvertData const aImplKSC5601DBCSCvtData =
578{
579    aKSC5601UniLeadTab,
580    aKSC5601DBCSHighTab,
581    0xA1, 0xFE,
582    0xA1, 0xFE,
583    aImplMS949DBCSEUDCTab,
584    DBCS_EUDC_MS949_COUNT
585};
586
587/* ----------------------------------------------------------------------- */
588
589static ImplDBCSConvertData const aImplMS949DBCSCvtData =
590{
591    aKSC5601UniLeadTab,
592    aKSC5601DBCSHighTab,
593    0x00, 0xFF,
594    0x41, 0xFE,
595    aImplMS949DBCSEUDCTab,
596    DBCS_EUDC_MS949_COUNT
597};
598
599/* ======================================================================= */
600
601static ImplTextEncodingData const aImplEUCKRTextEncodingData
602    = { { &aImplKSC5601DBCSCvtData,
603          ImplDBCSToUnicode,
604          ImplUnicodeToDBCS,
605          NULL,
606          NULL,
607          NULL,
608          NULL,
609          NULL,
610          NULL },
611        1,
612        2,
613        2,
614        129,
615        "euc-kr",
616        "euc-kr",
617        RTL_TEXTENCODING_INFO_ASCII
618            | RTL_TEXTENCODING_INFO_MULTIBYTE
619            | RTL_TEXTENCODING_INFO_MIME };
620    /* SCRIPT_KOREAN, pc code page 934, mac encoding 3 */
621
622/* ======================================================================= */
623
624static ImplTextEncodingData const aImplMS949TextEncodingData
625    = { { &aImplMS949DBCSCvtData,
626          ImplDBCSToUnicode,
627          ImplUnicodeToDBCS,
628          NULL,
629          NULL,
630          NULL,
631          NULL,
632          NULL,
633          NULL },
634        1,
635        2,
636        2,
637        129,
638        "euc-kr",
639        "euc-kr",
640        RTL_TEXTENCODING_INFO_MULTIBYTE };
641    /* WIN/DOS/OS2, SCRIPT_KOREAN, pc code page 934, mac encoding 3 */
642
643/* ======================================================================= */
644
645/* Apple has some extension, which we don't support */
646
647static ImplTextEncodingData const aImplAPPLEKOREANTextEncodingData
648    = { { &aImplMS949DBCSCvtData,
649          ImplDBCSToUnicode,
650          ImplUnicodeToDBCS,
651          NULL,
652          NULL,
653          NULL,
654          NULL,
655          NULL,
656          NULL },
657        1,
658        2,
659        2,
660        129,
661        "euc-kr",
662        "euc-kr",
663        RTL_TEXTENCODING_INFO_MULTIBYTE };
664    /* MAC, SCRIPT_KOREAN, pc code page 934, mac encoding 3 */
665
666/* ======================================================================= */
667
668static ImplDBCSToUniLeadTab const aJOHABUniLeadTab[256] =
669{
670    { 0x0000,    0,    0, NULL },                               /* 0x00 */
671    { 0x0001,    0,    0, NULL },                               /* 0x01 */
672    { 0x0002,    0,    0, NULL },                               /* 0x02 */
673    { 0x0003,    0,    0, NULL },                               /* 0x03 */
674    { 0x0004,    0,    0, NULL },                               /* 0x04 */
675    { 0x0005,    0,    0, NULL },                               /* 0x05 */
676    { 0x0006,    0,    0, NULL },                               /* 0x06 */
677    { 0x0007,    0,    0, NULL },                               /* 0x07 */
678    { 0x0008,    0,    0, NULL },                               /* 0x08 */
679    { 0x0009,    0,    0, NULL },                               /* 0x09 */
680    { 0x000A,    0,    0, NULL },                               /* 0x0A */
681    { 0x000B,    0,    0, NULL },                               /* 0x0B */
682    { 0x000C,    0,    0, NULL },                               /* 0x0C */
683    { 0x000D,    0,    0, NULL },                               /* 0x0D */
684    { 0x000E,    0,    0, NULL },                               /* 0x0E */
685    { 0x000F,    0,    0, NULL },                               /* 0x0F */
686    { 0x0010,    0,    0, NULL },                               /* 0x10 */
687    { 0x0011,    0,    0, NULL },                               /* 0x11 */
688    { 0x0012,    0,    0, NULL },                               /* 0x12 */
689    { 0x0013,    0,    0, NULL },                               /* 0x13 */
690    { 0x0014,    0,    0, NULL },                               /* 0x14 */
691    { 0x0015,    0,    0, NULL },                               /* 0x15 */
692    { 0x0016,    0,    0, NULL },                               /* 0x16 */
693    { 0x0017,    0,    0, NULL },                               /* 0x17 */
694    { 0x0018,    0,    0, NULL },                               /* 0x18 */
695    { 0x0019,    0,    0, NULL },                               /* 0x19 */
696    { 0x001A,    0,    0, NULL },                               /* 0x1A */
697    { 0x001B,    0,    0, NULL },                               /* 0x1B */
698    { 0x001C,    0,    0, NULL },                               /* 0x1C */
699    { 0x001D,    0,    0, NULL },                               /* 0x1D */
700    { 0x001E,    0,    0, NULL },                               /* 0x1E */
701    { 0x001F,    0,    0, NULL },                               /* 0x1F */
702    { 0x0020,    0,    0, NULL },                               /* 0x20 */
703    { 0x0021,    0,    0, NULL },                               /* 0x21 */
704    { 0x0022,    0,    0, NULL },                               /* 0x22 */
705    { 0x0023,    0,    0, NULL },                               /* 0x23 */
706    { 0x0024,    0,    0, NULL },                               /* 0x24 */
707    { 0x0025,    0,    0, NULL },                               /* 0x25 */
708    { 0x0026,    0,    0, NULL },                               /* 0x26 */
709    { 0x0027,    0,    0, NULL },                               /* 0x27 */
710    { 0x0028,    0,    0, NULL },                               /* 0x28 */
711    { 0x0029,    0,    0, NULL },                               /* 0x29 */
712    { 0x002A,    0,    0, NULL },                               /* 0x2A */
713    { 0x002B,    0,    0, NULL },                               /* 0x2B */
714    { 0x002C,    0,    0, NULL },                               /* 0x2C */
715    { 0x002D,    0,    0, NULL },                               /* 0x2D */
716    { 0x002E,    0,    0, NULL },                               /* 0x2E */
717    { 0x002F,    0,    0, NULL },                               /* 0x2F */
718    { 0x0030,    0,    0, NULL },                               /* 0x30 */
719    { 0x0031,    0,    0, NULL },                               /* 0x31 */
720    { 0x0032,    0,    0, NULL },                               /* 0x32 */
721    { 0x0033,    0,    0, NULL },                               /* 0x33 */
722    { 0x0034,    0,    0, NULL },                               /* 0x34 */
723    { 0x0035,    0,    0, NULL },                               /* 0x35 */
724    { 0x0036,    0,    0, NULL },                               /* 0x36 */
725    { 0x0037,    0,    0, NULL },                               /* 0x37 */
726    { 0x0038,    0,    0, NULL },                               /* 0x38 */
727    { 0x0039,    0,    0, NULL },                               /* 0x39 */
728    { 0x003A,    0,    0, NULL },                               /* 0x3A */
729    { 0x003B,    0,    0, NULL },                               /* 0x3B */
730    { 0x003C,    0,    0, NULL },                               /* 0x3C */
731    { 0x003D,    0,    0, NULL },                               /* 0x3D */
732    { 0x003E,    0,    0, NULL },                               /* 0x3E */
733    { 0x003F,    0,    0, NULL },                               /* 0x3F */
734    { 0x0040,    0,    0, NULL },                               /* 0x40 */
735    { 0x0041,    0,    0, NULL },                               /* 0x41 */
736    { 0x0042,    0,    0, NULL },                               /* 0x42 */
737    { 0x0043,    0,    0, NULL },                               /* 0x43 */
738    { 0x0044,    0,    0, NULL },                               /* 0x44 */
739    { 0x0045,    0,    0, NULL },                               /* 0x45 */
740    { 0x0046,    0,    0, NULL },                               /* 0x46 */
741    { 0x0047,    0,    0, NULL },                               /* 0x47 */
742    { 0x0048,    0,    0, NULL },                               /* 0x48 */
743    { 0x0049,    0,    0, NULL },                               /* 0x49 */
744    { 0x004A,    0,    0, NULL },                               /* 0x4A */
745    { 0x004B,    0,    0, NULL },                               /* 0x4B */
746    { 0x004C,    0,    0, NULL },                               /* 0x4C */
747    { 0x004D,    0,    0, NULL },                               /* 0x4D */
748    { 0x004E,    0,    0, NULL },                               /* 0x4E */
749    { 0x004F,    0,    0, NULL },                               /* 0x4F */
750    { 0x0050,    0,    0, NULL },                               /* 0x50 */
751    { 0x0051,    0,    0, NULL },                               /* 0x51 */
752    { 0x0052,    0,    0, NULL },                               /* 0x52 */
753    { 0x0053,    0,    0, NULL },                               /* 0x53 */
754    { 0x0054,    0,    0, NULL },                               /* 0x54 */
755    { 0x0055,    0,    0, NULL },                               /* 0x55 */
756    { 0x0056,    0,    0, NULL },                               /* 0x56 */
757    { 0x0057,    0,    0, NULL },                               /* 0x57 */
758    { 0x0058,    0,    0, NULL },                               /* 0x58 */
759    { 0x0059,    0,    0, NULL },                               /* 0x59 */
760    { 0x005A,    0,    0, NULL },                               /* 0x5A */
761    { 0x005B,    0,    0, NULL },                               /* 0x5B */
762    { 0x005C,    0,    0, NULL },                               /* 0x5C */
763    { 0x005D,    0,    0, NULL },                               /* 0x5D */
764    { 0x005E,    0,    0, NULL },                               /* 0x5E */
765    { 0x005F,    0,    0, NULL },                               /* 0x5F */
766    { 0x0060,    0,    0, NULL },                               /* 0x60 */
767    { 0x0061,    0,    0, NULL },                               /* 0x61 */
768    { 0x0062,    0,    0, NULL },                               /* 0x62 */
769    { 0x0063,    0,    0, NULL },                               /* 0x63 */
770    { 0x0064,    0,    0, NULL },                               /* 0x64 */
771    { 0x0065,    0,    0, NULL },                               /* 0x65 */
772    { 0x0066,    0,    0, NULL },                               /* 0x66 */
773    { 0x0067,    0,    0, NULL },                               /* 0x67 */
774    { 0x0068,    0,    0, NULL },                               /* 0x68 */
775    { 0x0069,    0,    0, NULL },                               /* 0x69 */
776    { 0x006A,    0,    0, NULL },                               /* 0x6A */
777    { 0x006B,    0,    0, NULL },                               /* 0x6B */
778    { 0x006C,    0,    0, NULL },                               /* 0x6C */
779    { 0x006D,    0,    0, NULL },                               /* 0x6D */
780    { 0x006E,    0,    0, NULL },                               /* 0x6E */
781    { 0x006F,    0,    0, NULL },                               /* 0x6F */
782    { 0x0070,    0,    0, NULL },                               /* 0x70 */
783    { 0x0071,    0,    0, NULL },                               /* 0x71 */
784    { 0x0072,    0,    0, NULL },                               /* 0x72 */
785    { 0x0073,    0,    0, NULL },                               /* 0x73 */
786    { 0x0074,    0,    0, NULL },                               /* 0x74 */
787    { 0x0075,    0,    0, NULL },                               /* 0x75 */
788    { 0x0076,    0,    0, NULL },                               /* 0x76 */
789    { 0x0077,    0,    0, NULL },                               /* 0x77 */
790    { 0x0078,    0,    0, NULL },                               /* 0x78 */
791    { 0x0079,    0,    0, NULL },                               /* 0x79 */
792    { 0x007A,    0,    0, NULL },                               /* 0x7A */
793    { 0x007B,    0,    0, NULL },                               /* 0x7B */
794    { 0x007C,    0,    0, NULL },                               /* 0x7C */
795    { 0x007D,    0,    0, NULL },                               /* 0x7D */
796    { 0x007E,    0,    0, NULL },                               /* 0x7E */
797    { 0x007F,    0,    0, NULL },                               /* 0x7F */
798    { 0x0080,    0,    0, NULL },                               /* 0x80 */
799    { 0x0081,    0,    0, NULL },                               /* 0x81 */
800    { 0x0082,    0,    0, NULL },                               /* 0x82 */
801    { 0x0083,    0,    0, NULL },                               /* 0x83 */
802    {      0, 0x44, 0xE1, aImplDBCSToUniTab_JOHAB_84 },         /* 0x84 */
803    {      0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_85 },         /* 0x85 */
804    {      0, 0x41, 0xE1, aImplDBCSToUniTab_JOHAB_86 },         /* 0x86 */
805    {      0, 0x41, 0xA1, aImplDBCSToUniTab_JOHAB_87 },         /* 0x87 */
806    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_88 },         /* 0x88 */
807    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_89 },         /* 0x89 */
808    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8A },         /* 0x8A */
809    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8B },         /* 0x8B */
810    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8C },         /* 0x8C */
811    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8D },         /* 0x8D */
812    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_8E },         /* 0x8E */
813    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_8F },         /* 0x8F */
814    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_90 },         /* 0x90 */
815    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_91 },         /* 0x91 */
816    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_92 },         /* 0x92 */
817    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_93 },         /* 0x93 */
818    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_94 },         /* 0x94 */
819    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_95 },         /* 0x95 */
820    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_96 },         /* 0x96 */
821    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_97 },         /* 0x97 */
822    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_98 },         /* 0x98 */
823    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_99 },         /* 0x99 */
824    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9A },         /* 0x9A */
825    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9B },         /* 0x9B */
826    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9C },         /* 0x9C */
827    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9D },         /* 0x9D */
828    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_9E },         /* 0x9E */
829    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_9F },         /* 0x9F */
830    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A0 },         /* 0xA0 */
831    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A1 },         /* 0xA1 */
832    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A2 },         /* 0xA2 */
833    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A3 },         /* 0xA3 */
834    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A4 },         /* 0xA4 */
835    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A5 },         /* 0xA5 */
836    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A6 },         /* 0xA6 */
837    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_A7 },         /* 0xA7 */
838    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A8 },         /* 0xA8 */
839    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_A9 },         /* 0xA9 */
840    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AA },         /* 0xAA */
841    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AB },         /* 0xAB */
842    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AC },         /* 0xAC */
843    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AD },         /* 0xAD */
844    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_AE },         /* 0xAE */
845    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_AF },         /* 0xAF */
846    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B0 },         /* 0xB0 */
847    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B1 },         /* 0xB1 */
848    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B2 },         /* 0xB2 */
849    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B3 },         /* 0xB3 */
850    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B4 },         /* 0xB4 */
851    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B5 },         /* 0xB5 */
852    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B6 },         /* 0xB6 */
853    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_B7 },         /* 0xB7 */
854    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B8 },         /* 0xB8 */
855    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_B9 },         /* 0xB9 */
856    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BA },         /* 0xBA */
857    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BB },         /* 0xBB */
858    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BC },         /* 0xBC */
859    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BD },         /* 0xBD */
860    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_BE },         /* 0xBE */
861    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_BF },         /* 0xBF */
862    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C0 },         /* 0xC0 */
863    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C1 },         /* 0xC1 */
864    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C2 },         /* 0xC2 */
865    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C3 },         /* 0xC3 */
866    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C4 },         /* 0xC4 */
867    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C5 },         /* 0xC5 */
868    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C6 },         /* 0xC6 */
869    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_C7 },         /* 0xC7 */
870    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C8 },         /* 0xC8 */
871    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_C9 },         /* 0xC9 */
872    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CA },         /* 0xCA */
873    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CB },         /* 0xCB */
874    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CC },         /* 0xCC */
875    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CD },         /* 0xCD */
876    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_CE },         /* 0xCE */
877    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_CF },         /* 0xCF */
878    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D0 },         /* 0xD0 */
879    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D1 },         /* 0xD1 */
880    {      0, 0x41, 0xFD, aImplDBCSToUniTab_JOHAB_D2 },         /* 0xD2 */
881    {      0, 0x41, 0xBD, aImplDBCSToUniTab_JOHAB_D3 },         /* 0xD3 */
882    {      0,    1,    0, NULL },                               /* 0xD4 */
883    {      0,    1,    0, NULL },                               /* 0xD5 */
884    {      0,    1,    0, NULL },                               /* 0xD6 */
885    {      0,    1,    0, NULL },                               /* 0xD7 */
886    {      0,    1,    0, aImplDoubleByteIdentifierTab },       /* 0xD8 */ /* We convert this as double byte */
887    {      0, 0x31, 0xE5, aImplDBCSToUniTab_JOHAB_D9 },         /* 0xD9 */
888    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DA },         /* 0xDA */
889    {      0, 0x31, 0xE4, aImplDBCSToUniTab_JOHAB_DB },         /* 0xDB */
890    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_DC },         /* 0xDC */
891    {      0, 0x31, 0xF3, aImplDBCSToUniTab_JOHAB_DD },         /* 0xDD */
892    {      0, 0x31, 0xF1, aImplDBCSToUniTab_JOHAB_DE },         /* 0xDE */
893    {      0,    1,    0, aImplDoubleByteIdentifierTab },       /* 0xDF */ /* We convert this as double byte */
894    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E0 },         /* 0xE0 */
895    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E1 },         /* 0xE1 */
896    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E2 },         /* 0xE2 */
897    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E3 },         /* 0xE3 */
898    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E4 },         /* 0xE4 */
899    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E5 },         /* 0xE5 */
900    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E6 },         /* 0xE6 */
901    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E7 },         /* 0xE7 */
902    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E8 },         /* 0xE8 */
903    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_E9 },         /* 0xE9 */
904    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EA },         /* 0xEA */
905    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EB },         /* 0xEB */
906    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EC },         /* 0xEC */
907    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_ED },         /* 0xED */
908    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EE },         /* 0xEE */
909    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_EF },         /* 0xEF */
910    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F0 },         /* 0xF0 */
911    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F1 },         /* 0xF1 */
912    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F2 },         /* 0xF2 */
913    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F3 },         /* 0xF3 */
914    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F4 },         /* 0xF4 */
915    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F5 },         /* 0xF5 */
916    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F6 },         /* 0xF6 */
917    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F7 },         /* 0xF7 */
918    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F8 },         /* 0xF8 */
919    {      0, 0x31, 0xFE, aImplDBCSToUniTab_JOHAB_F9 },         /* 0xF9 */
920    {      0,    1,    0, NULL },                               /* 0xFA */
921    {      0,    1,    0, NULL },                               /* 0xFB */
922    {      0,    1,    0, NULL },                               /* 0xFC */
923    {      0,    1,    0, NULL },                               /* 0xFD */
924    {      0,    1,    0, NULL },                               /* 0xFE */
925    {      0,    1,    0, NULL }                                /* 0xFF */
926};
927
928/* ----------------------------------------------------------------------- */
929
930static ImplUniToDBCSHighTab const aJOHABDBCSHighTab[256] =
931{
932    { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_00 },                 /* 0x00 */
933    { 0x11, 0x67, aImplUniToDBCSTab_JOHAB_01 },                 /* 0x01 */
934    { 0xC7, 0xDD, aImplUniToDBCSTab_JOHAB_02 },                 /* 0x02 */
935    { 0x91, 0xC9, aImplUniToDBCSTab_JOHAB_03 },                 /* 0x03 */
936    { 0x01, 0x51, aImplUniToDBCSTab_JOHAB_04 },                 /* 0x04 */
937    {    1,    0, NULL },                                       /* 0x05 */
938    {    1,    0, NULL },                                       /* 0x06 */
939    {    1,    0, NULL },                                       /* 0x07 */
940    {    1,    0, NULL },                                       /* 0x08 */
941    {    1,    0, NULL },                                       /* 0x09 */
942    {    1,    0, NULL },                                       /* 0x0A */
943    {    1,    0, NULL },                                       /* 0x0B */
944    {    1,    0, NULL },                                       /* 0x0C */
945    {    1,    0, NULL },                                       /* 0x0D */
946    {    1,    0, NULL },                                       /* 0x0E */
947    {    1,    0, NULL },                                       /* 0x0F */
948    {    1,    0, NULL },                                       /* 0x10 */
949    {    1,    0, NULL },                                       /* 0x11 */
950    {    1,    0, NULL },                                       /* 0x12 */
951    {    1,    0, NULL },                                       /* 0x13 */
952    {    1,    0, NULL },                                       /* 0x14 */
953    {    1,    0, NULL },                                       /* 0x15 */
954    {    1,    0, NULL },                                       /* 0x16 */
955    {    1,    0, NULL },                                       /* 0x17 */
956    {    1,    0, NULL },                                       /* 0x18 */
957    {    1,    0, NULL },                                       /* 0x19 */
958    {    1,    0, NULL },                                       /* 0x1A */
959    {    1,    0, NULL },                                       /* 0x1B */
960    {    1,    0, NULL },                                       /* 0x1C */
961    {    1,    0, NULL },                                       /* 0x1D */
962    {    1,    0, NULL },                                       /* 0x1E */
963    {    1,    0, NULL },                                       /* 0x1F */
964    { 0x15, 0xA9, aImplUniToDBCSTab_JOHAB_20 },                 /* 0x20 */
965    { 0x03, 0xD4, aImplUniToDBCSTab_JOHAB_21 },                 /* 0x21 */
966    { 0x00, 0xA5, aImplUniToDBCSTab_JOHAB_22 },                 /* 0x22 */
967    { 0x12, 0x12, aImplUniToDBCSTab_JOHAB_23 },                 /* 0x23 */
968    { 0x60, 0xE9, aImplUniToDBCSTab_JOHAB_24 },                 /* 0x24 */
969    { 0x00, 0xD1, aImplUniToDBCSTab_JOHAB_25 },                 /* 0x25 */
970    { 0x05, 0x6D, aImplUniToDBCSTab_JOHAB_26 },                 /* 0x26 */
971    {    1,    0, NULL },                                       /* 0x27 */
972    {    1,    0, NULL },                                       /* 0x28 */
973    {    1,    0, NULL },                                       /* 0x29 */
974    {    1,    0, NULL },                                       /* 0x2A */
975    {    1,    0, NULL },                                       /* 0x2B */
976    {    1,    0, NULL },                                       /* 0x2C */
977    {    1,    0, NULL },                                       /* 0x2D */
978    {    1,    0, NULL },                                       /* 0x2E */
979    {    1,    0, NULL },                                       /* 0x2F */
980    { 0x00, 0xF7, aImplUniToDBCSTab_JOHAB_30 },                 /* 0x30 */
981    { 0x31, 0x8E, aImplUniToDBCSTab_JOHAB_31 },                 /* 0x31 */
982    { 0x00, 0x7F, aImplUniToDBCSTab_JOHAB_32 },                 /* 0x32 */
983    { 0x80, 0xDD, aImplUniToDBCSTab_JOHAB_33 },                 /* 0x33 */
984    {    1,    0, NULL },                                       /* 0x34 */
985    {    1,    0, NULL },                                       /* 0x35 */
986    {    1,    0, NULL },                                       /* 0x36 */
987    {    1,    0, NULL },                                       /* 0x37 */
988    {    1,    0, NULL },                                       /* 0x38 */
989    {    1,    0, NULL },                                       /* 0x39 */
990    {    1,    0, NULL },                                       /* 0x3A */
991    {    1,    0, NULL },                                       /* 0x3B */
992    {    1,    0, NULL },                                       /* 0x3C */
993    {    1,    0, NULL },                                       /* 0x3D */
994    {    1,    0, NULL },                                       /* 0x3E */
995    {    1,    0, NULL },                                       /* 0x3F */
996    {    1,    0, NULL },                                       /* 0x40 */
997    {    1,    0, NULL },                                       /* 0x41 */
998    {    1,    0, NULL },                                       /* 0x42 */
999    {    1,    0, NULL },                                       /* 0x43 */
1000    {    1,    0, NULL },                                       /* 0x44 */
1001    {    1,    0, NULL },                                       /* 0x45 */
1002    {    1,    0, NULL },                                       /* 0x46 */
1003    {    1,    0, NULL },                                       /* 0x47 */
1004    {    1,    0, NULL },                                       /* 0x48 */
1005    {    1,    0, NULL },                                       /* 0x49 */
1006    {    1,    0, NULL },                                       /* 0x4A */
1007    {    1,    0, NULL },                                       /* 0x4B */
1008    {    1,    0, NULL },                                       /* 0x4C */
1009    {    1,    0, NULL },                                       /* 0x4D */
1010    { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_4E },                 /* 0x4E */
1011    { 0x01, 0xFA, aImplUniToDBCSTab_JOHAB_4F },                 /* 0x4F */
1012    { 0x02, 0xFF, aImplUniToDBCSTab_JOHAB_50 },                 /* 0x50 */
1013    { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_51 },                 /* 0x51 */
1014    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_52 },                 /* 0x52 */
1015    { 0x05, 0xF8, aImplUniToDBCSTab_JOHAB_53 },                 /* 0x53 */
1016    { 0x03, 0xFA, aImplUniToDBCSTab_JOHAB_54 },                 /* 0x54 */
1017    { 0x04, 0xFE, aImplUniToDBCSTab_JOHAB_55 },                 /* 0x55 */
1018    { 0x06, 0xFA, aImplUniToDBCSTab_JOHAB_56 },                 /* 0x56 */
1019    { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_57 },                 /* 0x57 */
1020    { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_58 },                 /* 0x58 */
1021    { 0x07, 0xFF, aImplUniToDBCSTab_JOHAB_59 },                 /* 0x59 */
1022    { 0x01, 0xE9, aImplUniToDBCSTab_JOHAB_5A },                 /* 0x5A */
1023    { 0x05, 0xFA, aImplUniToDBCSTab_JOHAB_5B },                 /* 0x5B */
1024    { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_5C },                 /* 0x5C */
1025    { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_5D },                 /* 0x5D */
1026    { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_5E },                 /* 0x5E */
1027    { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_5F },                 /* 0x5F */
1028    { 0x07, 0xFB, aImplUniToDBCSTab_JOHAB_60 },                 /* 0x60 */
1029    { 0x01, 0xFF, aImplUniToDBCSTab_JOHAB_61 },                 /* 0x61 */
1030    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_62 },                 /* 0x62 */
1031    { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_63 },                 /* 0x63 */
1032    { 0x0D, 0xFE, aImplUniToDBCSTab_JOHAB_64 },                 /* 0x64 */
1033    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_65 },                 /* 0x65 */
1034    { 0x06, 0xFF, aImplUniToDBCSTab_JOHAB_66 },                 /* 0x66 */
1035    { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_67 },                 /* 0x67 */
1036    { 0x12, 0xFA, aImplUniToDBCSTab_JOHAB_68 },                 /* 0x68 */
1037    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_69 },                 /* 0x69 */
1038    { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_6A },                 /* 0x6A */
1039    { 0x04, 0xEC, aImplUniToDBCSTab_JOHAB_6B },                 /* 0x6B */
1040    { 0x08, 0xF3, aImplUniToDBCSTab_JOHAB_6C },                 /* 0x6C */
1041    { 0x03, 0xFB, aImplUniToDBCSTab_JOHAB_6D },                 /* 0x6D */
1042    { 0x17, 0xFF, aImplUniToDBCSTab_JOHAB_6E },                 /* 0x6E */
1043    { 0x01, 0xFE, aImplUniToDBCSTab_JOHAB_6F },                 /* 0x6F */
1044    { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_70 },                 /* 0x70 */
1045    { 0x04, 0xFF, aImplUniToDBCSTab_JOHAB_71 },                 /* 0x71 */
1046    { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_72 },                 /* 0x72 */
1047    { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_73 },                 /* 0x73 */
1048    { 0x01, 0xF7, aImplUniToDBCSTab_JOHAB_74 },                 /* 0x74 */
1049    { 0x01, 0xFC, aImplUniToDBCSTab_JOHAB_75 },                 /* 0x75 */
1050    { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_76 },                 /* 0x76 */
1051    { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_77 },                 /* 0x77 */
1052    { 0x02, 0xFB, aImplUniToDBCSTab_JOHAB_78 },                 /* 0x78 */
1053    { 0x01, 0xFB, aImplUniToDBCSTab_JOHAB_79 },                 /* 0x79 */
1054    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_7A },                 /* 0x7A */
1055    { 0x0F, 0xE9, aImplUniToDBCSTab_JOHAB_7B },                 /* 0x7B */
1056    { 0x07, 0xFE, aImplUniToDBCSTab_JOHAB_7C },                 /* 0x7C */
1057    { 0x00, 0xFB, aImplUniToDBCSTab_JOHAB_7D },                 /* 0x7D */
1058    { 0x09, 0x9C, aImplUniToDBCSTab_JOHAB_7E },                 /* 0x7E */
1059    { 0x36, 0xFC, aImplUniToDBCSTab_JOHAB_7F },                 /* 0x7F */
1060    { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_80 },                 /* 0x80 */
1061    { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_81 },                 /* 0x81 */
1062    { 0x05, 0xFE, aImplUniToDBCSTab_JOHAB_82 },                 /* 0x82 */
1063    { 0x01, 0xFD, aImplUniToDBCSTab_JOHAB_83 },                 /* 0x83 */
1064    { 0x03, 0xFC, aImplUniToDBCSTab_JOHAB_84 },                 /* 0x84 */
1065    { 0x11, 0xFF, aImplUniToDBCSTab_JOHAB_85 },                 /* 0x85 */
1066    { 0x02, 0xFE, aImplUniToDBCSTab_JOHAB_86 },                 /* 0x86 */
1067    { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_87 },                 /* 0x87 */
1068    { 0x05, 0xFD, aImplUniToDBCSTab_JOHAB_88 },                 /* 0x88 */
1069    { 0x07, 0xF8, aImplUniToDBCSTab_JOHAB_89 },                 /* 0x89 */
1070    { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_8A },                 /* 0x8A */
1071    { 0x00, 0x9A, aImplUniToDBCSTab_JOHAB_8B },                 /* 0x8B */
1072    { 0x37, 0xFD, aImplUniToDBCSTab_JOHAB_8C },                 /* 0x8C */
1073    { 0x04, 0xFB, aImplUniToDBCSTab_JOHAB_8D },                 /* 0x8D */
1074    { 0x0A, 0xFE, aImplUniToDBCSTab_JOHAB_8E },                 /* 0x8E */
1075    { 0x03, 0xFD, aImplUniToDBCSTab_JOHAB_8F },                 /* 0x8F */
1076    { 0x00, 0xFD, aImplUniToDBCSTab_JOHAB_90 },                 /* 0x90 */
1077    { 0x02, 0xF5, aImplUniToDBCSTab_JOHAB_91 },                 /* 0x91 */
1078    { 0x0D, 0xFC, aImplUniToDBCSTab_JOHAB_92 },                 /* 0x92 */
1079    { 0x04, 0xF6, aImplUniToDBCSTab_JOHAB_93 },                 /* 0x93 */
1080    { 0x04, 0x7F, aImplUniToDBCSTab_JOHAB_94 },                 /* 0x94 */
1081    { 0x77, 0xE2, aImplUniToDBCSTab_JOHAB_95 },                 /* 0x95 */
1082    { 0x1C, 0xFB, aImplUniToDBCSTab_JOHAB_96 },                 /* 0x96 */
1083    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_97 },                 /* 0x97 */
1084    { 0x00, 0xFE, aImplUniToDBCSTab_JOHAB_98 },                 /* 0x98 */
1085    { 0x03, 0xFF, aImplUniToDBCSTab_JOHAB_99 },                 /* 0x99 */
1086    { 0x01, 0xEE, aImplUniToDBCSTab_JOHAB_9A },                 /* 0x9A */
1087    { 0x1A, 0xE8, aImplUniToDBCSTab_JOHAB_9B },                 /* 0x9B */
1088    { 0x0D, 0xF6, aImplUniToDBCSTab_JOHAB_9C },                 /* 0x9C */
1089    { 0x09, 0xFA, aImplUniToDBCSTab_JOHAB_9D },                 /* 0x9D */
1090    { 0x1A, 0xF4, aImplUniToDBCSTab_JOHAB_9E },                 /* 0x9E */
1091    { 0x07, 0x9C, aImplUniToDBCSTab_JOHAB_9F },                 /* 0x9F */
1092    {    1,    0, NULL },                                       /* 0xA0 */
1093    {    1,    0, NULL },                                       /* 0xA1 */
1094    {    1,    0, NULL },                                       /* 0xA2 */
1095    {    1,    0, NULL },                                       /* 0xA3 */
1096    {    1,    0, NULL },                                       /* 0xA4 */
1097    {    1,    0, NULL },                                       /* 0xA5 */
1098    {    1,    0, NULL },                                       /* 0xA6 */
1099    {    1,    0, NULL },                                       /* 0xA7 */
1100    {    1,    0, NULL },                                       /* 0xA8 */
1101    {    1,    0, NULL },                                       /* 0xA9 */
1102    {    1,    0, NULL },                                       /* 0xAA */
1103    {    1,    0, NULL },                                       /* 0xAB */
1104    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AC },                 /* 0xAC */
1105    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AD },                 /* 0xAD */
1106    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AE },                 /* 0xAE */
1107    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_AF },                 /* 0xAF */
1108    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B0 },                 /* 0xB0 */
1109    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B1 },                 /* 0xB1 */
1110    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B2 },                 /* 0xB2 */
1111    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B3 },                 /* 0xB3 */
1112    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B4 },                 /* 0xB4 */
1113    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B5 },                 /* 0xB5 */
1114    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B6 },                 /* 0xB6 */
1115    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B7 },                 /* 0xB7 */
1116    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B8 },                 /* 0xB8 */
1117    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_B9 },                 /* 0xB9 */
1118    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BA },                 /* 0xBA */
1119    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BB },                 /* 0xBB */
1120    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BC },                 /* 0xBC */
1121    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BD },                 /* 0xBD */
1122    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BE },                 /* 0xBE */
1123    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_BF },                 /* 0xBF */
1124    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C0 },                 /* 0xC0 */
1125    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C1 },                 /* 0xC1 */
1126    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C2 },                 /* 0xC2 */
1127    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C3 },                 /* 0xC3 */
1128    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C4 },                 /* 0xC4 */
1129    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C5 },                 /* 0xC5 */
1130    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C6 },                 /* 0xC6 */
1131    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C7 },                 /* 0xC7 */
1132    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C8 },                 /* 0xC8 */
1133    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_C9 },                 /* 0xC9 */
1134    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CA },                 /* 0xCA */
1135    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CB },                 /* 0xCB */
1136    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CC },                 /* 0xCC */
1137    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CD },                 /* 0xCD */
1138    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CE },                 /* 0xCE */
1139    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_CF },                 /* 0xCF */
1140    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D0 },                 /* 0xD0 */
1141    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D1 },                 /* 0xD1 */
1142    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D2 },                 /* 0xD2 */
1143    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D3 },                 /* 0xD3 */
1144    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D4 },                 /* 0xD4 */
1145    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D5 },                 /* 0xD5 */
1146    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_D6 },                 /* 0xD6 */
1147    { 0x00, 0xA3, aImplUniToDBCSTab_JOHAB_D7 },                 /* 0xD7 */
1148    {    1,    0, NULL },                                       /* 0xD8 */
1149    {    1,    0, NULL },                                       /* 0xD9 */
1150    {    1,    0, NULL },                                       /* 0xDA */
1151    {    1,    0, NULL },                                       /* 0xDB */
1152    {    1,    0, NULL },                                       /* 0xDC */
1153    {    1,    0, NULL },                                       /* 0xDD */
1154    {    1,    0, NULL },                                       /* 0xDE */
1155    {    1,    0, NULL },                                       /* 0xDF */
1156    {    1,    0, NULL },                                       /* 0xE0 */
1157    {    1,    0, NULL },                                       /* 0xE1 */
1158    {    1,    0, NULL },                                       /* 0xE2 */
1159    {    1,    0, NULL },                                       /* 0xE3 */
1160    {    1,    0, NULL },                                       /* 0xE4 */
1161    {    1,    0, NULL },                                       /* 0xE5 */
1162    {    1,    0, NULL },                                       /* 0xE6 */
1163    {    1,    0, NULL },                                       /* 0xE7 */
1164    {    1,    0, NULL },                                       /* 0xE8 */
1165    {    1,    0, NULL },                                       /* 0xE9 */
1166    {    1,    0, NULL },                                       /* 0xEA */
1167    {    1,    0, NULL },                                       /* 0xEB */
1168    {    1,    0, NULL },                                       /* 0xEC */
1169    {    1,    0, NULL },                                       /* 0xED */
1170    {    1,    0, NULL },                                       /* 0xEE */
1171    {    1,    0, NULL },                                       /* 0xEF */
1172    {    1,    0, NULL },                                       /* 0xF0 */
1173    {    1,    0, NULL },                                       /* 0xF1 */
1174    {    1,    0, NULL },                                       /* 0xF2 */
1175    {    1,    0, NULL },                                       /* 0xF3 */
1176    {    1,    0, NULL },                                       /* 0xF4 */
1177    {    1,    0, NULL },                                       /* 0xF5 */
1178    {    1,    0, NULL },                                       /* 0xF6 */
1179    {    1,    0, NULL },                                       /* 0xF7 */
1180    {    1,    0, NULL },                                       /* 0xF8 */
1181    { 0x00, 0xFF, aImplUniToDBCSTab_JOHAB_F9 },                 /* 0xF9 */
1182    { 0x00, 0x0B, aImplUniToDBCSTab_JOHAB_FA },                 /* 0xFA */
1183    {    1,    0, NULL },                                       /* 0xFB */
1184    {    1,    0, NULL },                                       /* 0xFC */
1185    {    1,    0, NULL },                                       /* 0xFD */
1186    {    1,    0, NULL },                                       /* 0xFE */
1187    { 0x01, 0xE6, aImplUniToDBCSTab_JOHAB_FF }                  /* 0xFF */
1188};
1189
1190/* ----------------------------------------------------------------------- */
1191
1192/* D831-D87E    -> E000-E05D */
1193/* D891-D8FE    -> E05E-E0BB */
1194
1195#define DBCS_EUDC_MS1361_COUNT    2
1196static ImplDBCSEUDCData const aImplMS1361DBCSEUDCTab[DBCS_EUDC_MS1361_COUNT] =
1197{
1198    /* EUDC-Range */
1199    /* Lead:    D8-D8 */
1200    /* Trail:   31-7E */
1201    { 0xD8, 0xD8, 0x31, 0x7E, 0, 0, 0, 0, 1, 0x5D, 0xE000, 0xE05D },
1202    /* Lead:    D8-D8 */
1203    /* Trail:   91-FE */
1204    { 0xD8, 0xD8, 0x91, 0xFE, 0, 0, 0, 0, 1, 0x5D, 0xE05E, 0xE0BB }
1205};
1206
1207/* ----------------------------------------------------------------------- */
1208
1209static ImplDBCSConvertData const aImplJOHABDBCSCvtData =
1210{
1211    aJOHABUniLeadTab,
1212    aJOHABDBCSHighTab,
1213    0x00, 0xFF,
1214    0x31, 0xFE,
1215    aImplMS1361DBCSEUDCTab,
1216    DBCS_EUDC_MS1361_COUNT
1217};
1218
1219/* ======================================================================= */
1220
1221static ImplTextEncodingData const aImplMS1361TextEncodingData
1222    = { { &aImplJOHABDBCSCvtData,
1223          ImplDBCSToUnicode,
1224          ImplUnicodeToDBCS,
1225          NULL,
1226          NULL,
1227          NULL,
1228          NULL,
1229          NULL,
1230          NULL },
1231        1,
1232        2,
1233        2,
1234        130,
1235        "euc-kr",
1236        "euc-kr",
1237        RTL_TEXTENCODING_INFO_MULTIBYTE | RTL_TEXTENCODING_INFO_MIME };
1238    /* SCRIPT_KOREAN, pc code page 1361, mac encoding 3 */
1239