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