Use configmgr directly in SvxAsianConfig.
[LibreOffice.git] / sal / textenc / tcvtarb1.tab
blob9d748371a1083bce2e4ce7766598da9c8d88f304
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  ************************************************************************/
28 /* ======================================================================= */
30 /* This file contain the tables for all 1 byte charsets, for the */
31 /* following scripts: arabic, hebrew and other scripts in the arabic region */
33 /* ======================================================================= */
35 /* IBM-862 */
36 /* Dos Standard CharSet for Hebrew */
37 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
38 /* Convert-Tables: mappings/vendors/micsft/pc/cp862.txt from 04/24/96 Version 2.00 */
39 /* Last-Changes from us: */
41 /* ----------------------------------------------------------------------- */
43 #define IBM862UNI_START                 0x80
44 #define IBM862UNI_END                   0xFF
45 static sal_uInt16 const aImplIBM862ToUniTab[IBM862UNI_END - IBM862UNI_START + 1] =
47 /*       0       1       2       3       4       5       6       7 */
48 /*       8       9       A       B       C       D       E       F */
49     0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, /* 0x80 */
50     0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, /* 0x80 */
51     0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, /* 0x90 */
52     0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, /* 0x90 */
53     0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
54     0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
55     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
56     0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
57     0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
58     0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
59     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
60     0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
61     0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
62     0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
63     0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
64     0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
67 /* ----------------------------------------------------------------------- */
69 #define IBM862CHAR_START                0x05D0
70 #define IBM862CHAR_END                  0x05EA
71 static sal_uChar const aImplIBM862ToCharTab[IBM862CHAR_END - IBM862CHAR_START + 1] =
73 /*     0     1     2     3     4     5     6     7 */
74 /*     8     9     A     B     C     D     E     F */
75     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x05D0 */
76     0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x05D0 */
77     0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x05E0 */
78     0x98, 0x99, 0x9A                                /* 0x05E0 */
81 /* ----------------------------------------------------------------------- */
83 #define IBM862TOCHARTABEX_COUNT         101
84 static ImplUniCharTabData const aImplIBM862ToCharTabEx[IBM862TOCHARTABEX_COUNT] =
86   { 0x00A0, 0xFF, 0 },
87   { 0x00A1, 0xAD, 0 },
88   { 0x00A2, 0x9B, 0 },
89   { 0x00A3, 0x9C, 0 },
90   { 0x00A5, 0x9D, 0 },
91   { 0x00AA, 0xA6, 0 },
92   { 0x00AB, 0xAE, 0 },
93   { 0x00AC, 0xAA, 0 },
94   { 0x00B0, 0xF8, 0 },
95   { 0x00B1, 0xF1, 0 },
96   { 0x00B2, 0xFD, 0 },
97   { 0x00B5, 0xE6, 0 },
98   { 0x00B7, 0xFA, 0 },
99   { 0x00BA, 0xA7, 0 },
100   { 0x00BB, 0xAF, 0 },
101   { 0x00BC, 0xAC, 0 },
102   { 0x00BD, 0xAB, 0 },
103   { 0x00BF, 0xA8, 0 },
104   { 0x00D1, 0xA5, 0 },
105   { 0x00DF, 0xE1, 0 },
106   { 0x00E1, 0xA0, 0 },
107   { 0x00ED, 0xA1, 0 },
108   { 0x00F1, 0xA4, 0 },
109   { 0x00F3, 0xA2, 0 },
110   { 0x00F7, 0xF6, 0 },
111   { 0x00FA, 0xA3, 0 },
112   { 0x0192, 0x9F, 0 },
113   { 0x0393, 0xE2, 0 },
114   { 0x0398, 0xE9, 0 },
115   { 0x03A3, 0xE4, 0 },
116   { 0x03A6, 0xE8, 0 },
117   { 0x03A9, 0xEA, 0 },
118   { 0x03B1, 0xE0, 0 },
119   { 0x03B4, 0xEB, 0 },
120   { 0x03B5, 0xEE, 0 },
121   { 0x03C0, 0xE3, 0 },
122   { 0x03C3, 0xE5, 0 },
123   { 0x03C4, 0xE7, 0 },
124   { 0x03C6, 0xED, 0 },
125   { 0x207F, 0xFC, 0 },
126   { 0x20A7, 0x9E, 0 },
127   { 0x2219, 0xF9, 0 },
128   { 0x221A, 0xFB, 0 },
129   { 0x221E, 0xEC, 0 },
130   { 0x2229, 0xEF, 0 },
131   { 0x2248, 0xF7, 0 },
132   { 0x2261, 0xF0, 0 },
133   { 0x2264, 0xF3, 0 },
134   { 0x2265, 0xF2, 0 },
135   { 0x2310, 0xA9, 0 },
136   { 0x2320, 0xF4, 0 },
137   { 0x2321, 0xF5, 0 },
138   { 0x2500, 0xC4, 0 },
139   { 0x2502, 0xB3, 0 },
140   { 0x250C, 0xDA, 0 },
141   { 0x2510, 0xBF, 0 },
142   { 0x2514, 0xC0, 0 },
143   { 0x2518, 0xD9, 0 },
144   { 0x251C, 0xC3, 0 },
145   { 0x2524, 0xB4, 0 },
146   { 0x252C, 0xC2, 0 },
147   { 0x2534, 0xC1, 0 },
148   { 0x253C, 0xC5, 0 },
149   { 0x2550, 0xCD, 0 },
150   { 0x2551, 0xBA, 0 },
151   { 0x2552, 0xD5, 0 },
152   { 0x2553, 0xD6, 0 },
153   { 0x2554, 0xC9, 0 },
154   { 0x2555, 0xB8, 0 },
155   { 0x2556, 0xB7, 0 },
156   { 0x2557, 0xBB, 0 },
157   { 0x2558, 0xD4, 0 },
158   { 0x2559, 0xD3, 0 },
159   { 0x255A, 0xC8, 0 },
160   { 0x255B, 0xBE, 0 },
161   { 0x255C, 0xBD, 0 },
162   { 0x255D, 0xBC, 0 },
163   { 0x255E, 0xC6, 0 },
164   { 0x255F, 0xC7, 0 },
165   { 0x2560, 0xCC, 0 },
166   { 0x2561, 0xB5, 0 },
167   { 0x2562, 0xB6, 0 },
168   { 0x2563, 0xB9, 0 },
169   { 0x2564, 0xD1, 0 },
170   { 0x2565, 0xD2, 0 },
171   { 0x2566, 0xCB, 0 },
172   { 0x2567, 0xCF, 0 },
173   { 0x2568, 0xD0, 0 },
174   { 0x2569, 0xCA, 0 },
175   { 0x256A, 0xD8, 0 },
176   { 0x256B, 0xD7, 0 },
177   { 0x256C, 0xCE, 0 },
178   { 0x2580, 0xDF, 0 },
179   { 0x2584, 0xDC, 0 },
180   { 0x2588, 0xDB, 0 },
181   { 0x258C, 0xDD, 0 },
182   { 0x2590, 0xDE, 0 },
183   { 0x2591, 0xB0, 0 },
184   { 0x2592, 0xB1, 0 },
185   { 0x2593, 0xB2, 0 },
186   { 0x25A0, 0xFE, 0 }
189 /* ----------------------------------------------------------------------- */
191 static ImplByteConvertData const aImplIBM862ByteCvtData =
193     aImplIBM862ToUniTab,
194     NULL,
195     IBM862UNI_START, IBM862UNI_END,
196     NOTABUNI_START, NOTABUNI_END,
197     aImplIBM862ToCharTab,
198     NULL,
199     aImplIBM862ToCharTabEx,
200     IBM862CHAR_START, IBM862CHAR_END,
201     NOTABCHAR_START, NOTABCHAR_END,
202     IBM862TOCHARTABEX_COUNT
205 /* ----------------------------------------------------------------------- */
207 static ImplTextEncodingData const aImplIBM862TextEncodingData
208     = { { &aImplIBM862ByteCvtData,
209           ImplCharToUnicode,
210           ImplUnicodeToChar,
211           NULL,
212           NULL,
213           NULL,
214           NULL,
215           NULL,
216           NULL },
217         1,
218         1,
219         1,
220         177,
221         "iso8859-8",
222         "IBM862",
223         RTL_TEXTENCODING_INFO_ASCII
224             | RTL_TEXTENCODING_INFO_MIME
225             | RTL_TEXTENCODING_INFO_R2L };
226     /* DOS/OS2, SCRIPT_HEBREW, pc code page 862, mac encoding 5 */
228 /* ======================================================================= */
230 /* IBM-864 */
231 /* Dos Standard CharSet for Arabic */
232 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
233 /* Convert-Tables: mappings/vendors/micsft/pc/cp864.txt from 04/24/96 Version 2.00 */
234 /* Last-Changes from us: */
236 /* ----------------------------------------------------------------------- */
238 #define IBM864UNI_START                 0x80
239 #define IBM864UNI_END                   0xFE
240 static sal_uInt16 const aImplIBM864ToUniTab[IBM864UNI_END - IBM864UNI_START + 1] =
242 /*       0       1       2       3       4       5       6       7 */
243 /*       8       9       A       B       C       D       E       F */
244     0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, /* 0x80 */
245     0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, /* 0x80 */
246     0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, /* 0x90 */
247     0x00BB, 0xFEF7, 0xFEF8,      0,      0, 0xFEFB, 0xFEFC,      0, /* 0x90 */
248     0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84,      0,      0, /* 0xA0 */
249     0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, /* 0xA0 */
250     0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, /* 0xB0 */
251     0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, /* 0xB0 */
252     0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, /* 0xC0 */
253     0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, /* 0xC0 */
254     0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, /* 0xD0 */
255     0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, /* 0xD0 */
256     0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, /* 0xE0 */
257     0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, /* 0xE0 */
258     0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, /* 0xF0 */
259     0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0          /* 0xF0 */
262 /* ----------------------------------------------------------------------- */
264 #define IBM864CHAR_START                0xFE7D
265 #define IBM864CHAR_END                  0xFEFC
266 static sal_uChar const aImplIBM864ToCharTab[IBM864CHAR_END - IBM864CHAR_START + 1] =
268 /*     0     1     2     3     4     5     6     7 */
269 /*     8     9     A     B     C     D     E     F */
270                                   0xF0,    0,    0, /* 0xFE70 */
271     0xC1, 0xC2, 0xA2, 0xC3, 0xA5, 0xC4,    0,    0, /* 0xFE80 */
272        0,    0,    0, 0xC6,    0, 0xC7, 0xA8, 0xA9, /* 0xFE80 */
273        0, 0xC8,    0, 0xC9,    0, 0xAA,    0, 0xCA, /* 0xFE90 */
274        0, 0xAB,    0, 0xCB,    0, 0xAD,    0, 0xCC, /* 0xFE90 */
275        0, 0xAE,    0, 0xCD,    0, 0xAF,    0, 0xCE, /* 0xFEA0 */
276        0, 0xCF,    0, 0xD0,    0, 0xD1,    0, 0xD2, /* 0xFEA0 */
277        0, 0xBC,    0, 0xD3,    0, 0xBD,    0, 0xD4, /* 0xFEB0 */
278        0, 0xBE,    0, 0xD5,    0, 0xEB,    0, 0xD6, /* 0xFEB0 */
279        0, 0xD7,    0,    0,    0, 0xD8,    0,    0, /* 0xFEC0 */
280        0, 0xDF, 0xC5, 0xD9, 0xEC, 0xEE, 0xED, 0xDA, /* 0xFEC0 */
281     0xF7, 0xBA,    0, 0xE1,    0, 0xF8,    0, 0xE2, /* 0xFED0 */
282        0, 0xFC,    0, 0xE3,    0, 0xFB,    0, 0xE4, /* 0xFED0 */
283        0, 0xEF,    0, 0xE5,    0, 0xF2,    0, 0xE6, /* 0xFEE0 */
284        0, 0xF3,    0, 0xE7, 0xF4, 0xE8,    0, 0xE9, /* 0xFEE0 */
285     0xF5, 0xFD, 0xF6, 0xEA,    0, 0xF9, 0xFA, 0x99, /* 0xFEF0 */
286     0x9A,    0,    0, 0x9D, 0x9E                    /* 0xFEF0 */
289 /* ----------------------------------------------------------------------- */
291 #define IBM864TOCHARTABEX_COUNT         51
292 static ImplUniCharTabData const aImplIBM864ToCharTabEx[IBM864TOCHARTABEX_COUNT] =
294   { 0x00A0, 0xA0, 0 },
295   { 0x00A2, 0xC0, 0 },
296   { 0x00A3, 0xA3, 0 },
297   { 0x00A4, 0xA4, 0 },
298   { 0x00A6, 0xDB, 0 },
299   { 0x00AB, 0x97, 0 },
300   { 0x00AC, 0xDC, 0 },
301   { 0x00AD, 0xA1, 0 },
302   { 0x00B0, 0x80, 0 },
303   { 0x00B1, 0x93, 0 },
304   { 0x00B7, 0x81, 0 },
305   { 0x00BB, 0x98, 0 },
306   { 0x00BC, 0x95, 0 },
307   { 0x00BD, 0x94, 0 },
308   { 0x00D7, 0xDE, 0 },
309   { 0x00F7, 0xDD, 0 },
310   { 0x03B2, 0x90, 0 },
311   { 0x03C6, 0x92, 0 },
312   { 0x060C, 0xAC, 0 },
313   { 0x061B, 0xBB, 0 },
314   { 0x061F, 0xBF, 0 },
315   { 0x0640, 0xE0, 0 },
316   { 0x0651, 0xF1, 0 },
317   { 0x0660, 0xB0, 0 },
318   { 0x0661, 0xB1, 0 },
319   { 0x0662, 0xB2, 0 },
320   { 0x0663, 0xB3, 0 },
321   { 0x0664, 0xB4, 0 },
322   { 0x0665, 0xB5, 0 },
323   { 0x0666, 0xB6, 0 },
324   { 0x0667, 0xB7, 0 },
325   { 0x0668, 0xB8, 0 },
326   { 0x0669, 0xB9, 0 },
327   { 0x066A, 0x25, 0 },
328   { 0x2219, 0x82, 0 },
329   { 0x221A, 0x83, 0 },
330   { 0x221E, 0x91, 0 },
331   { 0x2248, 0x96, 0 },
332   { 0x2500, 0x85, 0 },
333   { 0x2502, 0x86, 0 },
334   { 0x250C, 0x8D, 0 },
335   { 0x2510, 0x8C, 0 },
336   { 0x2514, 0x8E, 0 },
337   { 0x2518, 0x8F, 0 },
338   { 0x251C, 0x8A, 0 },
339   { 0x2524, 0x88, 0 },
340   { 0x252C, 0x89, 0 },
341   { 0x2534, 0x8B, 0 },
342   { 0x253C, 0x87, 0 },
343   { 0x2592, 0x84, 0 },
344   { 0x25A0, 0xFE, 0 }
347 /* ----------------------------------------------------------------------- */
349 static ImplByteConvertData const aImplIBM864ByteCvtData =
351     aImplIBM864ToUniTab,
352     NULL,
353     IBM864UNI_START, IBM864UNI_END,
354     NOTABUNI_START, NOTABUNI_END,
355     aImplIBM864ToCharTab,
356     NULL,
357     aImplIBM864ToCharTabEx,
358     IBM864CHAR_START, IBM864CHAR_END,
359     NOTABCHAR_START, NOTABCHAR_END,
360     IBM864TOCHARTABEX_COUNT
363 /* ----------------------------------------------------------------------- */
365 static ImplTextEncodingData const aImplIBM864TextEncodingData
366     = { { &aImplIBM864ByteCvtData,
367           ImplCharToUnicode,
368           ImplUnicodeToChar,
369           NULL,
370           NULL,
371           NULL,
372           NULL,
373           NULL,
374           NULL },
375         1,
376         1,
377         1,
378         178,
379         "iso8859-6",
380         "IBM864",
381         RTL_TEXTENCODING_INFO_ASCII
382             | RTL_TEXTENCODING_INFO_MIME
383             | RTL_TEXTENCODING_INFO_R2L };
384     /* DOS/OS2, SCRIPT_ARABIC, pc code page 864, mac encoding 4 */
386 /* ======================================================================= */
388 /* MS-1255 */
389 /* Windows Standard CharSet for Hebrew */
390 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
391 /* Convert-Tables: mappings/vendors/micsft/windows/cp1255.txt from 04/15/98 Version 2.01 */
392 /* Last-Changes from us: */
394 /* ----------------------------------------------------------------------- */
396 #define MS1255UNI_START                 0x80
397 #define MS1255UNI_END                   0xFF
398 static sal_uInt16 const aImplMS1255ToUniTab[MS1255UNI_END - MS1255UNI_START + 1] =
400 /*       0       1       2       3       4       5       6       7 */
401 /*       8       9       A       B       C       D       E       F */
402     0x20AC,      0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
403     0x02C6, 0x2030,      0, 0x2039,      0,      0,      0,      0, /* 0x80 */
404          0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
405     0x02DC, 0x2122,      0, 0x203A,      0,      0,      0,      0, /* 0x90 */
406     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
407     0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
408     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
409     0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
410     0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7, /* 0xC0 */
411     0x05B8, 0x05B9,      0, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF, /* 0xC0 */
412     0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3, /* 0xD0 */
413     0x05F4,      0,      0,      0,      0,      0,      0,      0, /* 0xD0 */
414     0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, /* 0xE0 */
415     0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, /* 0xE0 */
416     0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, /* 0xF0 */
417     0x05E8, 0x05E9, 0x05EA,      0,      0, 0x200E, 0x200F,      0  /* 0xF0 */
420 /* ----------------------------------------------------------------------- */
422 #define MS1255CHAR_START                0x05B0
423 #define MS1255CHAR_END                  0x05F4
424 static sal_uChar const aImplMS1255ToCharTab[MS1255CHAR_END - MS1255CHAR_START + 1] =
426 /*     0     1     2     3     4     5     6     7 */
427 /*     8     9     A     B     C     D     E     F */
428     0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x05B0 */
429     0xC8, 0xC9,    0, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x05B0 */
430     0xD0, 0xD1, 0xD2, 0xD3,    0,    0,    0,    0, /* 0x05C0 */
431        0,    0,    0,    0,    0,    0,    0,    0, /* 0x05C0 */
432     0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x05D0 */
433     0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x05D0 */
434     0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x05E0 */
435     0xF8, 0xF9, 0xFA,    0,    0,    0,    0,    0, /* 0x05E0 */
436     0xD4, 0xD5, 0xD6, 0xD7, 0xD8                    /* 0x05F0 */
439 /* ----------------------------------------------------------------------- */
441 #define MS1255TOCHARTABEX_COUNT         54
442 static ImplUniCharTabData const aImplMS1255ToCharTabEx[MS1255TOCHARTABEX_COUNT] =
444   { 0x00A0, 0xA0, 0 },
445   { 0x00A1, 0xA1, 0 },
446   { 0x00A2, 0xA2, 0 },
447   { 0x00A3, 0xA3, 0 },
448   { 0x00A5, 0xA5, 0 },
449   { 0x00A6, 0xA6, 0 },
450   { 0x00A7, 0xA7, 0 },
451   { 0x00A8, 0xA8, 0 },
452   { 0x00A9, 0xA9, 0 },
453   { 0x00AB, 0xAB, 0 },
454   { 0x00AC, 0xAC, 0 },
455   { 0x00AD, 0xAD, 0 },
456   { 0x00AE, 0xAE, 0 },
457   { 0x00AF, 0xAF, 0 },
458   { 0x00B0, 0xB0, 0 },
459   { 0x00B1, 0xB1, 0 },
460   { 0x00B2, 0xB2, 0 },
461   { 0x00B3, 0xB3, 0 },
462   { 0x00B4, 0xB4, 0 },
463   { 0x00B5, 0xB5, 0 },
464   { 0x00B6, 0xB6, 0 },
465   { 0x00B7, 0xB7, 0 },
466   { 0x00B8, 0xB8, 0 },
467   { 0x00B9, 0xB9, 0 },
468   { 0x00BB, 0xBB, 0 },
469   { 0x00BC, 0xBC, 0 },
470   { 0x00BD, 0xBD, 0 },
471   { 0x00BE, 0xBE, 0 },
472   { 0x00BF, 0xBF, 0 },
473   { 0x00D7, 0xAA, 0 },
474   { 0x00F7, 0xBA, 0 },
475   { 0x0192, 0x83, 0 },
476   { 0x02C6, 0x88, 0 },
477   { 0x02DC, 0x98, 0 },
478   { 0x200E, 0xFD, 0 },
479   { 0x200F, 0xFE, 0 },
480   { 0x2013, 0x96, 0 },
481   { 0x2014, 0x97, 0 },
482   { 0x2018, 0x91, 0 },
483   { 0x2019, 0x92, 0 },
484   { 0x201A, 0x82, 0 },
485   { 0x201C, 0x93, 0 },
486   { 0x201D, 0x94, 0 },
487   { 0x201E, 0x84, 0 },
488   { 0x2020, 0x86, 0 },
489   { 0x2021, 0x87, 0 },
490   { 0x2022, 0x95, 0 },
491   { 0x2026, 0x85, 0 },
492   { 0x2030, 0x89, 0 },
493   { 0x2039, 0x8B, 0 },
494   { 0x203A, 0x9B, 0 },
495   { 0x20AA, 0xA4, 0 },
496   { 0x20AC, 0x80, 0 },
497   { 0x2122, 0x99, 0 }
500 /* ----------------------------------------------------------------------- */
502 static ImplByteConvertData const aImplMS1255ByteCvtData =
504     aImplMS1255ToUniTab,
505     NULL,
506     MS1255UNI_START, MS1255UNI_END,
507     NOTABUNI_START, NOTABUNI_END,
508     aImplMS1255ToCharTab,
509     NULL,
510     aImplMS1255ToCharTabEx,
511     MS1255CHAR_START, MS1255CHAR_END,
512     NOTABCHAR_START, NOTABCHAR_END,
513     MS1255TOCHARTABEX_COUNT
516 /* ----------------------------------------------------------------------- */
518 static ImplTextEncodingData const aImplMS1255TextEncodingData
519     = { { &aImplMS1255ByteCvtData,
520           ImplCharToUnicode,
521           ImplUnicodeToChar,
522           NULL,
523           NULL,
524           NULL,
525           NULL,
526           NULL,
527           NULL },
528         1,
529         1,
530         1,
531         177,
532         "iso8859-8",
533         "windows-1255",
534         RTL_TEXTENCODING_INFO_ASCII
535             | RTL_TEXTENCODING_INFO_MIME
536             | RTL_TEXTENCODING_INFO_R2L };
537     /* WIN, SCRIPT_HEBREW, pc code page 862, mac encoding 5 */
539 /* ======================================================================= */
541 /* MS-1256 */
542 /* Windows Standard CharSet for Arabic */
543 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
544 /* Convert-Tables: mappings/vendors/micsft/windows/cp1256.txt from 01/5/99 Version 2.01 */
546 /* ----------------------------------------------------------------------- */
548 #define MS1256UNI_START                 0x80
549 #define MS1256UNI_END                   0xFF
550 static sal_uInt16 const aImplMS1256ToUniTab[MS1256UNI_END - MS1256UNI_START + 1] =
552 /*       0       1       2       3       4       5       6       7 */
553 /*       8       9       A       B       C       D       E       F */
554     0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
555     0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, /* 0x80 */
556     0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
557     0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA, /* 0x90 */
558     0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
559     0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
560     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
561     0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F, /* 0xB0 */
562     0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* 0xC0 */
563     0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, /* 0xC0 */
564     0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, /* 0xD0 */
565     0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, /* 0xD0 */
566     0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7, /* 0xE0 */
567     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF, /* 0xE0 */
568     0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7, /* 0xF0 */
569     0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2  /* 0xF0 */
572 /* ----------------------------------------------------------------------- */
574 #define MS1256CHAR_START                0x061B
575 #define MS1256CHAR_END                  0x0652
576 static sal_uChar const aImplMS1256ToCharTab[MS1256CHAR_END - MS1256CHAR_START + 1] =
578 /*     0     1     2     3     4     5     6     7 */
579 /*     8     9     A     B     C     D     E     F */
580                       0xBA,    0,    0,    0, 0xBF, /* 0x0610 */
581        0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0620 */
582     0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0620 */
583     0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD8, /* 0x0630 */
584     0xD9, 0xDA, 0xDB,    0,    0,    0,    0,    0, /* 0x0630 */
585     0xDC, 0xDD, 0xDE, 0xDF, 0xE1, 0xE3, 0xE4, 0xE5, /* 0x0640 */
586     0xE6, 0xEC, 0xED, 0xF0, 0xF1, 0xF2, 0xF3, 0xF5, /* 0x0640 */
587     0xF6, 0xF8, 0xFA                                /* 0x0650 */
590 /* ----------------------------------------------------------------------- */
592 #define MS1256TOCHARTABEX_COUNT         81
593 static ImplUniCharTabData const aImplMS1256ToCharTabEx[MS1256TOCHARTABEX_COUNT] =
595   { 0x00A0, 0xA0, 0 },
596   { 0x00A2, 0xA2, 0 },
597   { 0x00A3, 0xA3, 0 },
598   { 0x00A4, 0xA4, 0 },
599   { 0x00A5, 0xA5, 0 },
600   { 0x00A6, 0xA6, 0 },
601   { 0x00A7, 0xA7, 0 },
602   { 0x00A8, 0xA8, 0 },
603   { 0x00A9, 0xA9, 0 },
604   { 0x00AB, 0xAB, 0 },
605   { 0x00AC, 0xAC, 0 },
606   { 0x00AD, 0xAD, 0 },
607   { 0x00AE, 0xAE, 0 },
608   { 0x00AF, 0xAF, 0 },
609   { 0x00B0, 0xB0, 0 },
610   { 0x00B1, 0xB1, 0 },
611   { 0x00B2, 0xB2, 0 },
612   { 0x00B3, 0xB3, 0 },
613   { 0x00B4, 0xB4, 0 },
614   { 0x00B5, 0xB5, 0 },
615   { 0x00B6, 0xB6, 0 },
616   { 0x00B7, 0xB7, 0 },
617   { 0x00B8, 0xB8, 0 },
618   { 0x00B9, 0xB9, 0 },
619   { 0x00BB, 0xBB, 0 },
620   { 0x00BC, 0xBC, 0 },
621   { 0x00BD, 0xBD, 0 },
622   { 0x00BE, 0xBE, 0 },
623   { 0x00D7, 0xD7, 0 },
624   { 0x00E0, 0xE0, 0 },
625   { 0x00E2, 0xE2, 0 },
626   { 0x00E7, 0xE7, 0 },
627   { 0x00E8, 0xE8, 0 },
628   { 0x00E9, 0xE9, 0 },
629   { 0x00EA, 0xEA, 0 },
630   { 0x00EB, 0xEB, 0 },
631   { 0x00EE, 0xEE, 0 },
632   { 0x00EF, 0xEF, 0 },
633   { 0x00F4, 0xF4, 0 },
634   { 0x00F7, 0xF7, 0 },
635   { 0x00F9, 0xF9, 0 },
636   { 0x00FB, 0xFB, 0 },
637   { 0x00FC, 0xFC, 0 },
638   { 0x0152, 0x8C, 0 },
639   { 0x0153, 0x9C, 0 },
640   { 0x0192, 0x83, 0 },
641   { 0x02C6, 0x88, 0 },
642   { 0x060C, 0xA1, 0 },
643   { 0x0679, 0x8A, 0 },
644   { 0x067E, 0x81, 0 },
645   { 0x0686, 0x8D, 0 },
646   { 0x0688, 0x8F, 0 },
647   { 0x0691, 0x9A, 0 },
648   { 0x0698, 0x8E, 0 },
649   { 0x06A9, 0x98, 0 },
650   { 0x06AF, 0x90, 0 },
651   { 0x06BA, 0x9F, 0 },
652   { 0x06BE, 0xAA, 0 },
653   { 0x06C1, 0xC0, 0 },
654   { 0x06D2, 0xFF, 0 },
655   { 0x200C, 0x9D, 0 },
656   { 0x200D, 0x9E, 0 },
657   { 0x200E, 0xFD, 0 },
658   { 0x200F, 0xFE, 0 },
659   { 0x2013, 0x96, 0 },
660   { 0x2014, 0x97, 0 },
661   { 0x2018, 0x91, 0 },
662   { 0x2019, 0x92, 0 },
663   { 0x201A, 0x82, 0 },
664   { 0x201C, 0x93, 0 },
665   { 0x201D, 0x94, 0 },
666   { 0x201E, 0x84, 0 },
667   { 0x2020, 0x86, 0 },
668   { 0x2021, 0x87, 0 },
669   { 0x2022, 0x95, 0 },
670   { 0x2026, 0x85, 0 },
671   { 0x2030, 0x89, 0 },
672   { 0x2039, 0x8B, 0 },
673   { 0x203A, 0x9B, 0 },
674   { 0x20AC, 0x80, 0 },
675   { 0x2122, 0x99, 0 }
678 /* ----------------------------------------------------------------------- */
680 static ImplByteConvertData const aImplMS1256ByteCvtData =
682     aImplMS1256ToUniTab,
683     NULL,
684     MS1256UNI_START, MS1256UNI_END,
685     NOTABUNI_START, NOTABUNI_END,
686     aImplMS1256ToCharTab,
687     NULL,
688     aImplMS1256ToCharTabEx,
689     MS1256CHAR_START, MS1256CHAR_END,
690     NOTABCHAR_START, NOTABCHAR_END,
691     MS1256TOCHARTABEX_COUNT
694 /* ----------------------------------------------------------------------- */
696 static ImplTextEncodingData const aImplMS1256TextEncodingData
697     = { { &aImplMS1256ByteCvtData,
698           ImplCharToUnicode,
699           ImplUnicodeToChar,
700           NULL,
701           NULL,
702           NULL,
703           NULL,
704           NULL,
705           NULL },
706         1,
707         1,
708         1,
709         178,
710         "iso8859-6",
711         "windows-1256",
712         RTL_TEXTENCODING_INFO_ASCII
713             | RTL_TEXTENCODING_INFO_MIME
714             | RTL_TEXTENCODING_INFO_R2L };
715     /* WIN, SCRIPT_ARABIC, pc code page 864, mac encoding 4 */
717 /* ======================================================================= */
719 /* ISO-8859-6 */
720 /* Unix Standard for Arabic */
721 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
722 /* Convert-Tables: mappings/iso8859/8859-6.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
723 /* Last-Changes from us: */
724 /* !!! 0x30-0x39 sind Arabische Zahlen und muessten eigentlich nach 0x0660-0x0669 gemappt werden !!! */
726 #define ISO88596UNI_START               0xA0
727 #define ISO88596UNI_END                 0xF2
728 static sal_uInt16 const aImplISO88596ToUniTab[ISO88596UNI_END - ISO88596UNI_START + 1] =
730 /*       0       1       2       3       4       5       6       7 */
731 /*       8       9       A       B       C       D       E       F */
732     0x00A0,      0,      0,      0, 0x00A4,      0,      0,      0, /* 0xA0 */
733          0,      0,      0,      0, 0x060C, 0x00AD,      0,      0, /* 0xA0 */
734          0,      0,      0,      0,      0,      0,      0,      0, /* 0xB0 */
735          0,      0,      0, 0x061B,      0,      0,      0, 0x061F, /* 0xB0 */
736          0, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* 0xC0 */
737     0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, /* 0xC0 */
738     0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, /* 0xD0 */
739     0x0638, 0x0639, 0x063A,      0,      0,      0,      0,      0, /* 0xD0 */
740     0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, /* 0xE0 */
741     0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, /* 0xE0 */
742     0x0650, 0x0651, 0x0652                                          /* 0xF0 */
743                                                                     /* 0xF0 */
746 /* ----------------------------------------------------------------------- */
748 #define ISO88596CHAR_START              0x061B
749 #define ISO88596CHAR_END                0x0669
750 static sal_uChar const aImplISO88596ToCharTab[ISO88596CHAR_END - ISO88596CHAR_START + 1] =
752 /*     0     1     2     3     4     5     6     7 */
753 /*     8     9     A     B     C     D     E     F */
754                       0xBB,    0,    0,    0, 0xBF, /* 0x0610 */
755        0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0620 */
756     0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0620 */
757     0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0630 */
758     0xD8, 0xD9, 0xDA,    0,    0,    0,    0,    0, /* 0x0630 */
759     0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0640 */
760     0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0640 */
761     0xF0, 0xF1, 0xF2,    0,    0,    0,    0,    0, /* 0x0650 */
762        0,    0,    0,    0,    0,    0,    0,    0, /* 0x0650 */
763     0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x0660 */
764     0x38, 0x39                                      /* 0x0660 */
767 /* ----------------------------------------------------------------------- */
769 #define ISO88596TOCHARTABEX_COUNT       4
770 static ImplUniCharTabData const aImplISO88596ToCharTabEx[ISO88596TOCHARTABEX_COUNT] =
772   { 0x00A0, 0xA0, 0 },
773   { 0x00A4, 0xA4, 0 },
774   { 0x00AD, 0xAD, 0 },
775   { 0x060C, 0xAC, 0 }
778 /* ----------------------------------------------------------------------- */
780 static ImplByteConvertData const aImplISO88596ByteCvtData =
782     aImplISO88596ToUniTab,
783     aImpl8090SameToUniTab,
784     ISO88596UNI_START, ISO88596UNI_END,
785     SAME8090UNI_START, SAME8090UNI_END,
786     aImplISO88596ToCharTab,
787     aImpl8090SameToCharTab,
788     aImplISO88596ToCharTabEx,
789     ISO88596CHAR_START, ISO88596CHAR_END,
790     SAME8090CHAR_START, SAME8090CHAR_END,
791     ISO88596TOCHARTABEX_COUNT
794 /* ----------------------------------------------------------------------- */
796 static ImplTextEncodingData const aImplISO88596TextEncodingData
797     = { { &aImplISO88596ByteCvtData,
798           ImplCharToUnicode,
799           ImplUnicodeToChar,
800           NULL,
801           NULL,
802           NULL,
803           NULL,
804           NULL,
805           NULL },
806         1,
807         1,
808         1,
809         178,
810         "iso8859-6",
811         "ISO-8859-6",
812         RTL_TEXTENCODING_INFO_ASCII
813             | RTL_TEXTENCODING_INFO_R2L
814             | RTL_TEXTENCODING_INFO_MIME };
815     /* SCRIPT_ARABIC, pc code page 864, mac encoding 4 */
818 /* ======================================================================= */
820 /* ISO-8859-8 */
821 /* Unix Standard for Hebrew */
822 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
823 /* Convert-Tables: mappings/iso8859/8859-8.txt from 2000-Jan-03 Version 1.1 (based on Unicode 3.0) */
825 #define ISO88598UNI_START               0xA0
826 #define ISO88598UNI_END                 0xFE
827 static sal_uInt16 const aImplISO88598ToUniTab[ISO88598UNI_END - ISO88598UNI_START + 1] =
829 /*       0       1       2       3       4       5       6       7 */
830 /*       8       9       A       B       C       D       E       F */
831     0x00A0,      0, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
832     0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
833     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
834     0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE,      0, /* 0xB0 */
835          0,      0,      0,      0,      0,      0,      0,      0, /* 0xC0 */
836          0,      0,      0,      0,      0,      0,      0,      0, /* 0xC0 */
837          0,      0,      0,      0,      0,      0,      0,      0, /* 0xD0 */
838          0,      0,      0,      0,      0,      0,      0, 0x2017, /* 0xD0 */
839     0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, /* 0xE0 */
840     0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, /* 0xE0 */
841     0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, /* 0xF0 */
842     0x05E8, 0x05E9, 0x05EA,      0,      0, 0x200E, 0x200F          /* 0xF0 */
845 /* ----------------------------------------------------------------------- */
847 #define ISO88598CHAR_START              0x05D0
848 #define ISO88598CHAR_END                0x05EA
849 static sal_uChar const aImplISO88598ToCharTab[ISO88598CHAR_END - ISO88598CHAR_START + 1] =
851 /*     0     1     2     3     4     5     6     7 */
852 /*     8     9     A     B     C     D     E     F */
853     0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x05D0 */
854     0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x05D0 */
855     0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x05E0 */
856     0xF8, 0xF9, 0xFA                                /* 0x05E0 */
859 /* ----------------------------------------------------------------------- */
861 #define ISO88598TOCHARTABEX_COUNT       33
862 static ImplUniCharTabData const aImplISO88598ToCharTabEx[ISO88598TOCHARTABEX_COUNT] =
864   { 0x00A0, 0xA0, 0 },
865   { 0x00A2, 0xA2, 0 },
866   { 0x00A3, 0xA3, 0 },
867   { 0x00A4, 0xA4, 0 },
868   { 0x00A5, 0xA5, 0 },
869   { 0x00A6, 0xA6, 0 },
870   { 0x00A7, 0xA7, 0 },
871   { 0x00A8, 0xA8, 0 },
872   { 0x00A9, 0xA9, 0 },
873   { 0x00AB, 0xAB, 0 },
874   { 0x00AC, 0xAC, 0 },
875   { 0x00AD, 0xAD, 0 },
876   { 0x00AE, 0xAE, 0 },
877   { 0x00AF, 0xAF, 0 },
878   { 0x00B0, 0xB0, 0 },
879   { 0x00B1, 0xB1, 0 },
880   { 0x00B2, 0xB2, 0 },
881   { 0x00B3, 0xB3, 0 },
882   { 0x00B4, 0xB4, 0 },
883   { 0x00B5, 0xB5, 0 },
884   { 0x00B6, 0xB6, 0 },
885   { 0x00B7, 0xB7, 0 },
886   { 0x00B8, 0xB8, 0 },
887   { 0x00B9, 0xB9, 0 },
888   { 0x00BB, 0xBB, 0 },
889   { 0x00BC, 0xBC, 0 },
890   { 0x00BD, 0xBD, 0 },
891   { 0x00BE, 0xBE, 0 },
892   { 0x00D7, 0xAA, 0 },
893   { 0x00F7, 0xBA, 0 },
894   { 0x200E, 0xFD, 0 },
895   { 0x200F, 0xFE, 0 },
896   { 0x2017, 0xDF, 0 }
899 /* ----------------------------------------------------------------------- */
901 static ImplByteConvertData const aImplISO88598ByteCvtData =
903     aImplISO88598ToUniTab,
904     aImpl8090SameToUniTab,
905     ISO88598UNI_START, ISO88598UNI_END,
906     SAME8090UNI_START, SAME8090UNI_END,
907     aImplISO88598ToCharTab,
908     aImpl8090SameToCharTab,
909     aImplISO88598ToCharTabEx,
910     ISO88598CHAR_START, ISO88598CHAR_END,
911     SAME8090CHAR_START, SAME8090CHAR_END,
912     ISO88598TOCHARTABEX_COUNT
915 /* ----------------------------------------------------------------------- */
917 static ImplTextEncodingData const aImplISO88598TextEncodingData
918     = { { &aImplISO88598ByteCvtData,
919           ImplCharToUnicode,
920           ImplUnicodeToChar,
921           NULL,
922           NULL,
923           NULL,
924           NULL,
925           NULL,
926           NULL },
927         1,
928         1,
929         1,
930         177,
931         "iso8859-8",
932         "ISO-8859-8",
933         RTL_TEXTENCODING_INFO_ASCII
934             | RTL_TEXTENCODING_INFO_R2L
935             | RTL_TEXTENCODING_INFO_MIME };
936     /* SCRIPT_HEBREW, pc code page 862, mac encoding 5 */