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