1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28/* ======================================================================= */ 29 30/* This file contain the tables for all 1 byte charsets, for the */ 31/* following scripts: latin, iceland, nordic */ 32 33/* ======================================================================= */ 34 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: */ 40 41/* ----------------------------------------------------------------------- */ 42 43#define IBM437UNI_START 0x80 44#define IBM437UNI_END 0xFF 45static sal_uInt16 const aImplIBM437ToUniTab[IBM437UNI_END - IBM437UNI_START + 1] = 46{ 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 */ 65}; 66 67/* ----------------------------------------------------------------------- */ 68 69#define IBM437CHAR_START 0x00A0 70#define IBM437CHAR_END 0x00FF 71static sal_uChar const aImplIBM437ToCharTab[IBM437CHAR_END - IBM437CHAR_START + 1] = 72{ 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 */ 87}; 88 89/* ----------------------------------------------------------------------- */ 90 91#define IBM437TOCHARTABEX_COUNT 75 92static ImplUniCharTabData const aImplIBM437ToCharTabEx[IBM437TOCHARTABEX_COUNT] = 93{ 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 } 169}; 170 171/* ----------------------------------------------------------------------- */ 172 173static ImplByteConvertData const aImplIBM437ByteCvtData = 174{ 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 185}; 186 187/* ----------------------------------------------------------------------- */ 188 189static ImplTextEncodingData const aImplIBM437TextEncodingData 190 = { { &aImplIBM437ByteCvtData, 191 ImplCharToUnicode, 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 */ 207 208/* ======================================================================= */ 209 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 */ 216 217/* ----------------------------------------------------------------------- */ 218 219#define IBM850UNI_START 0x80 220#define IBM850UNI_END 0xFF 221static sal_uInt16 const aImplIBM850ToUniTab[IBM850UNI_END - IBM850UNI_START + 1] = 222{ 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 */ 241}; 242 243/* ----------------------------------------------------------------------- */ 244 245#define IBM850CHAR_START 0x00A0 246#define IBM850CHAR_END 0x00FF 247static sal_uChar const aImplIBM850ToCharTab[IBM850CHAR_END - IBM850CHAR_START + 1] = 248{ 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 */ 263}; 264 265/* ----------------------------------------------------------------------- */ 266 267#define IBM850TOCHARTABEX_COUNT 33 268static ImplUniCharTabData const aImplIBM850ToCharTabEx[IBM850TOCHARTABEX_COUNT] = 269{ 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 } 303}; 304 305/* ----------------------------------------------------------------------- */ 306 307static ImplByteConvertData const aImplIBM850ByteCvtData = 308{ 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 319}; 320 321/* ----------------------------------------------------------------------- */ 322 323static ImplTextEncodingData const aImplIBM850TextEncodingData 324 = { { &aImplIBM850ByteCvtData, 325 ImplCharToUnicode, 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 */ 341 342/* ======================================================================= */ 343 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: */ 349 350/* ----------------------------------------------------------------------- */ 351 352#define IBM860UNI_START 0x80 353#define IBM860UNI_END 0xFF 354static sal_uInt16 const aImplIBM860ToUniTab[IBM860UNI_END - IBM860UNI_START + 1] = 355{ 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 */ 374}; 375 376/* ----------------------------------------------------------------------- */ 377 378#define IBM860CHAR_START 0x00A0 379#define IBM860CHAR_END 0x00FC 380static sal_uChar const aImplIBM860ToCharTab[IBM860CHAR_END - IBM860CHAR_START + 1] = 381{ 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 */ 396}; 397 398/* ----------------------------------------------------------------------- */ 399 400#define IBM860TOCHARTABEX_COUNT 73 401static ImplUniCharTabData const aImplIBM860ToCharTabEx[IBM860TOCHARTABEX_COUNT] = 402{ 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 } 476}; 477 478/* ----------------------------------------------------------------------- */ 479 480static ImplByteConvertData const aImplIBM860ByteCvtData = 481{ 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 492}; 493 494/* ----------------------------------------------------------------------- */ 495 496static ImplTextEncodingData const aImplIBM860TextEncodingData 497 = { { &aImplIBM860ByteCvtData, 498 ImplCharToUnicode, 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 */ 514 515/* ======================================================================= */ 516 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: */ 522 523/* ----------------------------------------------------------------------- */ 524 525#define IBM861UNI_START 0x80 526#define IBM861UNI_END 0xFF 527static sal_uInt16 const aImplIBM861ToUniTab[IBM861UNI_END - IBM861UNI_START + 1] = 528{ 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 */ 547}; 548 549/* ----------------------------------------------------------------------- */ 550 551#define IBM861CHAR_START 0x00A0 552#define IBM861CHAR_END 0x00FE 553static sal_uChar const aImplIBM861ToCharTab[IBM861CHAR_END - IBM861CHAR_START + 1] = 554{ 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 */ 569}; 570 571/* ----------------------------------------------------------------------- */ 572 573#define IBM861TOCHARTABEX_COUNT 75 574static ImplUniCharTabData const aImplIBM861ToCharTabEx[IBM861TOCHARTABEX_COUNT] = 575{ 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 } 651}; 652 653/* ----------------------------------------------------------------------- */ 654 655static ImplByteConvertData const aImplIBM861ByteCvtData = 656{ 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 667}; 668 669/* ----------------------------------------------------------------------- */ 670 671static ImplTextEncodingData const aImplIBM861TextEncodingData 672 = { { &aImplIBM861ByteCvtData, 673 ImplCharToUnicode, 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 */ 689 690/* ======================================================================= */ 691 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: */ 697 698/* ----------------------------------------------------------------------- */ 699 700#define IBM863UNI_START 0x80 701#define IBM863UNI_END 0xFF 702static sal_uInt16 const aImplIBM863ToUniTab[IBM863UNI_END - IBM863UNI_START + 1] = 703{ 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 */ 722}; 723 724/* ----------------------------------------------------------------------- */ 725 726#define IBM863CHAR_START 0x00A0 727#define IBM863CHAR_END 0x00FC 728static sal_uChar const aImplIBM863ToCharTab[IBM863CHAR_END - IBM863CHAR_START + 1] = 729{ 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 */ 744}; 745 746/* ----------------------------------------------------------------------- */ 747 748#define IBM863TOCHARTABEX_COUNT 75 749static ImplUniCharTabData const aImplIBM863ToCharTabEx[IBM863TOCHARTABEX_COUNT] = 750{ 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 } 826}; 827 828/* ----------------------------------------------------------------------- */ 829 830static ImplByteConvertData const aImplIBM863ByteCvtData = 831{ 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 842}; 843 844/* ----------------------------------------------------------------------- */ 845 846static ImplTextEncodingData const aImplIBM863TextEncodingData 847 = { { &aImplIBM863ByteCvtData, 848 ImplCharToUnicode, 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 */ 864 865/* ======================================================================= */ 866 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: */ 872 873/* ----------------------------------------------------------------------- */ 874 875#define IBM865UNI_START 0x80 876#define IBM865UNI_END 0xFF 877static sal_uInt16 const aImplIBM865ToUniTab[IBM865UNI_END - IBM865UNI_START + 1] = 878{ 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 */ 897}; 898 899/* ----------------------------------------------------------------------- */ 900 901#define IBM865CHAR_START 0x00A0 902#define IBM865CHAR_END 0x00FF 903static sal_uChar const aImplIBM865ToCharTab[IBM865CHAR_END - IBM865CHAR_START + 1] = 904{ 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 */ 919}; 920 921/* ----------------------------------------------------------------------- */ 922 923#define IBM865TOCHARTABEX_COUNT 75 924static ImplUniCharTabData const aImplIBM865ToCharTabEx[IBM865TOCHARTABEX_COUNT] = 925{ 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 } 1001}; 1002 1003/* ----------------------------------------------------------------------- */ 1004 1005static ImplByteConvertData const aImplIBM865ByteCvtData = 1006{ 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 1017}; 1018 1019/* ----------------------------------------------------------------------- */ 1020 1021static ImplTextEncodingData const aImplIBM865TextEncodingData 1022 = { { &aImplIBM865ByteCvtData, 1023 ImplCharToUnicode, 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 */ 1039 1040/* ======================================================================= */ 1041 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: */ 1047 1048/* ----------------------------------------------------------------------- */ 1049 1050#define MS1252UNI_START 0x80 1051#define MS1252UNI_END 0xFF 1052static sal_uInt16 const aImplMS1252ToUniTab[MS1252UNI_END - MS1252UNI_START + 1] = 1053{ 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 */ 1072}; 1073 1074/* ----------------------------------------------------------------------- */ 1075 1076#define MS1252TOCHARTABEX_COUNT 27 1077static ImplUniCharTabData const aImplMS1252ToCharTabEx[MS1252TOCHARTABEX_COUNT] = 1078{ 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 }, 1106}; 1107 1108/* ----------------------------------------------------------------------- */ 1109 1110static ImplByteConvertData const aImplMS1252ByteCvtData = 1111{ 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 1122}; 1123 1124/* ----------------------------------------------------------------------- */ 1125 1126static 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 */ 1144 1145/* ======================================================================= */ 1146 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: */ 1152 1153#define ISO88591UNI_START 0xA0 1154#define ISO88591UNI_END 0xFF 1155static sal_uInt16 const aImplISO88591ToUniTab[ISO88591UNI_END - ISO88591UNI_START + 1] = 1156{ 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 */ 1171}; 1172 1173/* ----------------------------------------------------------------------- */ 1174 1175static ImplByteConvertData const aImplISO88591ByteCvtData = 1176{ 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 1187}; 1188 1189/* ----------------------------------------------------------------------- */ 1190 1191static 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 */ 1209 1210/* ======================================================================= */ 1211 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: */ 1217 1218#define ISO885914UNI_START 0xA0 1219#define ISO885914UNI_END 0xFF 1220static sal_uInt16 const aImplISO885914ToUniTab[ISO885914UNI_END - ISO885914UNI_START + 1] = 1221{ 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 */ 1236}; 1237 1238/* ----------------------------------------------------------------------- */ 1239 1240#define ISO885914CHAR_START 0x00C0 1241#define ISO885914CHAR_END 0x00FF 1242static sal_uChar const aImplISO885914ToCharTab[ISO885914CHAR_END - ISO885914CHAR_START + 1] = 1243{ 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 */ 1254}; 1255 1256/* ----------------------------------------------------------------------- */ 1257 1258#define ISO885914TOCHARTABEX_COUNT 38 1259static ImplUniCharTabData const aImplISO885914ToCharTabEx[ISO885914TOCHARTABEX_COUNT] = 1260{ 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 } 1299}; 1300 1301/* ----------------------------------------------------------------------- */ 1302 1303static ImplByteConvertData const aImplISO885914ByteCvtData = 1304{ 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 1315}; 1316 1317/* ----------------------------------------------------------------------- */ 1318 1319static 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 */ 1337 1338/* ======================================================================= */ 1339 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: */ 1345 1346#define ISO885915UNI_START 0xA0 1347#define ISO885915UNI_END 0xFF 1348static sal_uInt16 const aImplISO885915ToUniTab[ISO885915UNI_END - ISO885915UNI_START + 1] = 1349{ 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 */ 1364}; 1365 1366/* ----------------------------------------------------------------------- */ 1367 1368#define ISO885915CHAR_START 0x00A0 1369#define ISO885915CHAR_END 0x00FF 1370static sal_uChar const aImplISO885915ToCharTab[ISO885915CHAR_END - ISO885915CHAR_START + 1] = 1371{ 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 */ 1386}; 1387 1388/* ----------------------------------------------------------------------- */ 1389 1390#define ISO885915TOCHARTABEX_COUNT 8 1391static ImplUniCharTabData const aImplISO885915ToCharTabEx[ISO885915TOCHARTABEX_COUNT] = 1392{ 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 } 1401}; 1402 1403/* ----------------------------------------------------------------------- */ 1404 1405static ImplByteConvertData const aImplISO885915ByteCvtData = 1406{ 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 1417}; 1418 1419/* ----------------------------------------------------------------------- */ 1420 1421static 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 */ 1439 1440/* ======================================================================= */ 1441 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: */ 1448 1449#define APPLEICELANDUNI_START 0x80 1450#define APPLEICELANDUNI_END 0xFF 1451static sal_uInt16 const aImplAPPLEICELANDToUniTab[APPLEICELANDUNI_END - APPLEICELANDUNI_START + 1] = 1452{ 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 */ 1471}; 1472 1473/* ----------------------------------------------------------------------- */ 1474 1475#define APPLEICELANDCHAR_START 0x00A0 1476#define APPLEICELANDCHAR_END 0x00FF 1477static sal_uChar const aImplAPPLEICELANDToCharTab[APPLEICELANDCHAR_END - APPLEICELANDCHAR_START + 1] = 1478{ 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 */ 1493}; 1494 1495/* ----------------------------------------------------------------------- */ 1496 1497#define APPLEICELANDTOCHARTABEX_COUNT 41 1498static ImplUniCharTabData const aImplAPPLEICELANDToCharTabEx[APPLEICELANDTOCHARTABEX_COUNT] = 1499{ 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 } 1541}; 1542 1543/* ----------------------------------------------------------------------- */ 1544 1545static ImplByteConvertData const aImplAPPLEICELANDByteCvtData = 1546{ 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 1557}; 1558 1559/* ----------------------------------------------------------------------- */ 1560 1561static ImplTextEncodingData const aImplAPPLEICELANDTextEncodingData 1562 = { { &aImplAPPLEICELANDByteCvtData, 1563 ImplCharToUnicode, 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 */ 1579 1580/* ======================================================================= */ 1581 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: */ 1588 1589#define APPLEROMANUNI_START 0x80 1590#define APPLEROMANUNI_END 0xFF 1591static sal_uInt16 const aImplAPPLEROMANToUniTab[APPLEROMANUNI_END - APPLEROMANUNI_START + 1] = 1592{ 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 */ 1611}; 1612 1613/* ----------------------------------------------------------------------- */ 1614 1615#define APPLEROMANCHAR_START 0x00A0 1616#define APPLEROMANCHAR_END 0x00FF 1617static sal_uChar const aImplAPPLEROMANToCharTab[APPLEROMANCHAR_END - APPLEROMANCHAR_START + 1] = 1618{ 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 */ 1633}; 1634 1635/* ----------------------------------------------------------------------- */ 1636 1637#define APPLEROMANTOCHARTABEX_COUNT 48 1638static ImplUniCharTabData const aImplAPPLEROMANToCharTabEx[APPLEROMANTOCHARTABEX_COUNT] = 1639{ 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 } 1688}; 1689 1690/* ----------------------------------------------------------------------- */ 1691 1692static ImplByteConvertData const aImplAPPLEROMANByteCvtData = 1693{ 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 1704}; 1705 1706/* ----------------------------------------------------------------------- */ 1707 1708static ImplTextEncodingData const aImplAPPLEROMANTextEncodingData 1709 = { { &aImplAPPLEROMANByteCvtData, 1710 ImplCharToUnicode, 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 */ 1726 1727/* ======================================================================= */ 1728 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: */ 1737 1738/* ----------------------------------------------------------------------- */ 1739 1740static ImplByteConvertData const aImplUSASCIIByteCvtData = 1741{ 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 1752}; 1753 1754/* ----------------------------------------------------------------------- */ 1755 1756static 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 */ 1776