1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
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.
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).
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.
26 ************************************************************************/
28 /* ======================================================================= */
30 /* This file contain the tables for all 1 byte charsets, for the */
31 /* following scripts: latin, iceland, nordic */
33 /* ======================================================================= */
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] =
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] =
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] =
171 /* ----------------------------------------------------------------------- */
173 static ImplByteConvertData const aImplIBM437ByteCvtData =
177 IBM437UNI_START, IBM437UNI_END,
178 NOTABUNI_START, NOTABUNI_END,
179 aImplIBM437ToCharTab,
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,
205 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
206 /* DOS/OS2, SCRIPT_LATIN, pc code page 437 */
208 /* ======================================================================= */
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] =
305 /* ----------------------------------------------------------------------- */
307 static ImplByteConvertData const aImplIBM850ByteCvtData =
311 IBM850UNI_START, IBM850UNI_END,
312 NOTABUNI_START, NOTABUNI_END,
313 aImplIBM850ToCharTab,
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,
339 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
340 /* DOS/OS2, SCRIPT_LATIN, pc code page 850 */
342 /* ======================================================================= */
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] =
478 /* ----------------------------------------------------------------------- */
480 static ImplByteConvertData const aImplIBM860ByteCvtData =
484 IBM860UNI_START, IBM860UNI_END,
485 NOTABUNI_START, NOTABUNI_END,
486 aImplIBM860ToCharTab,
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,
512 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
513 /* DOS/OS2, SCRIPT_LATIN, pc code page 860 */
515 /* ======================================================================= */
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] =
653 /* ----------------------------------------------------------------------- */
655 static ImplByteConvertData const aImplIBM861ByteCvtData =
659 IBM861UNI_START, IBM861UNI_END,
660 NOTABUNI_START, NOTABUNI_END,
661 aImplIBM861ToCharTab,
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,
687 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
688 /* DOS/OS2, SCRIPT_LATIN, pc code page 861, mac encoding 37 */
690 /* ======================================================================= */
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] =
828 /* ----------------------------------------------------------------------- */
830 static ImplByteConvertData const aImplIBM863ByteCvtData =
834 IBM863UNI_START, IBM863UNI_END,
835 NOTABUNI_START, NOTABUNI_END,
836 aImplIBM863ToCharTab,
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,
862 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
863 /* DOS/OS2, SCRIPT_LATIN, pc code page 863 */
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] =
1003 /* ----------------------------------------------------------------------- */
1005 static ImplByteConvertData const aImplIBM865ByteCvtData =
1007 aImplIBM865ToUniTab,
1009 IBM865UNI_START, IBM865UNI_END,
1010 NOTABUNI_START, NOTABUNI_END,
1011 aImplIBM865ToCharTab,
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,
1037 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1038 /* DOS/OS2, SCRIPT_LATIN, pc code page 865 */
1040 /* ======================================================================= */
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,
1114 MS1252UNI_START, MS1252UNI_END,
1115 NOTABUNI_START, NOTABUNI_END,
1116 aImplA0FFSameToCharTab,
1118 aImplMS1252ToCharTabEx,
1119 SAMEA0FFCHAR_START, SAMEA0FFCHAR_END,
1120 NOTABCHAR_START, NOTABCHAR_END,
1121 MS1252TOCHARTABEX_COUNT
1124 /* ----------------------------------------------------------------------- */
1126 static ImplTextEncodingData const aImplMS1252TextEncodingData
1127 = { { &aImplMS1252ByteCvtData,
1142 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1143 /* WIN, SCRIPT_LATIN, pc code page 850 */
1145 /* ======================================================================= */
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,
1184 SAMEA0FFCHAR_START, SAMEA0FFCHAR_END,
1185 SAME8090CHAR_START, SAME8090CHAR_END,
1189 /* ----------------------------------------------------------------------- */
1191 static ImplTextEncodingData const aImplISO88591TextEncodingData
1192 = { { &aImplISO88591ByteCvtData,
1207 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1208 /* SCRIPT_LATIN, pc code page 850 */
1210 /* ======================================================================= */
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 },
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,
1335 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1336 /* SCRIPT_LATIN, pc code page 850 */
1338 /* ======================================================================= */
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 },
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,
1437 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1438 /* SCRIPT_LATIN, pc code page 850 */
1440 /* ======================================================================= */
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 },
1543 /* ----------------------------------------------------------------------- */
1545 static ImplByteConvertData const aImplAPPLEICELANDByteCvtData =
1547 aImplAPPLEICELANDToUniTab,
1549 APPLEICELANDUNI_START, APPLEICELANDUNI_END,
1550 NOTABUNI_START, NOTABUNI_END,
1551 aImplAPPLEICELANDToCharTab,
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,
1577 RTL_TEXTENCODING_INFO_ASCII };
1578 /* MAC, SCRIPT_LATIN, pc code page 861, mac encoding 37 */
1580 /* ======================================================================= */
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 },
1690 /* ----------------------------------------------------------------------- */
1692 static ImplByteConvertData const aImplAPPLEROMANByteCvtData =
1694 aImplAPPLEROMANToUniTab,
1696 APPLEROMANUNI_START, APPLEROMANUNI_END,
1697 NOTABUNI_START, NOTABUNI_END,
1698 aImplAPPLEROMANToCharTab,
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,
1724 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
1725 /* MAC, SCRIPT_LATIN, pc code page 850 */
1727 /* ======================================================================= */
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,
1744 MS1252UNI_START, MS1252UNI_END,
1745 NOTABUNI_START, NOTABUNI_END,
1749 NOTABCHAR_START, NOTABCHAR_END,
1750 NOTABCHAR_START, NOTABCHAR_END,
1754 /* ----------------------------------------------------------------------- */
1756 static ImplTextEncodingData const aImplUSASCIITextEncodingData
1757 = { { &aImplUSASCIIByteCvtData,
1772 RTL_TEXTENCODING_INFO_ASCII
1773 | RTL_TEXTENCODING_INFO_7BIT
1774 | RTL_TEXTENCODING_INFO_MIME };
1775 /* SCRIPT_LATIN, pc code page 437 */