Update ooo320-m1
[ooovba.git] / sal / textenc / tcvtlat1.tab
blob4bc77f6a81d60b37179c7aa841d6b90bed90910a
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  * 
5  * Copyright 2008 by Sun Microsystems, Inc.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * $RCSfile: tcvtlat1.tab,v $
10  * $Revision: 1.9 $
11  *
12  * This file is part of OpenOffice.org.
13  *
14  * OpenOffice.org is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU Lesser General Public License version 3
16  * only, as published by the Free Software Foundation.
17  *
18  * OpenOffice.org is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU Lesser General Public License version 3 for more details
22  * (a copy is included in the LICENSE file that accompanied this code).
23  *
24  * You should have received a copy of the GNU Lesser General Public License
25  * version 3 along with OpenOffice.org.  If not, see
26  * <http://www.openoffice.org/license.html>
27  * for a copy of the LGPLv3 License.
28  *
29  ************************************************************************/
31 /* ======================================================================= */
33 /* This file contain the tables for all 1 byte charsets, for the */
34 /* following scripts: latin, iceland, nordic */
36 /* ======================================================================= */
38 /* IBM-437 */
39 /* Dos Latin US - Standard CharSet for Western Script */
40 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
41 /* Convert-Tables: mappings/vendors/micsft/pc/cp437.txt from 04/24/96 Version 2.00 */
42 /* Last-Changes from us: */
44 /* ----------------------------------------------------------------------- */
46 #define IBM437UNI_START                 0x80
47 #define IBM437UNI_END                   0xFF
48 static sal_uInt16 const aImplIBM437ToUniTab[IBM437UNI_END - IBM437UNI_START + 1] =
50 /*       0       1       2       3       4       5       6       7 */
51 /*       8       9       A       B       C       D       E       F */
52     0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
53     0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, /* 0x80 */
54     0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
55     0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, /* 0x90 */
56     0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
57     0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
58     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
59     0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
60     0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
61     0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
62     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
63     0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
64     0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
65     0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
66     0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
67     0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
70 /* ----------------------------------------------------------------------- */
72 #define IBM437CHAR_START                0x00A0
73 #define IBM437CHAR_END                  0x00FF
74 static sal_uChar const aImplIBM437ToCharTab[IBM437CHAR_END - IBM437CHAR_START + 1] =
76 /*     0     1     2     3     4     5     6     7 */
77 /*     8     9     A     B     C     D     E     F */
78     0xFF, 0xAD, 0x9B, 0x9C,    0, 0x9D,    0,    0, /* 0x00A0 */
79        0,    0, 0xA6, 0xAE, 0xAA,    0,    0,    0, /* 0x00A0 */
80     0xF8, 0xF1, 0xFD,    0,    0, 0xE6,    0, 0xFA, /* 0x00B0 */
81        0,    0, 0xA7, 0xAF, 0xAC, 0xAB,    0, 0xA8, /* 0x00B0 */
82        0,    0,    0,    0, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
83        0, 0x90,    0,    0,    0,    0,    0,    0, /* 0x00C0 */
84        0, 0xA5,    0,    0,    0,    0, 0x99,    0, /* 0x00D0 */
85        0,    0,    0,    0, 0x9A,    0,    0, 0xE1, /* 0x00D0 */
86     0x85, 0xA0, 0x83,    0, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
87     0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
88        0, 0xA4, 0x95, 0xA2, 0x93,    0, 0x94, 0xF6, /* 0x00F0 */
89        0, 0x97, 0xA3, 0x96, 0x81,    0,    0, 0x98  /* 0x00F0 */
92 /* ----------------------------------------------------------------------- */
94 #define IBM437TOCHARTABEX_COUNT         75
95 static ImplUniCharTabData const aImplIBM437ToCharTabEx[IBM437TOCHARTABEX_COUNT] =
97   { 0x0192, 0x9F, 0 },
98   { 0x0393, 0xE2, 0 },
99   { 0x0398, 0xE9, 0 },
100   { 0x03A3, 0xE4, 0 },
101   { 0x03A6, 0xE8, 0 },
102   { 0x03A9, 0xEA, 0 },
103   { 0x03B1, 0xE0, 0 },
104   { 0x03B4, 0xEB, 0 },
105   { 0x03B5, 0xEE, 0 },
106   { 0x03C0, 0xE3, 0 },
107   { 0x03C3, 0xE5, 0 },
108   { 0x03C4, 0xE7, 0 },
109   { 0x03C6, 0xED, 0 },
110   { 0x207F, 0xFC, 0 },
111   { 0x20A7, 0x9E, 0 },
112   { 0x2219, 0xF9, 0 },
113   { 0x221A, 0xFB, 0 },
114   { 0x221E, 0xEC, 0 },
115   { 0x2229, 0xEF, 0 },
116   { 0x2248, 0xF7, 0 },
117   { 0x2261, 0xF0, 0 },
118   { 0x2264, 0xF3, 0 },
119   { 0x2265, 0xF2, 0 },
120   { 0x2310, 0xA9, 0 },
121   { 0x2320, 0xF4, 0 },
122   { 0x2321, 0xF5, 0 },
123   { 0x2500, 0xC4, 0 },
124   { 0x2502, 0xB3, 0 },
125   { 0x250C, 0xDA, 0 },
126   { 0x2510, 0xBF, 0 },
127   { 0x2514, 0xC0, 0 },
128   { 0x2518, 0xD9, 0 },
129   { 0x251C, 0xC3, 0 },
130   { 0x2524, 0xB4, 0 },
131   { 0x252C, 0xC2, 0 },
132   { 0x2534, 0xC1, 0 },
133   { 0x253C, 0xC5, 0 },
134   { 0x2550, 0xCD, 0 },
135   { 0x2551, 0xBA, 0 },
136   { 0x2552, 0xD5, 0 },
137   { 0x2553, 0xD6, 0 },
138   { 0x2554, 0xC9, 0 },
139   { 0x2555, 0xB8, 0 },
140   { 0x2556, 0xB7, 0 },
141   { 0x2557, 0xBB, 0 },
142   { 0x2558, 0xD4, 0 },
143   { 0x2559, 0xD3, 0 },
144   { 0x255A, 0xC8, 0 },
145   { 0x255B, 0xBE, 0 },
146   { 0x255C, 0xBD, 0 },
147   { 0x255D, 0xBC, 0 },
148   { 0x255E, 0xC6, 0 },
149   { 0x255F, 0xC7, 0 },
150   { 0x2560, 0xCC, 0 },
151   { 0x2561, 0xB5, 0 },
152   { 0x2562, 0xB6, 0 },
153   { 0x2563, 0xB9, 0 },
154   { 0x2564, 0xD1, 0 },
155   { 0x2565, 0xD2, 0 },
156   { 0x2566, 0xCB, 0 },
157   { 0x2567, 0xCF, 0 },
158   { 0x2568, 0xD0, 0 },
159   { 0x2569, 0xCA, 0 },
160   { 0x256A, 0xD8, 0 },
161   { 0x256B, 0xD7, 0 },
162   { 0x256C, 0xCE, 0 },
163   { 0x2580, 0xDF, 0 },
164   { 0x2584, 0xDC, 0 },
165   { 0x2588, 0xDB, 0 },
166   { 0x258C, 0xDD, 0 },
167   { 0x2590, 0xDE, 0 },
168   { 0x2591, 0xB0, 0 },
169   { 0x2592, 0xB1, 0 },
170   { 0x2593, 0xB2, 0 },
171   { 0x25A0, 0xFE, 0 }
174 /* ----------------------------------------------------------------------- */
176 static ImplByteConvertData const aImplIBM437ByteCvtData =
178     aImplIBM437ToUniTab,
179     NULL,
180     IBM437UNI_START, IBM437UNI_END,
181     NOTABUNI_START, NOTABUNI_END,
182     aImplIBM437ToCharTab,
183     NULL,
184     aImplIBM437ToCharTabEx,
185     IBM437CHAR_START, IBM437CHAR_END,
186     NOTABCHAR_START, NOTABCHAR_END,
187     IBM437TOCHARTABEX_COUNT
190 /* ----------------------------------------------------------------------- */
192 static ImplTextEncodingData const aImplIBM437TextEncodingData
193     = { { &aImplIBM437ByteCvtData,
194           ImplCharToUnicode,
195           ImplUnicodeToChar,
196           NULL,
197           NULL,
198           NULL,
199           NULL,
200           NULL,
201           NULL },
202         1,
203         1,
204         1,
205         0,
206         "iso8859-1",
207         "ibm437",
208         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
209     /* DOS/OS2, SCRIPT_LATIN, pc code page 437 */
211 /* ======================================================================= */
213 /* IBM-850 */
214 /* Dos Standard CharSet for Western/Europa */
215 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
216 /* Convert-Tables: mappings/vendors/micsft/pc/cp850.txt from 04/24/96 Version 2.00 */
217 /* Last-Changes from us: */
218 /* D5 - geaendert auf EURO SIGN and 0x20AC added to D5 */
220 /* ----------------------------------------------------------------------- */
222 #define IBM850UNI_START                 0x80
223 #define IBM850UNI_END                   0xFF
224 static sal_uInt16 const aImplIBM850ToUniTab[IBM850UNI_END - IBM850UNI_START + 1] =
226 /*       0       1       2       3       4       5       6       7 */
227 /*       8       9       A       B       C       D       E       F */
228     0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
229     0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, /* 0x80 */
230     0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
231     0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, /* 0x90 */
232     0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
233     0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
234     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, /* 0xB0 */
235     0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, /* 0xB0 */
236     0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, /* 0xC0 */
237     0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
238     0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x20AC, 0x00CD, 0x00CE, /* 0xD0 */
239     0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, /* 0xD0 */
240     0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, /* 0xE0 */
241     0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, /* 0xE0 */
242     0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
243     0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
246 /* ----------------------------------------------------------------------- */
248 #define IBM850CHAR_START                0x00A0
249 #define IBM850CHAR_END                  0x00FF
250 static sal_uChar const aImplIBM850ToCharTab[IBM850CHAR_END - IBM850CHAR_START + 1] =
252 /*     0     1     2     3     4     5     6     7 */
253 /*     8     9     A     B     C     D     E     F */
254     0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, /* 0x00A0 */
255     0xF9, 0xB8, 0xA6, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, /* 0x00A0 */
256     0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, /* 0x00B0 */
257     0xF7, 0xFB, 0xA7, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, /* 0x00B0 */
258     0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
259     0xD4, 0x90, 0xD2, 0xD3, 0xDE, 0xD6, 0xD7, 0xD8, /* 0x00C0 */
260     0xD1, 0xA5, 0xE3, 0xE0, 0xE2, 0xE5, 0x99, 0x9E, /* 0x00D0 */
261     0x9D, 0xEB, 0xE9, 0xEA, 0x9A, 0xED, 0xE8, 0xE1, /* 0x00D0 */
262     0x85, 0xA0, 0x83, 0xC6, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
263     0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
264     0xD0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* 0x00F0 */
265     0x9B, 0x97, 0xA3, 0x96, 0x81, 0xEC, 0xE7, 0x98  /* 0x00F0 */
268 /* ----------------------------------------------------------------------- */
270 #define IBM850TOCHARTABEX_COUNT         33
271 static ImplUniCharTabData const aImplIBM850ToCharTabEx[IBM850TOCHARTABEX_COUNT] =
273   { 0x0131, 0xD5, 0 },
274   { 0x0192, 0x9F, 0 },
275   { 0x2017, 0xF2, 0 },
276   { 0x20AC, 0xD5, 0 },
277   { 0x2500, 0xC4, 0 },
278   { 0x2502, 0xB3, 0 },
279   { 0x250C, 0xDA, 0 },
280   { 0x2510, 0xBF, 0 },
281   { 0x2514, 0xC0, 0 },
282   { 0x2518, 0xD9, 0 },
283   { 0x251C, 0xC3, 0 },
284   { 0x2524, 0xB4, 0 },
285   { 0x252C, 0xC2, 0 },
286   { 0x2534, 0xC1, 0 },
287   { 0x253C, 0xC5, 0 },
288   { 0x2550, 0xCD, 0 },
289   { 0x2551, 0xBA, 0 },
290   { 0x2554, 0xC9, 0 },
291   { 0x2557, 0xBB, 0 },
292   { 0x255A, 0xC8, 0 },
293   { 0x255D, 0xBC, 0 },
294   { 0x2560, 0xCC, 0 },
295   { 0x2563, 0xB9, 0 },
296   { 0x2566, 0xCB, 0 },
297   { 0x2569, 0xCA, 0 },
298   { 0x256C, 0xCE, 0 },
299   { 0x2580, 0xDF, 0 },
300   { 0x2584, 0xDC, 0 },
301   { 0x2588, 0xDB, 0 },
302   { 0x2591, 0xB0, 0 },
303   { 0x2592, 0xB1, 0 },
304   { 0x2593, 0xB2, 0 },
305   { 0x25A0, 0xFE, 0 }
308 /* ----------------------------------------------------------------------- */
310 static ImplByteConvertData const aImplIBM850ByteCvtData =
312     aImplIBM850ToUniTab,
313     NULL,
314     IBM850UNI_START, IBM850UNI_END,
315     NOTABUNI_START, NOTABUNI_END,
316     aImplIBM850ToCharTab,
317     NULL,
318     aImplIBM850ToCharTabEx,
319     IBM850CHAR_START, IBM850CHAR_END,
320     NOTABCHAR_START, NOTABCHAR_END,
321     IBM850TOCHARTABEX_COUNT
324 /* ----------------------------------------------------------------------- */
326 static ImplTextEncodingData const aImplIBM850TextEncodingData
327     = { { &aImplIBM850ByteCvtData,
328           ImplCharToUnicode,
329           ImplUnicodeToChar,
330           NULL,
331           NULL,
332           NULL,
333           NULL,
334           NULL,
335           NULL },
336         1,
337         1,
338         1,
339         0,
340         "iso8859-1",
341         "ibm850",
342         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
343     /* DOS/OS2, SCRIPT_LATIN, pc code page 850 */
345 /* ======================================================================= */
347 /* IBM-860 */
348 /* Dos Standard CharSet for Portugiese */
349 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
350 /* Convert-Tables: mappings/vendors/micsft/pc/cp860.txt from 04/24/96 Version 2.00 */
351 /* Last-Changes from us: */
353 /* ----------------------------------------------------------------------- */
355 #define IBM860UNI_START                 0x80
356 #define IBM860UNI_END                   0xFF
357 static sal_uInt16 const aImplIBM860ToUniTab[IBM860UNI_END - IBM860UNI_START + 1] =
359 /*       0       1       2       3       4       5       6       7 */
360 /*       8       9       A       B       C       D       E       F */
361     0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, /* 0x80 */
362     0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, /* 0x80 */
363     0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, /* 0x90 */
364     0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, /* 0x90 */
365     0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
366     0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
367     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
368     0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
369     0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
370     0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
371     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
372     0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
373     0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
374     0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
375     0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
376     0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
379 /* ----------------------------------------------------------------------- */
381 #define IBM860CHAR_START                0x00A0
382 #define IBM860CHAR_END                  0x00FC
383 static sal_uChar const aImplIBM860ToCharTab[IBM860CHAR_END - IBM860CHAR_START + 1] =
385 /*     0     1     2     3     4     5     6     7 */
386 /*     8     9     A     B     C     D     E     F */
387     0xFF, 0xAD, 0x9B, 0x9C,    0 ,   0,    0,    0, /* 0x00A0 */
388        0,    0, 0xA6, 0xAE, 0xAA,    0,    0,    0, /* 0x00A0 */
389     0xF8, 0xF1, 0xFD,    0,    0, 0xE6,    0, 0xFA, /* 0x00B0 */
390        0,    0, 0xA7, 0xAF, 0xAC, 0xAB,    0, 0xA8, /* 0x00B0 */
391     0x91, 0x86, 0x8F, 0x8E,    0,    0,    0, 0x80, /* 0x00C0 */
392     0x92, 0x90, 0x89,    0, 0x98, 0x8B,    0,    0, /* 0x00C0 */
393        0, 0xA5, 0xA9, 0x9F, 0x8C, 0x99,    0,    0, /* 0x00D0 */
394        0, 0x9D, 0x96,    0, 0x9A,    0,    0, 0xE1, /* 0x00D0 */
395     0x85, 0xA0, 0x83, 0x84,    0,    0,    0, 0x87, /* 0x00E0 */
396     0x8A, 0x82, 0x88,    0, 0x8D, 0xA1,    0,    0, /* 0x00E0 */
397        0, 0xA4, 0x95, 0xA2, 0x93, 0x94,    0, 0xF6, /* 0x00F0 */
398        0, 0x97, 0xA3,    0, 0x81                    /* 0x00F0 */
401 /* ----------------------------------------------------------------------- */
403 #define IBM860TOCHARTABEX_COUNT         73
404 static ImplUniCharTabData const aImplIBM860ToCharTabEx[IBM860TOCHARTABEX_COUNT] =
406   { 0x0393, 0xE2, 0 },
407   { 0x0398, 0xE9, 0 },
408   { 0x03A3, 0xE4, 0 },
409   { 0x03A6, 0xE8, 0 },
410   { 0x03A9, 0xEA, 0 },
411   { 0x03B1, 0xE0, 0 },
412   { 0x03B4, 0xEB, 0 },
413   { 0x03B5, 0xEE, 0 },
414   { 0x03C0, 0xE3, 0 },
415   { 0x03C3, 0xE5, 0 },
416   { 0x03C4, 0xE7, 0 },
417   { 0x03C6, 0xED, 0 },
418   { 0x207F, 0xFC, 0 },
419   { 0x20A7, 0x9E, 0 },
420   { 0x2219, 0xF9, 0 },
421   { 0x221A, 0xFB, 0 },
422   { 0x221E, 0xEC, 0 },
423   { 0x2229, 0xEF, 0 },
424   { 0x2248, 0xF7, 0 },
425   { 0x2261, 0xF0, 0 },
426   { 0x2264, 0xF3, 0 },
427   { 0x2265, 0xF2, 0 },
428   { 0x2320, 0xF4, 0 },
429   { 0x2321, 0xF5, 0 },
430   { 0x2500, 0xC4, 0 },
431   { 0x2502, 0xB3, 0 },
432   { 0x250C, 0xDA, 0 },
433   { 0x2510, 0xBF, 0 },
434   { 0x2514, 0xC0, 0 },
435   { 0x2518, 0xD9, 0 },
436   { 0x251C, 0xC3, 0 },
437   { 0x2524, 0xB4, 0 },
438   { 0x252C, 0xC2, 0 },
439   { 0x2534, 0xC1, 0 },
440   { 0x253C, 0xC5, 0 },
441   { 0x2550, 0xCD, 0 },
442   { 0x2551, 0xBA, 0 },
443   { 0x2552, 0xD5, 0 },
444   { 0x2553, 0xD6, 0 },
445   { 0x2554, 0xC9, 0 },
446   { 0x2555, 0xB8, 0 },
447   { 0x2556, 0xB7, 0 },
448   { 0x2557, 0xBB, 0 },
449   { 0x2558, 0xD4, 0 },
450   { 0x2559, 0xD3, 0 },
451   { 0x255A, 0xC8, 0 },
452   { 0x255B, 0xBE, 0 },
453   { 0x255C, 0xBD, 0 },
454   { 0x255D, 0xBC, 0 },
455   { 0x255E, 0xC6, 0 },
456   { 0x255F, 0xC7, 0 },
457   { 0x2560, 0xCC, 0 },
458   { 0x2561, 0xB5, 0 },
459   { 0x2562, 0xB6, 0 },
460   { 0x2563, 0xB9, 0 },
461   { 0x2564, 0xD1, 0 },
462   { 0x2565, 0xD2, 0 },
463   { 0x2566, 0xCB, 0 },
464   { 0x2567, 0xCF, 0 },
465   { 0x2568, 0xD0, 0 },
466   { 0x2569, 0xCA, 0 },
467   { 0x256A, 0xD8, 0 },
468   { 0x256B, 0xD7, 0 },
469   { 0x256C, 0xCE, 0 },
470   { 0x2580, 0xDF, 0 },
471   { 0x2584, 0xDC, 0 },
472   { 0x2588, 0xDB, 0 },
473   { 0x258C, 0xDD, 0 },
474   { 0x2590, 0xDE, 0 },
475   { 0x2591, 0xB0, 0 },
476   { 0x2592, 0xB1, 0 },
477   { 0x2593, 0xB2, 0 },
478   { 0x25A0, 0xFE, 0 }
481 /* ----------------------------------------------------------------------- */
483 static ImplByteConvertData const aImplIBM860ByteCvtData =
485     aImplIBM860ToUniTab,
486     NULL,
487     IBM860UNI_START, IBM860UNI_END,
488     NOTABUNI_START, NOTABUNI_END,
489     aImplIBM860ToCharTab,
490     NULL,
491     aImplIBM860ToCharTabEx,
492     IBM860CHAR_START, IBM860CHAR_END,
493     NOTABCHAR_START, NOTABCHAR_END,
494     IBM860TOCHARTABEX_COUNT
497 /* ----------------------------------------------------------------------- */
499 static ImplTextEncodingData const aImplIBM860TextEncodingData
500     = { { &aImplIBM860ByteCvtData,
501           ImplCharToUnicode,
502           ImplUnicodeToChar,
503           NULL,
504           NULL,
505           NULL,
506           NULL,
507           NULL,
508           NULL },
509         1,
510         1,
511         1,
512         0,
513         "iso8859-1",
514         "IBM860",
515         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
516     /* DOS/OS2, SCRIPT_LATIN, pc code page 860 */
518 /* ======================================================================= */
520 /* IBM-861 */
521 /* Dos Standard CharSet for Icelandic */
522 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
523 /* Convert-Tables: mappings/vendors/micsft/pc/cp861.txt from 04/24/96 Version 2.00 */
524 /* Last-Changes from us: */
526 /* ----------------------------------------------------------------------- */
528 #define IBM861UNI_START                 0x80
529 #define IBM861UNI_END                   0xFF
530 static sal_uInt16 const aImplIBM861ToUniTab[IBM861UNI_END - IBM861UNI_START + 1] =
532 /*       0       1       2       3       4       5       6       7 */
533 /*       8       9       A       B       C       D       E       F */
534     0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
535     0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, /* 0x80 */
536     0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, /* 0x90 */
537     0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, /* 0x90 */
538     0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, /* 0xA0 */
539     0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
540     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
541     0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
542     0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
543     0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
544     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
545     0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
546     0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
547     0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
548     0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
549     0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
552 /* ----------------------------------------------------------------------- */
554 #define IBM861CHAR_START                0x00A0
555 #define IBM861CHAR_END                  0x00FE
556 static sal_uChar const aImplIBM861ToCharTab[IBM861CHAR_END - IBM861CHAR_START + 1] =
558 /*     0     1     2     3     4     5     6     7 */
559 /*     8     9     A     B     C     D     E     F */
560     0xFF, 0xAD,    0, 0x9C,    0,    0,    0,    0, /* 0x00A0 */
561        0,    0,    0, 0xAE, 0xAA,    0,    0,    0, /* 0x00A0 */
562     0xF8, 0xF1, 0xFD,    0,    0, 0xE6,    0, 0xFA, /* 0x00B0 */
563        0,    0,    0, 0xAF, 0xAC, 0xAB,    0, 0xA8, /* 0x00B0 */
564        0, 0xA4,    0,    0, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
565        0, 0x90,    0,    0,    0, 0xA5,    0,    0, /* 0x00C0 */
566     0x8B,    0,    0, 0xA6,    0,    0, 0x99,    0, /* 0x00D0 */
567     0x9D,    0, 0xA7,    0, 0x9A, 0x97, 0x8D, 0xE1, /* 0x00D0 */
568     0x85, 0xA0, 0x83,    0, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
569     0x8A, 0x82, 0x88, 0x89,    0, 0xA1,    0,    0, /* 0x00E0 */
570     0x8C,    0,    0, 0xA2, 0x93,    0, 0x94, 0xF6, /* 0x00F0 */
571     0x9B,    0, 0xA3, 0x96, 0x81, 0x98, 0x95        /* 0x00F0 */
574 /* ----------------------------------------------------------------------- */
576 #define IBM861TOCHARTABEX_COUNT         75
577 static ImplUniCharTabData const aImplIBM861ToCharTabEx[IBM861TOCHARTABEX_COUNT] =
579   { 0x0192, 0x9F, 0 },
580   { 0x0393, 0xE2, 0 },
581   { 0x0398, 0xE9, 0 },
582   { 0x03A3, 0xE4, 0 },
583   { 0x03A6, 0xE8, 0 },
584   { 0x03A9, 0xEA, 0 },
585   { 0x03B1, 0xE0, 0 },
586   { 0x03B4, 0xEB, 0 },
587   { 0x03B5, 0xEE, 0 },
588   { 0x03C0, 0xE3, 0 },
589   { 0x03C3, 0xE5, 0 },
590   { 0x03C4, 0xE7, 0 },
591   { 0x03C6, 0xED, 0 },
592   { 0x207F, 0xFC, 0 },
593   { 0x20A7, 0x9E, 0 },
594   { 0x2219, 0xF9, 0 },
595   { 0x221A, 0xFB, 0 },
596   { 0x221E, 0xEC, 0 },
597   { 0x2229, 0xEF, 0 },
598   { 0x2248, 0xF7, 0 },
599   { 0x2261, 0xF0, 0 },
600   { 0x2264, 0xF3, 0 },
601   { 0x2265, 0xF2, 0 },
602   { 0x2310, 0xA9, 0 },
603   { 0x2320, 0xF4, 0 },
604   { 0x2321, 0xF5, 0 },
605   { 0x2500, 0xC4, 0 },
606   { 0x2502, 0xB3, 0 },
607   { 0x250C, 0xDA, 0 },
608   { 0x2510, 0xBF, 0 },
609   { 0x2514, 0xC0, 0 },
610   { 0x2518, 0xD9, 0 },
611   { 0x251C, 0xC3, 0 },
612   { 0x2524, 0xB4, 0 },
613   { 0x252C, 0xC2, 0 },
614   { 0x2534, 0xC1, 0 },
615   { 0x253C, 0xC5, 0 },
616   { 0x2550, 0xCD, 0 },
617   { 0x2551, 0xBA, 0 },
618   { 0x2552, 0xD5, 0 },
619   { 0x2553, 0xD6, 0 },
620   { 0x2554, 0xC9, 0 },
621   { 0x2555, 0xB8, 0 },
622   { 0x2556, 0xB7, 0 },
623   { 0x2557, 0xBB, 0 },
624   { 0x2558, 0xD4, 0 },
625   { 0x2559, 0xD3, 0 },
626   { 0x255A, 0xC8, 0 },
627   { 0x255B, 0xBE, 0 },
628   { 0x255C, 0xBD, 0 },
629   { 0x255D, 0xBC, 0 },
630   { 0x255E, 0xC6, 0 },
631   { 0x255F, 0xC7, 0 },
632   { 0x2560, 0xCC, 0 },
633   { 0x2561, 0xB5, 0 },
634   { 0x2562, 0xB6, 0 },
635   { 0x2563, 0xB9, 0 },
636   { 0x2564, 0xD1, 0 },
637   { 0x2565, 0xD2, 0 },
638   { 0x2566, 0xCB, 0 },
639   { 0x2567, 0xCF, 0 },
640   { 0x2568, 0xD0, 0 },
641   { 0x2569, 0xCA, 0 },
642   { 0x256A, 0xD8, 0 },
643   { 0x256B, 0xD7, 0 },
644   { 0x256C, 0xCE, 0 },
645   { 0x2580, 0xDF, 0 },
646   { 0x2584, 0xDC, 0 },
647   { 0x2588, 0xDB, 0 },
648   { 0x258C, 0xDD, 0 },
649   { 0x2590, 0xDE, 0 },
650   { 0x2591, 0xB0, 0 },
651   { 0x2592, 0xB1, 0 },
652   { 0x2593, 0xB2, 0 },
653   { 0x25A0, 0xFE, 0 }
656 /* ----------------------------------------------------------------------- */
658 static ImplByteConvertData const aImplIBM861ByteCvtData =
660     aImplIBM861ToUniTab,
661     NULL,
662     IBM861UNI_START, IBM861UNI_END,
663     NOTABUNI_START, NOTABUNI_END,
664     aImplIBM861ToCharTab,
665     NULL,
666     aImplIBM861ToCharTabEx,
667     IBM861CHAR_START, IBM861CHAR_END,
668     NOTABCHAR_START, NOTABCHAR_END,
669     IBM861TOCHARTABEX_COUNT
672 /* ----------------------------------------------------------------------- */
674 static ImplTextEncodingData const aImplIBM861TextEncodingData
675     = { { &aImplIBM861ByteCvtData,
676           ImplCharToUnicode,
677           ImplUnicodeToChar,
678           NULL,
679           NULL,
680           NULL,
681           NULL,
682           NULL,
683           NULL },
684         1,
685         1,
686         1,
687         0,
688         "iso8859-1",
689         "IBM861",
690         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
691     /* DOS/OS2, SCRIPT_LATIN, pc code page 861, mac encoding 37 */
693 /* ======================================================================= */
695 /* IBM-863 */
696 /* Dos Standard CharSet for Canada-France */
697 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
698 /* Convert-Tables: mappings/vendors/micsft/pc/cp863.txt from 04/24/96 Version 2.00 */
699 /* Last-Changes from us: */
701 /* ----------------------------------------------------------------------- */
703 #define IBM863UNI_START                 0x80
704 #define IBM863UNI_END                   0xFF
705 static sal_uInt16 const aImplIBM863ToUniTab[IBM863UNI_END - IBM863UNI_START + 1] =
707 /*       0       1       2       3       4       5       6       7 */
708 /*       8       9       A       B       C       D       E       F */
709     0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, /* 0x80 */
710     0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x2017, 0x00C0, 0x00A7, /* 0x80 */
711     0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, /* 0x90 */
712     0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, /* 0x90 */
713     0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00B8, 0x00B3, 0x00AF, /* 0xA0 */
714     0x00CE, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, /* 0xA0 */
715     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
716     0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
717     0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
718     0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
719     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
720     0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
721     0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
722     0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
723     0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
724     0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
727 /* ----------------------------------------------------------------------- */
729 #define IBM863CHAR_START                0x00A0
730 #define IBM863CHAR_END                  0x00FC
731 static sal_uChar const aImplIBM863ToCharTab[IBM863CHAR_END - IBM863CHAR_START + 1] =
733 /*     0     1     2     3     4     5     6     7 */
734 /*     8     9     A     B     C     D     E     F */
735     0xFF,    0, 0x9B, 0x9C, 0x98,    0, 0xA0, 0x8F, /* 0x00A0 */
736     0xA4,    0,    0, 0xAE, 0xAA,    0,    0, 0xA7, /* 0x00A0 */
737     0xF8, 0xF1, 0xFD, 0xA6, 0xA1, 0xE6, 0x86, 0xFA, /* 0x00B0 */
738     0xA5,    0,    0, 0xAF, 0xAC, 0xAB, 0xAD,    0, /* 0x00B0 */
739     0x8E,    0, 0x84,    0,    0,    0,    0, 0x80, /* 0x00C0 */
740     0x91, 0x90, 0x92, 0x94,    0,    0, 0xA8, 0x95, /* 0x00C0 */
741        0,    0,    0,    0, 0x99,    0,    0,    0, /* 0x00D0 */
742        0, 0x9D,    0, 0x9E, 0x9A,    0,    0, 0xE1, /* 0x00D0 */
743     0x85,    0, 0x83,    0,    0,    0,    0, 0x87, /* 0x00E0 */
744     0x8A, 0x82, 0x88, 0x89,    0,    0, 0x8C, 0x8B, /* 0x00E0 */
745        0,    0,    0, 0xA2, 0x93,    0,    0, 0xF6, /* 0x00F0 */
746        0, 0x97, 0xA3, 0x96, 0x81                    /* 0x00F0 */
749 /* ----------------------------------------------------------------------- */
751 #define IBM863TOCHARTABEX_COUNT         75
752 static ImplUniCharTabData const aImplIBM863ToCharTabEx[IBM863TOCHARTABEX_COUNT] =
754   { 0x0192, 0x9F, 0 },
755   { 0x0393, 0xE2, 0 },
756   { 0x0398, 0xE9, 0 },
757   { 0x03A3, 0xE4, 0 },
758   { 0x03A6, 0xE8, 0 },
759   { 0x03A9, 0xEA, 0 },
760   { 0x03B1, 0xE0, 0 },
761   { 0x03B4, 0xEB, 0 },
762   { 0x03B5, 0xEE, 0 },
763   { 0x03C0, 0xE3, 0 },
764   { 0x03C3, 0xE5, 0 },
765   { 0x03C4, 0xE7, 0 },
766   { 0x03C6, 0xED, 0 },
767   { 0x2017, 0x8D, 0 },
768   { 0x207F, 0xFC, 0 },
769   { 0x2219, 0xF9, 0 },
770   { 0x221A, 0xFB, 0 },
771   { 0x221E, 0xEC, 0 },
772   { 0x2229, 0xEF, 0 },
773   { 0x2248, 0xF7, 0 },
774   { 0x2261, 0xF0, 0 },
775   { 0x2264, 0xF3, 0 },
776   { 0x2265, 0xF2, 0 },
777   { 0x2310, 0xA9, 0 },
778   { 0x2320, 0xF4, 0 },
779   { 0x2321, 0xF5, 0 },
780   { 0x2500, 0xC4, 0 },
781   { 0x2502, 0xB3, 0 },
782   { 0x250C, 0xDA, 0 },
783   { 0x2510, 0xBF, 0 },
784   { 0x2514, 0xC0, 0 },
785   { 0x2518, 0xD9, 0 },
786   { 0x251C, 0xC3, 0 },
787   { 0x2524, 0xB4, 0 },
788   { 0x252C, 0xC2, 0 },
789   { 0x2534, 0xC1, 0 },
790   { 0x253C, 0xC5, 0 },
791   { 0x2550, 0xCD, 0 },
792   { 0x2551, 0xBA, 0 },
793   { 0x2552, 0xD5, 0 },
794   { 0x2553, 0xD6, 0 },
795   { 0x2554, 0xC9, 0 },
796   { 0x2555, 0xB8, 0 },
797   { 0x2556, 0xB7, 0 },
798   { 0x2557, 0xBB, 0 },
799   { 0x2558, 0xD4, 0 },
800   { 0x2559, 0xD3, 0 },
801   { 0x255A, 0xC8, 0 },
802   { 0x255B, 0xBE, 0 },
803   { 0x255C, 0xBD, 0 },
804   { 0x255D, 0xBC, 0 },
805   { 0x255E, 0xC6, 0 },
806   { 0x255F, 0xC7, 0 },
807   { 0x2560, 0xCC, 0 },
808   { 0x2561, 0xB5, 0 },
809   { 0x2562, 0xB6, 0 },
810   { 0x2563, 0xB9, 0 },
811   { 0x2564, 0xD1, 0 },
812   { 0x2565, 0xD2, 0 },
813   { 0x2566, 0xCB, 0 },
814   { 0x2567, 0xCF, 0 },
815   { 0x2568, 0xD0, 0 },
816   { 0x2569, 0xCA, 0 },
817   { 0x256A, 0xD8, 0 },
818   { 0x256B, 0xD7, 0 },
819   { 0x256C, 0xCE, 0 },
820   { 0x2580, 0xDF, 0 },
821   { 0x2584, 0xDC, 0 },
822   { 0x2588, 0xDB, 0 },
823   { 0x258C, 0xDD, 0 },
824   { 0x2590, 0xDE, 0 },
825   { 0x2591, 0xB0, 0 },
826   { 0x2592, 0xB1, 0 },
827   { 0x2593, 0xB2, 0 },
828   { 0x25A0, 0xFE, 0 }
831 /* ----------------------------------------------------------------------- */
833 static ImplByteConvertData const aImplIBM863ByteCvtData =
835     aImplIBM863ToUniTab,
836     NULL,
837     IBM863UNI_START, IBM863UNI_END,
838     NOTABUNI_START, NOTABUNI_END,
839     aImplIBM863ToCharTab,
840     NULL,
841     aImplIBM863ToCharTabEx,
842     IBM863CHAR_START, IBM863CHAR_END,
843     NOTABCHAR_START, NOTABCHAR_END,
844     IBM863TOCHARTABEX_COUNT
847 /* ----------------------------------------------------------------------- */
849 static ImplTextEncodingData const aImplIBM863TextEncodingData
850     = { { &aImplIBM863ByteCvtData,
851           ImplCharToUnicode,
852           ImplUnicodeToChar,
853           NULL,
854           NULL,
855           NULL,
856           NULL,
857           NULL,
858           NULL },
859         1,
860         1,
861         1,
862         0,
863         "iso8859-1",
864         "IBM863",
865         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
866     /* DOS/OS2, SCRIPT_LATIN, pc code page 863 */
868 /* ======================================================================= */
870 /* IBM-865 */
871 /* Dos Standard CharSet for Nordic */
872 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
873 /* Convert-Tables: mappings/vendors/micsft/pc/cp865.txt from 04/24/96 Version 2.00 */
874 /* Last-Changes from us: */
876 /* ----------------------------------------------------------------------- */
878 #define IBM865UNI_START                 0x80
879 #define IBM865UNI_END                   0xFF
880 static sal_uInt16 const aImplIBM865ToUniTab[IBM865UNI_END - IBM865UNI_START + 1] =
882 /*       0       1       2       3       4       5       6       7 */
883 /*       8       9       A       B       C       D       E       F */
884     0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
885     0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, /* 0x80 */
886     0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
887     0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, /* 0x90 */
888     0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, /* 0xA0 */
889     0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, /* 0xA0 */
890     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
891     0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
892     0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
893     0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
894     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
895     0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
896     0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
897     0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
898     0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
899     0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
902 /* ----------------------------------------------------------------------- */
904 #define IBM865CHAR_START                0x00A0
905 #define IBM865CHAR_END                  0x00FF
906 static sal_uChar const aImplIBM865ToCharTab[IBM865CHAR_END - IBM865CHAR_START + 1] =
908 /*     0     1     2     3     4     5     6     7 */
909 /*     8     9     A     B     C     D     E     F */
910     0xFF, 0xAD,    0, 0x9C, 0xAF,    0,    0,    0, /* 0x00A0 */
911        0,    0, 0xA6, 0xAE, 0xAA,    0,    0,    0, /* 0x00A0 */
912     0xF8, 0xF1, 0xFD,    0,    0, 0xE6,    0, 0xFA, /* 0x00B0 */
913        0,    0, 0xA7,    0, 0xAC, 0xAB,    0, 0xA8, /* 0x00B0 */
914        0,    0,    0,    0, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
915        0, 0x90,    0,    0,    0,    0,    0,    0, /* 0x00C0 */
916        0, 0xA5,    0,    0,    0,    0, 0x99,    0, /* 0x00D0 */
917     0x9D,    0,    0,    0, 0x9A,    0,    0, 0xE1, /* 0x00D0 */
918     0x85, 0xA0, 0x83,    0, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
919     0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
920        0, 0xA4, 0x95, 0xA2, 0x93,    0, 0x94, 0xF6, /* 0x00F0 */
921     0x9B, 0x97, 0xA3, 0x96, 0x81,    0,    0, 0x98  /* 0x00F0 */
924 /* ----------------------------------------------------------------------- */
926 #define IBM865TOCHARTABEX_COUNT         75
927 static ImplUniCharTabData const aImplIBM865ToCharTabEx[IBM865TOCHARTABEX_COUNT] =
929   { 0x0192, 0x9F, 0 },
930   { 0x0393, 0xE2, 0 },
931   { 0x0398, 0xE9, 0 },
932   { 0x03A3, 0xE4, 0 },
933   { 0x03A6, 0xE8, 0 },
934   { 0x03A9, 0xEA, 0 },
935   { 0x03B1, 0xE0, 0 },
936   { 0x03B4, 0xEB, 0 },
937   { 0x03B5, 0xEE, 0 },
938   { 0x03C0, 0xE3, 0 },
939   { 0x03C3, 0xE5, 0 },
940   { 0x03C4, 0xE7, 0 },
941   { 0x03C6, 0xED, 0 },
942   { 0x207F, 0xFC, 0 },
943   { 0x20A7, 0x9E, 0 },
944   { 0x2219, 0xF9, 0 },
945   { 0x221A, 0xFB, 0 },
946   { 0x221E, 0xEC, 0 },
947   { 0x2229, 0xEF, 0 },
948   { 0x2248, 0xF7, 0 },
949   { 0x2261, 0xF0, 0 },
950   { 0x2264, 0xF3, 0 },
951   { 0x2265, 0xF2, 0 },
952   { 0x2310, 0xA9, 0 },
953   { 0x2320, 0xF4, 0 },
954   { 0x2321, 0xF5, 0 },
955   { 0x2500, 0xC4, 0 },
956   { 0x2502, 0xB3, 0 },
957   { 0x250C, 0xDA, 0 },
958   { 0x2510, 0xBF, 0 },
959   { 0x2514, 0xC0, 0 },
960   { 0x2518, 0xD9, 0 },
961   { 0x251C, 0xC3, 0 },
962   { 0x2524, 0xB4, 0 },
963   { 0x252C, 0xC2, 0 },
964   { 0x2534, 0xC1, 0 },
965   { 0x253C, 0xC5, 0 },
966   { 0x2550, 0xCD, 0 },
967   { 0x2551, 0xBA, 0 },
968   { 0x2552, 0xD5, 0 },
969   { 0x2553, 0xD6, 0 },
970   { 0x2554, 0xC9, 0 },
971   { 0x2555, 0xB8, 0 },
972   { 0x2556, 0xB7, 0 },
973   { 0x2557, 0xBB, 0 },
974   { 0x2558, 0xD4, 0 },
975   { 0x2559, 0xD3, 0 },
976   { 0x255A, 0xC8, 0 },
977   { 0x255B, 0xBE, 0 },
978   { 0x255C, 0xBD, 0 },
979   { 0x255D, 0xBC, 0 },
980   { 0x255E, 0xC6, 0 },
981   { 0x255F, 0xC7, 0 },
982   { 0x2560, 0xCC, 0 },
983   { 0x2561, 0xB5, 0 },
984   { 0x2562, 0xB6, 0 },
985   { 0x2563, 0xB9, 0 },
986   { 0x2564, 0xD1, 0 },
987   { 0x2565, 0xD2, 0 },
988   { 0x2566, 0xCB, 0 },
989   { 0x2567, 0xCF, 0 },
990   { 0x2568, 0xD0, 0 },
991   { 0x2569, 0xCA, 0 },
992   { 0x256A, 0xD8, 0 },
993   { 0x256B, 0xD7, 0 },
994   { 0x256C, 0xCE, 0 },
995   { 0x2580, 0xDF, 0 },
996   { 0x2584, 0xDC, 0 },
997   { 0x2588, 0xDB, 0 },
998   { 0x258C, 0xDD, 0 },
999   { 0x2590, 0xDE, 0 },
1000   { 0x2591, 0xB0, 0 },
1001   { 0x2592, 0xB1, 0 },
1002   { 0x2593, 0xB2, 0 },
1003   { 0x25A0, 0xFE, 0 }
1006 /* ----------------------------------------------------------------------- */
1008 static ImplByteConvertData const aImplIBM865ByteCvtData =
1010     aImplIBM865ToUniTab,
1011     NULL,
1012     IBM865UNI_START, IBM865UNI_END,
1013     NOTABUNI_START, NOTABUNI_END,
1014     aImplIBM865ToCharTab,
1015     NULL,
1016     aImplIBM865ToCharTabEx,
1017     IBM865CHAR_START, IBM865CHAR_END,
1018     NOTABCHAR_START, NOTABCHAR_END,
1019     IBM865TOCHARTABEX_COUNT
1022 /* ----------------------------------------------------------------------- */
1024 static ImplTextEncodingData const aImplIBM865TextEncodingData
1025     = { { &aImplIBM865ByteCvtData,
1026           ImplCharToUnicode,
1027           ImplUnicodeToChar,
1028           NULL,
1029           NULL,
1030           NULL,
1031           NULL,
1032           NULL,
1033           NULL },
1034         1,
1035         1,
1036         1,
1037         0,
1038         "iso8859-1",
1039         "IBM865",
1040         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1041     /* DOS/OS2, SCRIPT_LATIN, pc code page 865 */
1043 /* ======================================================================= */
1045 /* MS-1252 */
1046 /* Windows Standard CharSet (ANSI) for Western Script */
1047 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
1048 /* Convert-Tables: mappings/vendors/micsft/windows/cp1252.txt from 04/15/98 Version 2.01 */
1049 /* Last-Changes from us: */
1051 /* ----------------------------------------------------------------------- */
1053 #define MS1252UNI_START                 0x80
1054 #define MS1252UNI_END                   0xFF
1055 static sal_uInt16 const aImplMS1252ToUniTab[MS1252UNI_END - MS1252UNI_START + 1] =
1057 /*       0       1       2       3       4       5       6       7 */
1058 /*       8       9       A       B       C       D       E       F */
1059     0x20AC,      0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
1060     0x02C6, 0x2030, 0x0160, 0x2039, 0x0152,      0, 0x017D,      0, /* 0x80 */
1061          0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
1062     0x02DC, 0x2122, 0x0161, 0x203A, 0x0153,      0, 0x017E, 0x0178, /* 0x90 */
1063     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
1064     0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
1065     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
1066     0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
1067     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
1068     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
1069     0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
1070     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
1071     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
1072     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
1073     0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
1074     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF  /* 0xF0 */
1077 /* ----------------------------------------------------------------------- */
1079 #define MS1252TOCHARTABEX_COUNT         27
1080 static ImplUniCharTabData const aImplMS1252ToCharTabEx[MS1252TOCHARTABEX_COUNT] =
1082   { 0x0152, 0x8C, 0 },
1083   { 0x0153, 0x9C, 0 },
1084   { 0x0160, 0x8A, 0 },
1085   { 0x0161, 0x9A, 0 },
1086   { 0x0178, 0x9F, 0 },
1087   { 0x017D, 0x8E, 0 },
1088   { 0x017E, 0x9E, 0 },
1089   { 0x0192, 0x83, 0 },
1090   { 0x02C6, 0x88, 0 },
1091   { 0x02DC, 0x98, 0 },
1092   { 0x2013, 0x96, 0 },
1093   { 0x2014, 0x97, 0 },
1094   { 0x2018, 0x91, 0 },
1095   { 0x2019, 0x92, 0 },
1096   { 0x201A, 0x82, 0 },
1097   { 0x201C, 0x93, 0 },
1098   { 0x201D, 0x94, 0 },
1099   { 0x201E, 0x84, 0 },
1100   { 0x2020, 0x86, 0 },
1101   { 0x2021, 0x87, 0 },
1102   { 0x2022, 0x95, 0 },
1103   { 0x2026, 0x85, 0 },
1104   { 0x2030, 0x89, 0 },
1105   { 0x2039, 0x8B, 0 },
1106   { 0x203A, 0x9B, 0 },
1107   { 0x20AC, 0x80, 0 },
1108   { 0x2122, 0x99, 0 },
1111 /* ----------------------------------------------------------------------- */
1113 static ImplByteConvertData const aImplMS1252ByteCvtData =
1115     aImplMS1252ToUniTab,
1116     NULL,
1117     MS1252UNI_START, MS1252UNI_END,
1118     NOTABUNI_START, NOTABUNI_END,
1119     aImplA0FFSameToCharTab,
1120     NULL,
1121     aImplMS1252ToCharTabEx,
1122     SAMEA0FFCHAR_START, SAMEA0FFCHAR_END,
1123     NOTABCHAR_START, NOTABCHAR_END,
1124     MS1252TOCHARTABEX_COUNT
1127 /* ----------------------------------------------------------------------- */
1129 static ImplTextEncodingData const aImplMS1252TextEncodingData
1130     = { { &aImplMS1252ByteCvtData,
1131           ImplCharToUnicode,
1132           ImplUnicodeToChar,
1133           NULL,
1134           NULL,
1135           NULL,
1136           NULL,
1137           NULL,
1138           NULL },
1139         1,
1140         1,
1141         1,
1142         0,
1143         "iso8859-1",
1144         "windows-1252",
1145         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1146     /* WIN, SCRIPT_LATIN, pc code page 850 */
1148 /* ======================================================================= */
1150 /* ISO-8859-1 */
1151 /* Unix Standard CharSet (Latin1) for Western Script */
1152 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
1153 /* Convert-Tables: mappings/iso8859/8859-1.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
1154 /* Last-Changes from us: */
1156 #define ISO88591UNI_START               0xA0
1157 #define ISO88591UNI_END                 0xFF
1158 static sal_uInt16 const aImplISO88591ToUniTab[ISO88591UNI_END - ISO88591UNI_START + 1] =
1160 /*       0       1       2       3       4       5       6       7 */
1161 /*       8       9       A       B       C       D       E       F */
1162     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
1163     0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
1164     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
1165     0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
1166     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
1167     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
1168     0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
1169     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
1170     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
1171     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
1172     0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
1173     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF  /* 0xF0 */
1176 /* ----------------------------------------------------------------------- */
1178 static ImplByteConvertData const aImplISO88591ByteCvtData =
1180     aImplISO88591ToUniTab,
1181     aImpl8090SameToUniTab,
1182     ISO88591UNI_START, ISO88591UNI_END,
1183     SAME8090UNI_START, SAME8090UNI_END,
1184     aImplA0FFSameToCharTab,
1185     aImpl8090SameToCharTab,
1186     NULL,
1187     SAMEA0FFCHAR_START, SAMEA0FFCHAR_END,
1188     SAME8090CHAR_START, SAME8090CHAR_END,
1189     0
1192 /* ----------------------------------------------------------------------- */
1194 static ImplTextEncodingData const aImplISO88591TextEncodingData
1195     = { { &aImplISO88591ByteCvtData,
1196           ImplCharToUnicode,
1197           ImplUnicodeToChar,
1198           NULL,
1199           NULL,
1200           NULL,
1201           NULL,
1202           NULL,
1203           NULL },
1204         1,
1205         1,
1206         1,
1207         0,
1208         "iso8859-1",
1209         "iso-8859-1",
1210         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1211     /* SCRIPT_LATIN, pc code page 850 */
1213 /* ======================================================================= */
1215 /* ISO-8859-14 */
1216 /* ungefaehr wie Latin1 */
1217 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
1218 /* Convert-Tables: mappings/iso8859/8859-14.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
1219 /* Last-Changes from us: */
1221 #define ISO885914UNI_START              0xA0
1222 #define ISO885914UNI_END                0xFF
1223 static sal_uInt16 const aImplISO885914ToUniTab[ISO885914UNI_END - ISO885914UNI_START + 1] =
1225 /*       0       1       2       3       4       5       6       7 */
1226 /*       8       9       A       B       C       D       E       F */
1227     0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7, /* 0xA0 */
1228     0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178, /* 0xA0 */
1229     0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56, /* 0xB0 */
1230     0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61, /* 0xB0 */
1231     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
1232     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
1233     0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A, /* 0xD0 */
1234     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF, /* 0xD0 */
1235     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
1236     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
1237     0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B, /* 0xF0 */
1238     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF  /* 0xF0 */
1241 /* ----------------------------------------------------------------------- */
1243 #define ISO885914CHAR_START             0x00C0
1244 #define ISO885914CHAR_END               0x00FF
1245 static sal_uChar const aImplISO885914ToCharTab[ISO885914CHAR_END - ISO885914CHAR_START + 1] =
1247 /*     0     1     2     3     4     5     6     7 */
1248 /*     8     9     A     B     C     D     E     F */
1249     0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
1250     0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
1251        0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,    0, /* 0x00D0 */
1252     0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD,    0, 0xDF, /* 0x00D0 */
1253     0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
1254     0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
1255        0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6,    0, /* 0x00F0 */
1256     0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD,    0, 0xFF  /* 0x00F0 */
1259 /* ----------------------------------------------------------------------- */
1261 #define ISO885914TOCHARTABEX_COUNT      38
1262 static ImplUniCharTabData const aImplISO885914ToCharTabEx[ISO885914TOCHARTABEX_COUNT] =
1264   { 0x00A0, 0xA0, 0 },
1265   { 0x00A3, 0xA3, 0 },
1266   { 0x00A7, 0xA7, 0 },
1267   { 0x00A9, 0xA9, 0 },
1268   { 0x00AD, 0xAD, 0 },
1269   { 0x00AE, 0xAE, 0 },
1270   { 0x00B6, 0xB6, 0 },
1271   { 0x010A, 0xA4, 0 },
1272   { 0x010B, 0xA5, 0 },
1273   { 0x0120, 0xB2, 0 },
1274   { 0x0121, 0xB3, 0 },
1275   { 0x0174, 0xD0, 0 },
1276   { 0x0175, 0xF0, 0 },
1277   { 0x0176, 0xDE, 0 },
1278   { 0x0177, 0xFE, 0 },
1279   { 0x0178, 0xAF, 0 },
1280   { 0x1E02, 0xA1, 0 },
1281   { 0x1E03, 0xA2, 0 },
1282   { 0x1E0A, 0xA6, 0 },
1283   { 0x1E0B, 0xAB, 0 },
1284   { 0x1E1E, 0xB0, 0 },
1285   { 0x1E1F, 0xB1, 0 },
1286   { 0x1E40, 0xB4, 0 },
1287   { 0x1E41, 0xB5, 0 },
1288   { 0x1E56, 0xB7, 0 },
1289   { 0x1E57, 0xB9, 0 },
1290   { 0x1E60, 0xBB, 0 },
1291   { 0x1E61, 0xBF, 0 },
1292   { 0x1E6A, 0xD7, 0 },
1293   { 0x1E6B, 0xF7, 0 },
1294   { 0x1E80, 0xA8, 0 },
1295   { 0x1E81, 0xB8, 0 },
1296   { 0x1E82, 0xAA, 0 },
1297   { 0x1E83, 0xBA, 0 },
1298   { 0x1E84, 0xBD, 0 },
1299   { 0x1E85, 0xBE, 0 },
1300   { 0x1EF2, 0xAC, 0 },
1301   { 0x1EF3, 0xBC, 0 }
1304 /* ----------------------------------------------------------------------- */
1306 static ImplByteConvertData const aImplISO885914ByteCvtData =
1308     aImplISO885914ToUniTab,
1309     aImpl8090SameToUniTab,
1310     ISO885914UNI_START, ISO885914UNI_END,
1311     SAME8090UNI_START, SAME8090UNI_END,
1312     aImplISO885914ToCharTab,
1313     aImpl8090SameToCharTab,
1314     aImplISO885914ToCharTabEx,
1315     ISO885914CHAR_START, ISO885914CHAR_END,
1316     SAME8090CHAR_START, SAME8090CHAR_END,
1317     ISO885914TOCHARTABEX_COUNT
1320 /* ----------------------------------------------------------------------- */
1322 static ImplTextEncodingData const aImplISO885914TextEncodingData
1323     = { { &aImplISO885914ByteCvtData,
1324           ImplCharToUnicode,
1325           ImplUnicodeToChar,
1326           NULL,
1327           NULL,
1328           NULL,
1329           NULL,
1330           NULL,
1331           NULL },
1332         1,
1333         1,
1334         1,
1335         0,
1336         "iso8859-14",
1337         "iso-8859-14",
1338         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1339     /* SCRIPT_LATIN, pc code page 850 */
1341 /* ======================================================================= */
1343 /* ISO-8859-15 */
1344 /* ungefaehr wie Latin1, jedoch mit Euro (ehemaliges CURRENCY-Symbol an A4) */
1345 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */
1346 /* Convert-Tables: mappings/iso8859/8859-15.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
1347 /* Last-Changes from us: */
1349 #define ISO885915UNI_START              0xA0
1350 #define ISO885915UNI_END                0xFF
1351 static sal_uInt16 const aImplISO885915ToUniTab[ISO885915UNI_END - ISO885915UNI_START + 1] =
1353 /*       0       1       2       3       4       5       6       7 */
1354 /*       8       9       A       B       C       D       E       F */
1355     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, /* 0xA0 */
1356     0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
1357     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
1358     0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, /* 0xB0 */
1359     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
1360     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
1361     0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
1362     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
1363     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
1364     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
1365     0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
1366     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF  /* 0xF0 */
1369 /* ----------------------------------------------------------------------- */
1371 #define ISO885915CHAR_START             0x00A0
1372 #define ISO885915CHAR_END               0x00FF
1373 static sal_uChar const aImplISO885915ToCharTab[ISO885915CHAR_END - ISO885915CHAR_START + 1] =
1375 /*     0     1     2     3     4     5     6     7 */
1376 /*     8     9     A     B     C     D     E     F */
1377     0xA0, 0xA1, 0xA2, 0xA3,    0, 0xA5,    0, 0xA7, /* 0x00A0 */
1378        0, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
1379     0xB0, 0xB1, 0xB2, 0xB3,    0, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
1380        0, 0xB9, 0xBA, 0xBB,    0,    0,    0, 0xBF, /* 0x00B0 */
1381     0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
1382     0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
1383     0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
1384     0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x00D0 */
1385     0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
1386     0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
1387     0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
1388     0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF  /* 0x00F0 */
1391 /* ----------------------------------------------------------------------- */
1393 #define ISO885915TOCHARTABEX_COUNT      8
1394 static ImplUniCharTabData const aImplISO885915ToCharTabEx[ISO885915TOCHARTABEX_COUNT] =
1396   { 0x0152, 0xBC, 0 },
1397   { 0x0153, 0xBD, 0 },
1398   { 0x0160, 0xA6, 0 },
1399   { 0x0161, 0xA8, 0 },
1400   { 0x0178, 0xBE, 0 },
1401   { 0x017D, 0xB4, 0 },
1402   { 0x017E, 0xB8, 0 },
1403   { 0x20AC, 0xA4, 0 }
1406 /* ----------------------------------------------------------------------- */
1408 static ImplByteConvertData const aImplISO885915ByteCvtData =
1410     aImplISO885915ToUniTab,
1411     aImpl8090SameToUniTab,
1412     ISO885915UNI_START, ISO885915UNI_END,
1413     SAME8090UNI_START, SAME8090UNI_END,
1414     aImplISO885915ToCharTab,
1415     aImpl8090SameToCharTab,
1416     aImplISO885915ToCharTabEx,
1417     ISO885915CHAR_START, ISO885915CHAR_END,
1418     SAME8090CHAR_START, SAME8090CHAR_END,
1419     ISO885915TOCHARTABEX_COUNT
1422 /* ----------------------------------------------------------------------- */
1424 static ImplTextEncodingData const aImplISO885915TextEncodingData
1425     = { { &aImplISO885915ByteCvtData,
1426           ImplCharToUnicode,
1427           ImplUnicodeToChar,
1428           NULL,
1429           NULL,
1430           NULL,
1431           NULL,
1432           NULL,
1433           NULL },
1434         1,
1435         1,
1436         1,
1437         0,
1438         "iso8859-15",
1439         "iso-8859-15",
1440         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1441     /* SCRIPT_LATIN, pc code page 850 */
1443 /* ======================================================================= */
1445 /* APPLE-Iceland */
1446 /* Apple CharSet for Iceland */
1447 /* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
1448 /* die wir aber nicht beruecksichtigen */
1449 /* Convert-Tables: mappings/vendors/apple/iceland.txt from 02/05/98 */
1450 /* Last-Changes from us: */
1452 #define APPLEICELANDUNI_START           0x80
1453 #define APPLEICELANDUNI_END             0xFF
1454 static sal_uInt16 const aImplAPPLEICELANDToUniTab[APPLEICELANDUNI_END - APPLEICELANDUNI_START + 1] =
1456 /*       0       1       2       3       4       5       6       7 */
1457 /*       8       9       A       B       C       D       E       F */
1458     0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
1459     0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
1460     0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
1461     0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
1462     0x00DD, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
1463     0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, /* 0xA0 */
1464     0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
1465     0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, /* 0xB0 */
1466     0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
1467     0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
1468     0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
1469     0x00FF, 0x0178, 0x2044, 0x00A4, 0x00D0, 0x00F0, 0x00DE, 0x00FE, /* 0xD0 */
1470     0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
1471     0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
1472     0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
1473     0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7  /* 0xF0 */
1476 /* ----------------------------------------------------------------------- */
1478 #define APPLEICELANDCHAR_START          0x00A0
1479 #define APPLEICELANDCHAR_END            0x00FF
1480 static sal_uChar const aImplAPPLEICELANDToCharTab[APPLEICELANDCHAR_END - APPLEICELANDCHAR_START + 1] =
1482 /*     0     1     2     3     4     5     6     7 */
1483 /*     8     9     A     B     C     D     E     F */
1484     0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0xB4,    0, 0xA4, /* 0x00A0 */
1485     0xAC, 0xA9, 0xBB, 0xC7, 0xC2,    0, 0xA8, 0xF8, /* 0x00A0 */
1486     0xA1, 0xB1,    0,    0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
1487     0xFC,    0, 0xBC, 0xC8,    0,    0,    0, 0xC0, /* 0x00B0 */
1488     0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, /* 0x00C0 */
1489     0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
1490     0xDC, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85,    0, /* 0x00D0 */
1491     0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0xA0, 0xDE, 0xA7, /* 0x00D0 */
1492     0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, /* 0x00E0 */
1493     0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
1494     0xDD, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
1495     0xBF, 0x9D, 0x9C, 0x9E, 0x9F, 0xE0, 0xDF, 0xD8  /* 0x00F0 */
1498 /* ----------------------------------------------------------------------- */
1500 #define APPLEICELANDTOCHARTABEX_COUNT   41
1501 static ImplUniCharTabData const aImplAPPLEICELANDToCharTabEx[APPLEICELANDTOCHARTABEX_COUNT] =
1503   { 0x0131, 0xF5, 0 },
1504   { 0x0152, 0xCE, 0 },
1505   { 0x0153, 0xCF, 0 },
1506   { 0x0178, 0xD9, 0 },
1507   { 0x0192, 0xC4, 0 },
1508   { 0x02C6, 0xF6, 0 },
1509   { 0x02C7, 0xFF, 0 },
1510   { 0x02D8, 0xF9, 0 },
1511   { 0x02D9, 0xFA, 0 },
1512   { 0x02DA, 0xFB, 0 },
1513   { 0x02DB, 0xFE, 0 },
1514   { 0x02DC, 0xF7, 0 },
1515   { 0x02DD, 0xFD, 0 },
1516   { 0x03A9, 0xBD, 0 },
1517   { 0x03C0, 0xB9, 0 },
1518   { 0x2013, 0xD0, 0 },
1519   { 0x2014, 0xD1, 0 },
1520   { 0x2018, 0xD4, 0 },
1521   { 0x2019, 0xD5, 0 },
1522   { 0x201A, 0xE2, 0 },
1523   { 0x201C, 0xD2, 0 },
1524   { 0x201D, 0xD3, 0 },
1525   { 0x201E, 0xE3, 0 },
1526   { 0x2022, 0xA5, 0 },
1527   { 0x2026, 0xC9, 0 },
1528   { 0x2030, 0xE4, 0 },
1529   { 0x2044, 0xDA, 0 },
1530   { 0x2122, 0xAA, 0 },
1531   { 0x2202, 0xB6, 0 },
1532   { 0x2206, 0xC6, 0 },
1533   { 0x220F, 0xB8, 0 },
1534   { 0x2211, 0xB7, 0 },
1535   { 0x221A, 0xC3, 0 },
1536   { 0x221E, 0xB0, 0 },
1537   { 0x222B, 0xBA, 0 },
1538   { 0x2248, 0xC5, 0 },
1539   { 0x2260, 0xAD, 0 },
1540   { 0x2264, 0xB2, 0 },
1541   { 0x2265, 0xB3, 0 },
1542   { 0x25CA, 0xD7, 0 },
1543   { 0xF8FF, 0xF0, 0 }
1546 /* ----------------------------------------------------------------------- */
1548 static ImplByteConvertData const aImplAPPLEICELANDByteCvtData =
1550     aImplAPPLEICELANDToUniTab,
1551     NULL,
1552     APPLEICELANDUNI_START, APPLEICELANDUNI_END,
1553     NOTABUNI_START, NOTABUNI_END,
1554     aImplAPPLEICELANDToCharTab,
1555     NULL,
1556     aImplAPPLEICELANDToCharTabEx,
1557     APPLEICELANDCHAR_START, APPLEICELANDCHAR_END,
1558     NOTABCHAR_START, NOTABCHAR_END,
1559     APPLEICELANDTOCHARTABEX_COUNT
1562 /* ----------------------------------------------------------------------- */
1564 static ImplTextEncodingData const aImplAPPLEICELANDTextEncodingData
1565     = { { &aImplAPPLEICELANDByteCvtData,
1566           ImplCharToUnicode,
1567           ImplUnicodeToChar,
1568           NULL,
1569           NULL,
1570           NULL,
1571           NULL,
1572           NULL,
1573           NULL },
1574         1,
1575         1,
1576         1,
1577         0,
1578         "iso8859-1",
1579         "iso-8859-1",
1580         RTL_TEXTENCODING_INFO_ASCII };
1581     /* MAC, SCRIPT_LATIN, pc code page 861, mac encoding 37 */
1583 /* ======================================================================= */
1585 /* APPLE-Roman */
1586 /* Standard Apple CharSet for Western */
1587 /* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */
1588 /* die wir aber nicht beruecksichtigen */
1589 /* Convert-Tables: mappings/vendors/apple/roman.txt from 08/18/98 */
1590 /* Last-Changes from us: */
1592 #define APPLEROMANUNI_START             0x80
1593 #define APPLEROMANUNI_END               0xFF
1594 static sal_uInt16 const aImplAPPLEROMANToUniTab[APPLEROMANUNI_END - APPLEROMANUNI_START + 1] =
1596 /*       0       1       2       3       4       5       6       7 */
1597 /*       8       9       A       B       C       D       E       F */
1598     0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
1599     0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
1600     0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
1601     0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
1602     0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
1603     0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, /* 0xA0 */
1604     0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
1605     0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, /* 0xB0 */
1606     0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
1607     0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
1608     0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
1609     0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0xFB01, 0xFB02, /* 0xD0 */
1610     0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
1611     0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
1612     0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
1613     0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7  /* 0xF0 */
1616 /* ----------------------------------------------------------------------- */
1618 #define APPLEROMANCHAR_START            0x00A0
1619 #define APPLEROMANCHAR_END              0x00FF
1620 static sal_uChar const aImplAPPLEROMANToCharTab[APPLEROMANCHAR_END - APPLEROMANCHAR_START + 1] =
1622 /*     0     1     2     3     4     5     6     7 */
1623 /*     8     9     A     B     C     D     E     F */
1624     0xCA, 0xC1, 0xA2, 0xA3,    0, 0xB4,    0, 0xA4, /* 0x00A0 */
1625     0xAC, 0xA9, 0xBB, 0xC7, 0xC2,    0, 0xA8, 0xF8, /* 0x00A0 */
1626     0xA1, 0xB1,    0,    0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
1627     0xFC,    0, 0xBC, 0xC8,    0,    0,    0, 0xC0, /* 0x00B0 */
1628     0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, /* 0x00C0 */
1629     0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
1630        0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85,    0, /* 0x00D0 */
1631     0xAF, 0xF4, 0xF2, 0xF3, 0x86,    0,    0, 0xA7, /* 0x00D0 */
1632     0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, /* 0x00E0 */
1633     0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
1634        0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
1635     0xBF, 0x9D, 0x9C, 0x9E, 0x9F,    0,    0, 0xD8  /* 0x00F0 */
1638 /* ----------------------------------------------------------------------- */
1640 #define APPLEROMANTOCHARTABEX_COUNT     48
1641 static ImplUniCharTabData const aImplAPPLEROMANToCharTabEx[APPLEROMANTOCHARTABEX_COUNT] =
1643   { 0x0131, 0xF5, 0 },
1644   { 0x0152, 0xCE, 0 },
1645   { 0x0153, 0xCF, 0 },
1646   { 0x0178, 0xD9, 0 },
1647   { 0x0192, 0xC4, 0 },
1648   { 0x02C6, 0xF6, 0 },
1649   { 0x02C7, 0xFF, 0 },
1650   { 0x02D8, 0xF9, 0 },
1651   { 0x02D9, 0xFA, 0 },
1652   { 0x02DA, 0xFB, 0 },
1653   { 0x02DB, 0xFE, 0 },
1654   { 0x02DC, 0xF7, 0 },
1655   { 0x02DD, 0xFD, 0 },
1656   { 0x03A9, 0xBD, 0 },
1657   { 0x03C0, 0xB9, 0 },
1658   { 0x2013, 0xD0, 0 },
1659   { 0x2014, 0xD1, 0 },
1660   { 0x2018, 0xD4, 0 },
1661   { 0x2019, 0xD5, 0 },
1662   { 0x201A, 0xE2, 0 },
1663   { 0x201C, 0xD2, 0 },
1664   { 0x201D, 0xD3, 0 },
1665   { 0x201E, 0xE3, 0 },
1666   { 0x2020, 0xA0, 0 },
1667   { 0x2021, 0xE0, 0 },
1668   { 0x2022, 0xA5, 0 },
1669   { 0x2026, 0xC9, 0 },
1670   { 0x2030, 0xE4, 0 },
1671   { 0x2039, 0xDC, 0 },
1672   { 0x203A, 0xDD, 0 },
1673   { 0x2044, 0xDA, 0 },
1674   { 0x20AC, 0xDB, 0 },
1675   { 0x2122, 0xAA, 0 },
1676   { 0x2202, 0xB6, 0 },
1677   { 0x2206, 0xC6, 0 },
1678   { 0x220F, 0xB8, 0 },
1679   { 0x2211, 0xB7, 0 },
1680   { 0x221A, 0xC3, 0 },
1681   { 0x221E, 0xB0, 0 },
1682   { 0x222B, 0xBA, 0 },
1683   { 0x2248, 0xC5, 0 },
1684   { 0x2260, 0xAD, 0 },
1685   { 0x2264, 0xB2, 0 },
1686   { 0x2265, 0xB3, 0 },
1687   { 0x25CA, 0xD7, 0 },
1688   { 0xF8FF, 0xF0, 0 },
1689   { 0xFB01, 0xDE, 0 },
1690   { 0xFB02, 0xDF, 0 }
1693 /* ----------------------------------------------------------------------- */
1695 static ImplByteConvertData const aImplAPPLEROMANByteCvtData =
1697     aImplAPPLEROMANToUniTab,
1698     NULL,
1699     APPLEROMANUNI_START, APPLEROMANUNI_END,
1700     NOTABUNI_START, NOTABUNI_END,
1701     aImplAPPLEROMANToCharTab,
1702     NULL,
1703     aImplAPPLEROMANToCharTabEx,
1704     APPLEROMANCHAR_START, APPLEROMANCHAR_END,
1705     NOTABCHAR_START, NOTABCHAR_END,
1706     APPLEROMANTOCHARTABEX_COUNT
1709 /* ----------------------------------------------------------------------- */
1711 static ImplTextEncodingData const aImplAPPLEROMANTextEncodingData
1712     = { { &aImplAPPLEROMANByteCvtData,
1713           ImplCharToUnicode,
1714           ImplUnicodeToChar,
1715           NULL,
1716           NULL,
1717           NULL,
1718           NULL,
1719           NULL,
1720           NULL },
1721         1,
1722         1,
1723         1,
1724         77,
1725         "iso8859-1",
1726         "macintosh",
1727         RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1728     /* MAC, SCRIPT_LATIN, pc code page 850 */
1730 /* ======================================================================= */
1732 /* US-ASCII */
1733 /* 7-Bit ASCII */
1734 /* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
1735 /* For the import we use ISO-8859-1 with MS extension (MS-1252), because */
1736 /* when the 8-Bit is set, the chance, that this is a ISO-8859-1 character */
1737 /* is the greatest. For the export all chars greater than 127 are not */
1738 /* converted and are replaced by the replacement character. */
1739 /* Last-Changes from us: */
1741 /* ----------------------------------------------------------------------- */
1743 static ImplByteConvertData const aImplUSASCIIByteCvtData =
1745     aImplMS1252ToUniTab,
1746     NULL,
1747     MS1252UNI_START, MS1252UNI_END,
1748     NOTABUNI_START, NOTABUNI_END,
1749     NULL,
1750     NULL,
1751     NULL,
1752     NOTABCHAR_START, NOTABCHAR_END,
1753     NOTABCHAR_START, NOTABCHAR_END,
1754     0
1757 /* ----------------------------------------------------------------------- */
1759 static ImplTextEncodingData const aImplUSASCIITextEncodingData
1760     = { { &aImplUSASCIIByteCvtData,
1761           ImplCharToUnicode,
1762           ImplUnicodeToChar,
1763           NULL,
1764           NULL,
1765           NULL,
1766           NULL,
1767           NULL,
1768           NULL },
1769         1,
1770         1,
1771         1,
1772         0,
1773         "iso8859-1",
1774         "us-ascii",
1775         RTL_TEXTENCODING_INFO_ASCII
1776             | RTL_TEXTENCODING_INFO_7BIT
1777             | RTL_TEXTENCODING_INFO_MIME };
1778     /* SCRIPT_LATIN, pc code page 437 */