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: easteurope, cyrillic, greek, turkish */ 32 33/* ======================================================================= */ 34 35/* IBM-737 */ 36/* Dos Standard CharSet for Greek */ 37/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 38/* Convert-Tables: mappings/vendors/micsft/pc/cp737.txt from 04/24/96 Version 2.00 */ 39/* Last-Changes from us: */ 40 41/* ----------------------------------------------------------------------- */ 42 43#define IBM737UNI_START 0x80 44#define IBM737UNI_END 0xFF 45static sal_uInt16 const aImplIBM737ToUniTab[IBM737UNI_END - IBM737UNI_START + 1] = 46{ 47/* 0 1 2 3 4 5 6 7 */ 48/* 8 9 A B C D E F */ 49 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, /* 0x80 */ 50 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, /* 0x80 */ 51 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, /* 0x90 */ 52 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, /* 0x90 */ 53 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, /* 0xA0 */ 54 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, /* 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 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, /* 0xE0 */ 62 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, /* 0xE0 */ 63 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, /* 0xF0 */ 64 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */ 65}; 66 67/* ----------------------------------------------------------------------- */ 68 69#define IBM737CHAR_START 0x0386 70#define IBM737CHAR_END 0x03CE 71static sal_uChar const aImplIBM737ToCharTab[IBM737CHAR_END - IBM737CHAR_START + 1] = 72{ 73/* 0 1 2 3 4 5 6 7 */ 74/* 8 9 A B C D E F */ 75 0xEA, 0, /* 0x0380 */ 76 0xEB, 0xEC, 0xED, 0, 0xEE, 0, 0xEF, 0xF0, /* 0x0380 */ 77 0, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /* 0x0390 */ 78 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, /* 0x0390 */ 79 0x8F, 0x90, 0, 0x91, 0x92, 0x93, 0x94, 0x95, /* 0x03A0 */ 80 0x96, 0x97, 0xF4, 0xF5, 0xE1, 0xE2, 0xE3, 0xE5, /* 0x03A0 */ 81 0, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, /* 0x03B0 */ 82 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, /* 0x03B0 */ 83 0xA7, 0xA8, 0xAA, 0xA9, 0xAB, 0xAC, 0xAD, 0xAE, /* 0x03C0 */ 84 0xAF, 0xE0, 0xE4, 0xE8, 0xE6, 0xE7, 0xE9 /* 0x03C0 */ 85}; 86 87/* ----------------------------------------------------------------------- */ 88 89#define IBM737TOCHARTABEX_COUNT 61 90static ImplUniCharTabData const aImplIBM737ToCharTabEx[IBM737TOCHARTABEX_COUNT] = 91{ 92 { 0x00A0, 0xFF, 0 }, 93 { 0x00B0, 0xF8, 0 }, 94 { 0x00B1, 0xF1, 0 }, 95 { 0x00B2, 0xFD, 0 }, 96 { 0x00B7, 0xFA, 0 }, 97 { 0x00F7, 0xF6, 0 }, 98 { 0x207F, 0xFC, 0 }, 99 { 0x2219, 0xF9, 0 }, 100 { 0x221A, 0xFB, 0 }, 101 { 0x2248, 0xF7, 0 }, 102 { 0x2264, 0xF3, 0 }, 103 { 0x2265, 0xF2, 0 }, 104 { 0x2500, 0xC4, 0 }, 105 { 0x2502, 0xB3, 0 }, 106 { 0x250C, 0xDA, 0 }, 107 { 0x2510, 0xBF, 0 }, 108 { 0x2514, 0xC0, 0 }, 109 { 0x2518, 0xD9, 0 }, 110 { 0x251C, 0xC3, 0 }, 111 { 0x2524, 0xB4, 0 }, 112 { 0x252C, 0xC2, 0 }, 113 { 0x2534, 0xC1, 0 }, 114 { 0x253C, 0xC5, 0 }, 115 { 0x2550, 0xCD, 0 }, 116 { 0x2551, 0xBA, 0 }, 117 { 0x2552, 0xD5, 0 }, 118 { 0x2553, 0xD6, 0 }, 119 { 0x2554, 0xC9, 0 }, 120 { 0x2555, 0xB8, 0 }, 121 { 0x2556, 0xB7, 0 }, 122 { 0x2557, 0xBB, 0 }, 123 { 0x2558, 0xD4, 0 }, 124 { 0x2559, 0xD3, 0 }, 125 { 0x255A, 0xC8, 0 }, 126 { 0x255B, 0xBE, 0 }, 127 { 0x255C, 0xBD, 0 }, 128 { 0x255D, 0xBC, 0 }, 129 { 0x255E, 0xC6, 0 }, 130 { 0x255F, 0xC7, 0 }, 131 { 0x2560, 0xCC, 0 }, 132 { 0x2561, 0xB5, 0 }, 133 { 0x2562, 0xB6, 0 }, 134 { 0x2563, 0xB9, 0 }, 135 { 0x2564, 0xD1, 0 }, 136 { 0x2565, 0xD2, 0 }, 137 { 0x2566, 0xCB, 0 }, 138 { 0x2567, 0xCF, 0 }, 139 { 0x2568, 0xD0, 0 }, 140 { 0x2569, 0xCA, 0 }, 141 { 0x256A, 0xD8, 0 }, 142 { 0x256B, 0xD7, 0 }, 143 { 0x256C, 0xCE, 0 }, 144 { 0x2580, 0xDF, 0 }, 145 { 0x2584, 0xDC, 0 }, 146 { 0x2588, 0xDB, 0 }, 147 { 0x258C, 0xDD, 0 }, 148 { 0x2590, 0xDE, 0 }, 149 { 0x2591, 0xB0, 0 }, 150 { 0x2592, 0xB1, 0 }, 151 { 0x2593, 0xB2, 0 }, 152 { 0x25A0, 0xFE, 0 } 153}; 154 155/* ----------------------------------------------------------------------- */ 156 157static ImplByteConvertData const aImplIBM737ByteCvtData = 158{ 159 aImplIBM737ToUniTab, 160 NULL, 161 IBM737UNI_START, IBM737UNI_END, 162 NOTABUNI_START, NOTABUNI_END, 163 aImplIBM737ToCharTab, 164 NULL, 165 aImplIBM737ToCharTabEx, 166 IBM737CHAR_START, IBM737CHAR_END, 167 NOTABCHAR_START, NOTABCHAR_END, 168 IBM737TOCHARTABEX_COUNT 169}; 170 171/* ----------------------------------------------------------------------- */ 172 173static ImplTextEncodingData const aImplIBM737TextEncodingData 174 = { { &aImplIBM737ByteCvtData, 175 ImplCharToUnicode, 176 ImplUnicodeToChar, 177 NULL, 178 NULL, 179 NULL, 180 NULL, 181 NULL, 182 NULL }, 183 1, 184 1, 185 1, 186 161, 187 "iso8859-7", 188 "iso-8859-7", 189 RTL_TEXTENCODING_INFO_ASCII }; 190 /* DOS/OS2, SCRIPT_GREEK, pc code page 737, mac encoding 6 */ 191 192/* ======================================================================= */ 193 194/* IBM-775 */ 195/* Dos Standard CharSet for BalticRim */ 196/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 197/* Convert-Tables: mappings/vendors/micsft/pc/cp775.txt from 04/24/96 Version 2.00 */ 198/* Last-Changes from us: */ 199 200/* ----------------------------------------------------------------------- */ 201 202#define IBM775UNI_START 0x80 203#define IBM775UNI_END 0xFF 204static sal_uInt16 const aImplIBM775ToUniTab[IBM775UNI_END - IBM775UNI_START + 1] = 205{ 206/* 0 1 2 3 4 5 6 7 */ 207/* 8 9 A B C D E F */ 208 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, /* 0x80 */ 209 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, /* 0x80 */ 210 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, /* 0x90 */ 211 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, /* 0x90 */ 212 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, /* 0xA0 */ 213 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, /* 0xA0 */ 214 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, /* 0xB0 */ 215 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, /* 0xB0 */ 216 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, /* 0xC0 */ 217 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, /* 0xC0 */ 218 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, /* 0xD0 */ 219 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */ 220 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, /* 0xE0 */ 221 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, /* 0xE0 */ 222 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, /* 0xF0 */ 223 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */ 224}; 225 226/* ----------------------------------------------------------------------- */ 227 228#define IBM775TOCHARTABEX_COUNT 128 229static ImplUniCharTabData const aImplIBM775ToCharTabEx[IBM775TOCHARTABEX_COUNT] = 230{ 231 { 0x00A0, 0xFF, 0 }, 232 { 0x00A2, 0x96, 0 }, 233 { 0x00A3, 0x9C, 0 }, 234 { 0x00A4, 0x9F, 0 }, 235 { 0x00A6, 0xA7, 0 }, 236 { 0x00A7, 0xF5, 0 }, 237 { 0x00A9, 0xA8, 0 }, 238 { 0x00AB, 0xAE, 0 }, 239 { 0x00AC, 0xAA, 0 }, 240 { 0x00AD, 0xF0, 0 }, 241 { 0x00AE, 0xA9, 0 }, 242 { 0x00B0, 0xF8, 0 }, 243 { 0x00B1, 0xF1, 0 }, 244 { 0x00B2, 0xFD, 0 }, 245 { 0x00B3, 0xFC, 0 }, 246 { 0x00B5, 0xE6, 0 }, 247 { 0x00B6, 0xF4, 0 }, 248 { 0x00B7, 0xFA, 0 }, 249 { 0x00B9, 0xFB, 0 }, 250 { 0x00BB, 0xAF, 0 }, 251 { 0x00BC, 0xAC, 0 }, 252 { 0x00BD, 0xAB, 0 }, 253 { 0x00BE, 0xF3, 0 }, 254 { 0x00C4, 0x8E, 0 }, 255 { 0x00C5, 0x8F, 0 }, 256 { 0x00C6, 0x92, 0 }, 257 { 0x00C9, 0x90, 0 }, 258 { 0x00D3, 0xE0, 0 }, 259 { 0x00D5, 0xE5, 0 }, 260 { 0x00D6, 0x99, 0 }, 261 { 0x00D7, 0x9E, 0 }, 262 { 0x00D8, 0x9D, 0 }, 263 { 0x00DC, 0x9A, 0 }, 264 { 0x00DF, 0xE1, 0 }, 265 { 0x00E4, 0x84, 0 }, 266 { 0x00E5, 0x86, 0 }, 267 { 0x00E6, 0x91, 0 }, 268 { 0x00E9, 0x82, 0 }, 269 { 0x00F3, 0xA2, 0 }, 270 { 0x00F5, 0xE4, 0 }, 271 { 0x00F6, 0x94, 0 }, 272 { 0x00F7, 0xF6, 0 }, 273 { 0x00F8, 0x9B, 0 }, 274 { 0x00FC, 0x81, 0 }, 275 { 0x0100, 0xA0, 0 }, 276 { 0x0101, 0x83, 0 }, 277 { 0x0104, 0xB5, 0 }, 278 { 0x0105, 0xD0, 0 }, 279 { 0x0106, 0x80, 0 }, 280 { 0x0107, 0x87, 0 }, 281 { 0x010C, 0xB6, 0 }, 282 { 0x010D, 0xD1, 0 }, 283 { 0x0112, 0xED, 0 }, 284 { 0x0113, 0x89, 0 }, 285 { 0x0116, 0xB8, 0 }, 286 { 0x0117, 0xD3, 0 }, 287 { 0x0118, 0xB7, 0 }, 288 { 0x0119, 0xD2, 0 }, 289 { 0x0122, 0x95, 0 }, 290 { 0x0123, 0x85, 0 }, 291 { 0x012A, 0xA1, 0 }, 292 { 0x012B, 0x8C, 0 }, 293 { 0x012E, 0xBD, 0 }, 294 { 0x012F, 0xD4, 0 }, 295 { 0x0136, 0xE8, 0 }, 296 { 0x0137, 0xE9, 0 }, 297 { 0x013B, 0xEA, 0 }, 298 { 0x013C, 0xEB, 0 }, 299 { 0x0141, 0xAD, 0 }, 300 { 0x0142, 0x88, 0 }, 301 { 0x0143, 0xE3, 0 }, 302 { 0x0144, 0xE7, 0 }, 303 { 0x0145, 0xEE, 0 }, 304 { 0x0146, 0xEC, 0 }, 305 { 0x014C, 0xE2, 0 }, 306 { 0x014D, 0x93, 0 }, 307 { 0x0156, 0x8A, 0 }, 308 { 0x0157, 0x8B, 0 }, 309 { 0x015A, 0x97, 0 }, 310 { 0x015B, 0x98, 0 }, 311 { 0x0160, 0xBE, 0 }, 312 { 0x0161, 0xD5, 0 }, 313 { 0x016A, 0xC7, 0 }, 314 { 0x016B, 0xD7, 0 }, 315 { 0x0172, 0xC6, 0 }, 316 { 0x0173, 0xD6, 0 }, 317 { 0x0179, 0x8D, 0 }, 318 { 0x017A, 0xA5, 0 }, 319 { 0x017B, 0xA3, 0 }, 320 { 0x017C, 0xA4, 0 }, 321 { 0x017D, 0xCF, 0 }, 322 { 0x017E, 0xD8, 0 }, 323 { 0x2019, 0xEF, 0 }, 324 { 0x201C, 0xF2, 0 }, 325 { 0x201D, 0xA6, 0 }, 326 { 0x201E, 0xF7, 0 }, 327 { 0x2219, 0xF9, 0 }, 328 { 0x2500, 0xC4, 0 }, 329 { 0x2502, 0xB3, 0 }, 330 { 0x250C, 0xDA, 0 }, 331 { 0x2510, 0xBF, 0 }, 332 { 0x2514, 0xC0, 0 }, 333 { 0x2518, 0xD9, 0 }, 334 { 0x251C, 0xC3, 0 }, 335 { 0x2524, 0xB4, 0 }, 336 { 0x252C, 0xC2, 0 }, 337 { 0x2534, 0xC1, 0 }, 338 { 0x253C, 0xC5, 0 }, 339 { 0x2550, 0xCD, 0 }, 340 { 0x2551, 0xBA, 0 }, 341 { 0x2554, 0xC9, 0 }, 342 { 0x2557, 0xBB, 0 }, 343 { 0x255A, 0xC8, 0 }, 344 { 0x255D, 0xBC, 0 }, 345 { 0x2560, 0xCC, 0 }, 346 { 0x2563, 0xB9, 0 }, 347 { 0x2566, 0xCB, 0 }, 348 { 0x2569, 0xCA, 0 }, 349 { 0x256C, 0xCE, 0 }, 350 { 0x2580, 0xDF, 0 }, 351 { 0x2584, 0xDC, 0 }, 352 { 0x2588, 0xDB, 0 }, 353 { 0x258C, 0xDD, 0 }, 354 { 0x2590, 0xDE, 0 }, 355 { 0x2591, 0xB0, 0 }, 356 { 0x2592, 0xB1, 0 }, 357 { 0x2593, 0xB2, 0 }, 358 { 0x25A0, 0xFE, 0 } 359}; 360 361/* ----------------------------------------------------------------------- */ 362 363static ImplByteConvertData const aImplIBM775ByteCvtData = 364{ 365 aImplIBM775ToUniTab, 366 NULL, 367 IBM775UNI_START, IBM775UNI_END, 368 NOTABUNI_START, NOTABUNI_END, 369 NULL, 370 NULL, 371 aImplIBM775ToCharTabEx, 372 NOTABCHAR_START, NOTABCHAR_END, 373 NOTABCHAR_START, NOTABCHAR_END, 374 IBM775TOCHARTABEX_COUNT 375}; 376 377/* ----------------------------------------------------------------------- */ 378 379static ImplTextEncodingData const aImplIBM775TextEncodingData 380 = { { &aImplIBM775ByteCvtData, 381 ImplCharToUnicode, 382 ImplUnicodeToChar, 383 NULL, 384 NULL, 385 NULL, 386 NULL, 387 NULL, 388 NULL }, 389 1, 390 1, 391 1, 392 186, 393 "iso8859-4", 394 "iso-8859-4", 395 RTL_TEXTENCODING_INFO_ASCII }; 396 /* DOS/OS2, SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */ 397 398/* ======================================================================= */ 399 400/* IBM-852 */ 401/* Dos Standard CharSet for Central Europa (Jug., Pol., Tsch., Ung., ...) */ 402/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 403/* Convert-Tables: mappings/vendors/micsft/pc/cp852.txt from 04/24/96 Version 2.00 */ 404/* Last-Changes from us: */ 405 406/* ----------------------------------------------------------------------- */ 407 408#define IBM852UNI_START 0x80 409#define IBM852UNI_END 0xFF 410static sal_uInt16 const aImplIBM852ToUniTab[IBM852UNI_END - IBM852UNI_START + 1] = 411{ 412/* 0 1 2 3 4 5 6 7 */ 413/* 8 9 A B C D E F */ 414 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, /* 0x80 */ 415 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, /* 0x80 */ 416 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, /* 0x90 */ 417 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, /* 0x90 */ 418 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, /* 0xA0 */ 419 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, /* 0xA0 */ 420 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, /* 0xB0 */ 421 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, /* 0xB0 */ 422 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, /* 0xC0 */ 423 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */ 424 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, /* 0xD0 */ 425 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, /* 0xD0 */ 426 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, /* 0xE0 */ 427 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, /* 0xE0 */ 428 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */ 429 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 /* 0xF0 */ 430}; 431 432/* ----------------------------------------------------------------------- */ 433 434#define IBM852TOCHARTABEX_COUNT 128 435static ImplUniCharTabData const aImplIBM852ToCharTabEx[IBM852TOCHARTABEX_COUNT] = 436{ 437 { 0x00A0, 0xFF, 0 }, 438 { 0x00A4, 0xCF, 0 }, 439 { 0x00A7, 0xF5, 0 }, 440 { 0x00A8, 0xF9, 0 }, 441 { 0x00AB, 0xAE, 0 }, 442 { 0x00AC, 0xAA, 0 }, 443 { 0x00AD, 0xF0, 0 }, 444 { 0x00B0, 0xF8, 0 }, 445 { 0x00B4, 0xEF, 0 }, 446 { 0x00B8, 0xF7, 0 }, 447 { 0x00BB, 0xAF, 0 }, 448 { 0x00C1, 0xB5, 0 }, 449 { 0x00C2, 0xB6, 0 }, 450 { 0x00C4, 0x8E, 0 }, 451 { 0x00C7, 0x80, 0 }, 452 { 0x00C9, 0x90, 0 }, 453 { 0x00CB, 0xD3, 0 }, 454 { 0x00CD, 0xD6, 0 }, 455 { 0x00CE, 0xD7, 0 }, 456 { 0x00D3, 0xE0, 0 }, 457 { 0x00D4, 0xE2, 0 }, 458 { 0x00D6, 0x99, 0 }, 459 { 0x00D7, 0x9E, 0 }, 460 { 0x00DA, 0xE9, 0 }, 461 { 0x00DC, 0x9A, 0 }, 462 { 0x00DD, 0xED, 0 }, 463 { 0x00DF, 0xE1, 0 }, 464 { 0x00E1, 0xA0, 0 }, 465 { 0x00E2, 0x83, 0 }, 466 { 0x00E4, 0x84, 0 }, 467 { 0x00E7, 0x87, 0 }, 468 { 0x00E9, 0x82, 0 }, 469 { 0x00EB, 0x89, 0 }, 470 { 0x00ED, 0xA1, 0 }, 471 { 0x00EE, 0x8C, 0 }, 472 { 0x00F3, 0xA2, 0 }, 473 { 0x00F4, 0x93, 0 }, 474 { 0x00F6, 0x94, 0 }, 475 { 0x00F7, 0xF6, 0 }, 476 { 0x00FA, 0xA3, 0 }, 477 { 0x00FC, 0x81, 0 }, 478 { 0x00FD, 0xEC, 0 }, 479 { 0x0102, 0xC6, 0 }, 480 { 0x0103, 0xC7, 0 }, 481 { 0x0104, 0xA4, 0 }, 482 { 0x0105, 0xA5, 0 }, 483 { 0x0106, 0x8F, 0 }, 484 { 0x0107, 0x86, 0 }, 485 { 0x010C, 0xAC, 0 }, 486 { 0x010D, 0x9F, 0 }, 487 { 0x010E, 0xD2, 0 }, 488 { 0x010F, 0xD4, 0 }, 489 { 0x0110, 0xD1, 0 }, 490 { 0x0111, 0xD0, 0 }, 491 { 0x0118, 0xA8, 0 }, 492 { 0x0119, 0xA9, 0 }, 493 { 0x011A, 0xB7, 0 }, 494 { 0x011B, 0xD8, 0 }, 495 { 0x0139, 0x91, 0 }, 496 { 0x013A, 0x92, 0 }, 497 { 0x013D, 0x95, 0 }, 498 { 0x013E, 0x96, 0 }, 499 { 0x0141, 0x9D, 0 }, 500 { 0x0142, 0x88, 0 }, 501 { 0x0143, 0xE3, 0 }, 502 { 0x0144, 0xE4, 0 }, 503 { 0x0147, 0xD5, 0 }, 504 { 0x0148, 0xE5, 0 }, 505 { 0x0150, 0x8A, 0 }, 506 { 0x0151, 0x8B, 0 }, 507 { 0x0154, 0xE8, 0 }, 508 { 0x0155, 0xEA, 0 }, 509 { 0x0158, 0xFC, 0 }, 510 { 0x0159, 0xFD, 0 }, 511 { 0x015A, 0x97, 0 }, 512 { 0x015B, 0x98, 0 }, 513 { 0x015E, 0xB8, 0 }, 514 { 0x015F, 0xAD, 0 }, 515 { 0x0160, 0xE6, 0 }, 516 { 0x0161, 0xE7, 0 }, 517 { 0x0162, 0xDD, 0 }, 518 { 0x0163, 0xEE, 0 }, 519 { 0x0164, 0x9B, 0 }, 520 { 0x0165, 0x9C, 0 }, 521 { 0x016E, 0xDE, 0 }, 522 { 0x016F, 0x85, 0 }, 523 { 0x0170, 0xEB, 0 }, 524 { 0x0171, 0xFB, 0 }, 525 { 0x0179, 0x8D, 0 }, 526 { 0x017A, 0xAB, 0 }, 527 { 0x017B, 0xBD, 0 }, 528 { 0x017C, 0xBE, 0 }, 529 { 0x017D, 0xA6, 0 }, 530 { 0x017E, 0xA7, 0 }, 531 { 0x02C7, 0xF3, 0 }, 532 { 0x02D8, 0xF4, 0 }, 533 { 0x02D9, 0xFA, 0 }, 534 { 0x02DB, 0xF2, 0 }, 535 { 0x02DD, 0xF1, 0 }, 536 { 0x2500, 0xC4, 0 }, 537 { 0x2502, 0xB3, 0 }, 538 { 0x250C, 0xDA, 0 }, 539 { 0x2510, 0xBF, 0 }, 540 { 0x2514, 0xC0, 0 }, 541 { 0x2518, 0xD9, 0 }, 542 { 0x251C, 0xC3, 0 }, 543 { 0x2524, 0xB4, 0 }, 544 { 0x252C, 0xC2, 0 }, 545 { 0x2534, 0xC1, 0 }, 546 { 0x253C, 0xC5, 0 }, 547 { 0x2550, 0xCD, 0 }, 548 { 0x2551, 0xBA, 0 }, 549 { 0x2554, 0xC9, 0 }, 550 { 0x2557, 0xBB, 0 }, 551 { 0x255A, 0xC8, 0 }, 552 { 0x255D, 0xBC, 0 }, 553 { 0x2560, 0xCC, 0 }, 554 { 0x2563, 0xB9, 0 }, 555 { 0x2566, 0xCB, 0 }, 556 { 0x2569, 0xCA, 0 }, 557 { 0x256C, 0xCE, 0 }, 558 { 0x2580, 0xDF, 0 }, 559 { 0x2584, 0xDC, 0 }, 560 { 0x2588, 0xDB, 0 }, 561 { 0x2591, 0xB0, 0 }, 562 { 0x2592, 0xB1, 0 }, 563 { 0x2593, 0xB2, 0 }, 564 { 0x25A0, 0xFE, 0 } 565}; 566 567/* ----------------------------------------------------------------------- */ 568 569static ImplByteConvertData const aImplIBM852ByteCvtData = 570{ 571 aImplIBM852ToUniTab, 572 NULL, 573 IBM852UNI_START, IBM852UNI_END, 574 NOTABUNI_START, NOTABUNI_END, 575 NULL, 576 NULL, 577 aImplIBM852ToCharTabEx, 578 NOTABCHAR_START, NOTABCHAR_END, 579 NOTABCHAR_START, NOTABCHAR_END, 580 IBM852TOCHARTABEX_COUNT 581}; 582 583/* ----------------------------------------------------------------------- */ 584 585static ImplTextEncodingData const aImplIBM852TextEncodingData 586 = { { &aImplIBM852ByteCvtData, 587 ImplCharToUnicode, 588 ImplUnicodeToChar, 589 NULL, 590 NULL, 591 NULL, 592 NULL, 593 NULL, 594 NULL }, 595 1, 596 1, 597 1, 598 238, 599 "iso8859-2", 600 "ibm852", 601 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 602 /* DOS/OS2, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ 603 604/* ======================================================================= */ 605 606/* IBM-855 */ 607/* Dos Standard CharSet for Cyrillic */ 608/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 609/* Convert-Tables: mappings/vendors/micsft/pc/cp855.txt from 04/24/96 Version 2.00 */ 610/* Last-Changes from us: */ 611 612/* ----------------------------------------------------------------------- */ 613 614#define IBM855UNI_START 0x80 615#define IBM855UNI_END 0xFF 616static sal_uInt16 const aImplIBM855ToUniTab[IBM855UNI_END - IBM855UNI_START + 1] = 617{ 618/* 0 1 2 3 4 5 6 7 */ 619/* 8 9 A B C D E F */ 620 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, /* 0x80 */ 621 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, /* 0x80 */ 622 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, /* 0x90 */ 623 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, /* 0x90 */ 624 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, /* 0xA0 */ 625 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, /* 0xA0 */ 626 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, /* 0xB0 */ 627 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, /* 0xB0 */ 628 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, /* 0xC0 */ 629 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */ 630 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, /* 0xD0 */ 631 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, /* 0xD0 */ 632 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, /* 0xE0 */ 633 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, /* 0xE0 */ 634 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, /* 0xF0 */ 635 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 /* 0xF0 */ 636}; 637 638/* ----------------------------------------------------------------------- */ 639 640#define IBM855CHAR_START 0x0401 641#define IBM855CHAR_END 0x045F 642static sal_uChar const aImplIBM855ToCharTab[IBM855CHAR_END - IBM855CHAR_START + 1] = 643{ 644/* 0 1 2 3 4 5 6 7 */ 645/* 8 9 A B C D E F */ 646 0x85, 0x81, 0x83, 0x87, 0x89, 0x8B, 0x8D, /* 0x0400 */ 647 0x8F, 0x91, 0x93, 0x95, 0x97, 0, 0x99, 0x9B, /* 0x0400 */ 648 0xA1, 0xA3, 0xEC, 0xAD, 0xA7, 0xA9, 0xEA, 0xF4, /* 0x0410 */ 649 0xB8, 0xBE, 0xC7, 0xD1, 0xD3, 0xD5, 0xD7, 0xDD, /* 0x0410 */ 650 0xE2, 0xE4, 0xE6, 0xE8, 0xAB, 0xB6, 0xA5, 0xFC, /* 0x0420 */ 651 0xF6, 0xFA, 0x9F, 0xF2, 0xEE, 0xF8, 0x9D, 0xE0, /* 0x0420 */ 652 0xA0, 0xA2, 0xEB, 0xAC, 0xA6, 0xA8, 0xE9, 0xF3, /* 0x0430 */ 653 0xB7, 0xBD, 0xC6, 0xD0, 0xD2, 0xD4, 0xD6, 0xD8, /* 0x0430 */ 654 0xE1, 0xE3, 0xE5, 0xE7, 0xAA, 0xB5, 0xA4, 0xFB, /* 0x0440 */ 655 0xF5, 0xF9, 0x9E, 0xF1, 0xED, 0xF7, 0x9C, 0xDE, /* 0x0440 */ 656 0, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8A, 0x8C, /* 0x0450 */ 657 0x8E, 0x90, 0x92, 0x94, 0x96, 0, 0x98, 0x9A, /* 0x0450 */ 658}; 659 660/* ----------------------------------------------------------------------- */ 661 662#define IBM855TOCHARTABEX_COUNT 36 663static ImplUniCharTabData const aImplIBM855ToCharTabEx[IBM855TOCHARTABEX_COUNT] = 664{ 665 { 0x00A0, 0xFF, 0 }, 666 { 0x00A4, 0xCF, 0 }, 667 { 0x00A7, 0xFD, 0 }, 668 { 0x00AB, 0xAE, 0 }, 669 { 0x00AD, 0xF0, 0 }, 670 { 0x00BB, 0xAF, 0 }, 671 { 0x2116, 0xEF, 0 }, 672 { 0x2500, 0xC4, 0 }, 673 { 0x2502, 0xB3, 0 }, 674 { 0x250C, 0xDA, 0 }, 675 { 0x2510, 0xBF, 0 }, 676 { 0x2514, 0xC0, 0 }, 677 { 0x2518, 0xD9, 0 }, 678 { 0x251C, 0xC3, 0 }, 679 { 0x2524, 0xB4, 0 }, 680 { 0x252C, 0xC2, 0 }, 681 { 0x2534, 0xC1, 0 }, 682 { 0x253C, 0xC5, 0 }, 683 { 0x2550, 0xCD, 0 }, 684 { 0x2551, 0xBA, 0 }, 685 { 0x2554, 0xC9, 0 }, 686 { 0x2557, 0xBB, 0 }, 687 { 0x255A, 0xC8, 0 }, 688 { 0x255D, 0xBC, 0 }, 689 { 0x2560, 0xCC, 0 }, 690 { 0x2563, 0xB9, 0 }, 691 { 0x2566, 0xCB, 0 }, 692 { 0x2569, 0xCA, 0 }, 693 { 0x256C, 0xCE, 0 }, 694 { 0x2580, 0xDF, 0 }, 695 { 0x2584, 0xDC, 0 }, 696 { 0x2588, 0xDB, 0 }, 697 { 0x2591, 0xB0, 0 }, 698 { 0x2592, 0xB1, 0 }, 699 { 0x2593, 0xB2, 0 }, 700 { 0x25A0, 0xFE, 0 } 701}; 702 703/* ----------------------------------------------------------------------- */ 704 705static ImplByteConvertData const aImplIBM855ByteCvtData = 706{ 707 aImplIBM855ToUniTab, 708 NULL, 709 IBM855UNI_START, IBM855UNI_END, 710 NOTABUNI_START, NOTABUNI_END, 711 aImplIBM855ToCharTab, 712 NULL, 713 aImplIBM855ToCharTabEx, 714 IBM855CHAR_START, IBM855CHAR_END, 715 NOTABCHAR_START, NOTABCHAR_END, 716 IBM855TOCHARTABEX_COUNT 717}; 718 719/* ----------------------------------------------------------------------- */ 720 721static ImplTextEncodingData const aImplIBM855TextEncodingData 722 = { { &aImplIBM855ByteCvtData, 723 ImplCharToUnicode, 724 ImplUnicodeToChar, 725 NULL, 726 NULL, 727 NULL, 728 NULL, 729 NULL, 730 NULL }, 731 1, 732 1, 733 1, 734 204, 735 "iso8859-5", 736 "iso-8859-5", 737 RTL_TEXTENCODING_INFO_ASCII }; 738 /* DOS/OS2, SCRIPT_CYRILLIC, pc code page 855, mac encoding 7 */ 739 740/* ======================================================================= */ 741 742/* IBM-857 */ 743/* Dos Standard CharSet for Turkish */ 744/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 745/* Convert-Tables: mappings/vendors/micsft/pc/cp857.txt from 04/24/96 Version 2.00 */ 746/* Last-Changes from us: */ 747 748/* ----------------------------------------------------------------------- */ 749 750#define IBM857UNI_START 0x80 751#define IBM857UNI_END 0xFF 752static sal_uInt16 const aImplIBM857ToUniTab[IBM857UNI_END - IBM857UNI_START + 1] = 753{ 754/* 0 1 2 3 4 5 6 7 */ 755/* 8 9 A B C D E F */ 756 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */ 757 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, /* 0x80 */ 758 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */ 759 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, /* 0x90 */ 760 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, /* 0xA0 */ 761 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */ 762 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, /* 0xB0 */ 763 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, /* 0xB0 */ 764 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, /* 0xC0 */ 765 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */ 766 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0, 0x00CD, 0x00CE, /* 0xD0 */ 767 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, /* 0xD0 */ 768 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0, /* 0xE0 */ 769 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, /* 0xE0 */ 770 0x00AD, 0x00B1, 0, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */ 771 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */ 772}; 773 774/* ----------------------------------------------------------------------- */ 775 776#define IBM857CHAR_START 0x00A0 777#define IBM857CHAR_END 0x00FF 778static sal_uChar const aImplIBM857ToCharTab[IBM857CHAR_END - IBM857CHAR_START + 1] = 779{ 780/* 0 1 2 3 4 5 6 7 */ 781/* 8 9 A B C D E F */ 782 0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, /* 0x00A0 */ 783 0xF9, 0xB8, 0xD1, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, /* 0x00A0 */ 784 0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, /* 0x00B0 */ 785 0xF7, 0xFB, 0xD0, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, /* 0x00B0 */ 786 0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */ 787 0xD4, 0x90, 0xD2, 0xD3, 0xDE, 0xD6, 0xD7, 0xD8, /* 0x00C0 */ 788 0, 0xA5, 0xE3, 0xE0, 0xE2, 0xE5, 0x99, 0xE8, /* 0x00D0 */ 789 0x9D, 0xEB, 0xE9, 0xEA, 0x9A, 0, 0, 0xE1, /* 0x00D0 */ 790 0x85, 0xA0, 0x83, 0xC6, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */ 791 0x8A, 0x82, 0x88, 0x89, 0xEC, 0xA1, 0x8C, 0x8B, /* 0x00E0 */ 792 0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* 0x00F0 */ 793 0x9B, 0x97, 0xA3, 0x96, 0x81, 0, 0, 0xED /* 0x00F0 */ 794}; 795 796/* ----------------------------------------------------------------------- */ 797 798#define IBM857TOCHARTABEX_COUNT 35 799static ImplUniCharTabData const aImplIBM857ToCharTabEx[IBM857TOCHARTABEX_COUNT] = 800{ 801 { 0x011E, 0xA6, 0 }, 802 { 0x011F, 0xA7, 0 }, 803 { 0x0130, 0x98, 0 }, 804 { 0x0131, 0x8D, 0 }, 805 { 0x015E, 0x9E, 0 }, 806 { 0x015F, 0x9F, 0 }, 807 { 0x2500, 0xC4, 0 }, 808 { 0x2502, 0xB3, 0 }, 809 { 0x250C, 0xDA, 0 }, 810 { 0x2510, 0xBF, 0 }, 811 { 0x2514, 0xC0, 0 }, 812 { 0x2518, 0xD9, 0 }, 813 { 0x251C, 0xC3, 0 }, 814 { 0x2524, 0xB4, 0 }, 815 { 0x252C, 0xC2, 0 }, 816 { 0x2534, 0xC1, 0 }, 817 { 0x253C, 0xC5, 0 }, 818 { 0x2550, 0xCD, 0 }, 819 { 0x2551, 0xBA, 0 }, 820 { 0x2554, 0xC9, 0 }, 821 { 0x2557, 0xBB, 0 }, 822 { 0x255A, 0xC8, 0 }, 823 { 0x255D, 0xBC, 0 }, 824 { 0x2560, 0xCC, 0 }, 825 { 0x2563, 0xB9, 0 }, 826 { 0x2566, 0xCB, 0 }, 827 { 0x2569, 0xCA, 0 }, 828 { 0x256C, 0xCE, 0 }, 829 { 0x2580, 0xDF, 0 }, 830 { 0x2584, 0xDC, 0 }, 831 { 0x2588, 0xDB, 0 }, 832 { 0x2591, 0xB0, 0 }, 833 { 0x2592, 0xB1, 0 }, 834 { 0x2593, 0xB2, 0 }, 835 { 0x25A0, 0xFE, 0 } 836}; 837 838/* ----------------------------------------------------------------------- */ 839 840static ImplByteConvertData const aImplIBM857ByteCvtData = 841{ 842 aImplIBM857ToUniTab, 843 NULL, 844 IBM857UNI_START, IBM857UNI_END, 845 NOTABUNI_START, NOTABUNI_END, 846 aImplIBM857ToCharTab, 847 NULL, 848 aImplIBM857ToCharTabEx, 849 IBM857CHAR_START, IBM857CHAR_END, 850 NOTABCHAR_START, NOTABCHAR_END, 851 IBM857TOCHARTABEX_COUNT 852}; 853 854/* ----------------------------------------------------------------------- */ 855 856static ImplTextEncodingData const aImplIBM857TextEncodingData 857 = { { &aImplIBM857ByteCvtData, 858 ImplCharToUnicode, 859 ImplUnicodeToChar, 860 NULL, 861 NULL, 862 NULL, 863 NULL, 864 NULL, 865 NULL }, 866 1, 867 1, 868 1, 869 162, 870 "iso8859-9", 871 "iso-8859-9", 872 RTL_TEXTENCODING_INFO_ASCII }; 873 /* DOS/OS2, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ 874 875/* ======================================================================= */ 876 877/* IBM-866 */ 878/* Dos Standard CharSet for CyrillicRussian */ 879/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 880/* Convert-Tables: mappings/vendors/micsft/pc/cp866.txt from 04/24/96 Version 2.00 */ 881/* Last-Changes from us: */ 882 883/* ----------------------------------------------------------------------- */ 884 885#define IBM866UNI_START 0x80 886#define IBM866UNI_END 0xFF 887static sal_uInt16 const aImplIBM866ToUniTab[IBM866UNI_END - IBM866UNI_START + 1] = 888{ 889/* 0 1 2 3 4 5 6 7 */ 890/* 8 9 A B C D E F */ 891 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */ 892 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */ 893 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */ 894 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */ 895 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xA0 */ 896 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xA0 */ 897 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */ 898 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */ 899 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */ 900 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */ 901 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */ 902 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */ 903 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xE0 */ 904 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xE0 */ 905 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, /* 0xF0 */ 906 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 /* 0xF0 */ 907}; 908 909/* ----------------------------------------------------------------------- */ 910 911#define IBM866CHAR_START 0x0401 912#define IBM866CHAR_END 0x045E 913static sal_uChar const aImplIBM866ToCharTab[IBM866CHAR_END - IBM866CHAR_START + 1] = 914{ 915/* 0 1 2 3 4 5 6 7 */ 916/* 8 9 A B C D E F */ 917 0xF0, 0, 0, 0xF2, 0, 0, 0xF4, /* 0x0400 */ 918 0, 0, 0, 0, 0, 0, 0xF6, 0, /* 0x0400 */ 919 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */ 920 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */ 921 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */ 922 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */ 923 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0430 */ 924 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0430 */ 925 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0440 */ 926 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0440 */ 927 0, 0xF1, 0, 0, 0xF3, 0, 0, 0xF5, /* 0x0450 */ 928 0, 0, 0, 0, 0, 0, 0xF7 /* 0x0450 */ 929}; 930 931/* ----------------------------------------------------------------------- */ 932 933#define IBM866TOCHARTABEX_COUNT 56 934static ImplUniCharTabData const aImplIBM866ToCharTabEx[IBM866TOCHARTABEX_COUNT] = 935{ 936 { 0x00A0, 0xFF, 0 }, 937 { 0x00A4, 0xFD, 0 }, 938 { 0x00B0, 0xF8, 0 }, 939 { 0x00B7, 0xFA, 0 }, 940 { 0x2116, 0xFC, 0 }, 941 { 0x2219, 0xF9, 0 }, 942 { 0x221A, 0xFB, 0 }, 943 { 0x2500, 0xC4, 0 }, 944 { 0x2502, 0xB3, 0 }, 945 { 0x250C, 0xDA, 0 }, 946 { 0x2510, 0xBF, 0 }, 947 { 0x2514, 0xC0, 0 }, 948 { 0x2518, 0xD9, 0 }, 949 { 0x251C, 0xC3, 0 }, 950 { 0x2524, 0xB4, 0 }, 951 { 0x252C, 0xC2, 0 }, 952 { 0x2534, 0xC1, 0 }, 953 { 0x253C, 0xC5, 0 }, 954 { 0x2550, 0xCD, 0 }, 955 { 0x2551, 0xBA, 0 }, 956 { 0x2552, 0xD5, 0 }, 957 { 0x2553, 0xD6, 0 }, 958 { 0x2554, 0xC9, 0 }, 959 { 0x2555, 0xB8, 0 }, 960 { 0x2556, 0xB7, 0 }, 961 { 0x2557, 0xBB, 0 }, 962 { 0x2558, 0xD4, 0 }, 963 { 0x2559, 0xD3, 0 }, 964 { 0x255A, 0xC8, 0 }, 965 { 0x255B, 0xBE, 0 }, 966 { 0x255C, 0xBD, 0 }, 967 { 0x255D, 0xBC, 0 }, 968 { 0x255E, 0xC6, 0 }, 969 { 0x255F, 0xC7, 0 }, 970 { 0x2560, 0xCC, 0 }, 971 { 0x2561, 0xB5, 0 }, 972 { 0x2562, 0xB6, 0 }, 973 { 0x2563, 0xB9, 0 }, 974 { 0x2564, 0xD1, 0 }, 975 { 0x2565, 0xD2, 0 }, 976 { 0x2566, 0xCB, 0 }, 977 { 0x2567, 0xCF, 0 }, 978 { 0x2568, 0xD0, 0 }, 979 { 0x2569, 0xCA, 0 }, 980 { 0x256A, 0xD8, 0 }, 981 { 0x256B, 0xD7, 0 }, 982 { 0x256C, 0xCE, 0 }, 983 { 0x2580, 0xDF, 0 }, 984 { 0x2584, 0xDC, 0 }, 985 { 0x2588, 0xDB, 0 }, 986 { 0x258C, 0xDD, 0 }, 987 { 0x2590, 0xDE, 0 }, 988 { 0x2591, 0xB0, 0 }, 989 { 0x2592, 0xB1, 0 }, 990 { 0x2593, 0xB2, 0 }, 991 { 0x25A0, 0xFE, 0 } 992}; 993 994/* ----------------------------------------------------------------------- */ 995 996static ImplByteConvertData const aImplIBM866ByteCvtData = 997{ 998 aImplIBM866ToUniTab, 999 NULL, 1000 IBM866UNI_START, IBM866UNI_END, 1001 NOTABUNI_START, NOTABUNI_END, 1002 aImplIBM866ToCharTab, 1003 NULL, 1004 aImplIBM866ToCharTabEx, 1005 IBM866CHAR_START, IBM866CHAR_END, 1006 NOTABCHAR_START, NOTABCHAR_END, 1007 IBM866TOCHARTABEX_COUNT 1008}; 1009 1010/* ----------------------------------------------------------------------- */ 1011 1012static ImplTextEncodingData const aImplIBM866TextEncodingData 1013 = { { &aImplIBM866ByteCvtData, 1014 ImplCharToUnicode, 1015 ImplUnicodeToChar, 1016 NULL, 1017 NULL, 1018 NULL, 1019 NULL, 1020 NULL, 1021 NULL }, 1022 1, 1023 1, 1024 1, 1025 204, 1026 "iso8859-5", 1027 "cp866", 1028 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 1029 /* DOS/OS2, SCRIPT_LATIN, pc code page 866, mac encoding 7 */ 1030 1031/* ======================================================================= */ 1032 1033/* IBM-869 */ 1034/* Dos Standard CharSet for Greek2 */ 1035/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 1036/* Convert-Tables: mappings/vendors/micsft/pc/cp869.txt from 04/24/96 Version 2.00 */ 1037/* Last-Changes from us: */ 1038 1039/* ----------------------------------------------------------------------- */ 1040 1041#define IBM869UNI_START 0x86 1042#define IBM869UNI_END 0xFF 1043static sal_uInt16 const aImplIBM869ToUniTab[IBM869UNI_END - IBM869UNI_START + 1] = 1044{ 1045/* 0 1 2 3 4 5 6 7 */ 1046/* 8 9 A B C D E F */ 1047 0x0386, 0, /* 0x80 */ 1048 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, /* 0x80 */ 1049 0x038A, 0x03AA, 0x038C, 0, 0, 0x038E, 0x03AB, 0x00A9, /* 0x90 */ 1050 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, /* 0x90 */ 1051 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, /* 0xA0 */ 1052 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, /* 0xA0 */ 1053 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, /* 0xB0 */ 1054 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, /* 0xB0 */ 1055 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1, /* 0xC0 */ 1056 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, /* 0xC0 */ 1057 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, /* 0xD0 */ 1058 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, /* 0xD0 */ 1059 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, /* 0xE0 */ 1060 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, /* 0xE0 */ 1061 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, /* 0xF0 */ 1062 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 /* 0xF0 */ 1063}; 1064 1065/* ----------------------------------------------------------------------- */ 1066 1067#define IBM869CHAR_START 0x0384 1068#define IBM869CHAR_END 0x03CE 1069static sal_uChar const aImplIBM869ToCharTab[IBM869CHAR_END - IBM869CHAR_START + 1] = 1070{ 1071/* 0 1 2 3 4 5 6 7 */ 1072/* 8 9 A B C D E F */ 1073 0xEF, 0xF7, 0x86, 0, /* 0x0380 */ 1074 0x8D, 0x8F, 0x90, 0, 0x92, 0, 0x95, 0x98, /* 0x0380 */ 1075 0xA1, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, /* 0x0390 */ 1076 0xAC, 0xAD, 0xB5, 0xB6, 0xB7, 0xB8, 0xBD, 0xBE, /* 0x0390 */ 1077 0xC6, 0xC7, 0, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, /* 0x03A0 */ 1078 0xD4, 0xD5, 0x91, 0x96, 0x9B, 0x9D, 0x9E, 0x9F, /* 0x03A0 */ 1079 0xFC, 0xD6, 0xD7, 0xD8, 0xDD, 0xDE, 0xE0, 0xE1, /* 0x03B0 */ 1080 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, /* 0x03B0 */ 1081 0xEA, 0xEB, 0xED, 0xEC, 0xEE, 0xF2, 0xF3, 0xF4, /* 0x03C0 */ 1082 0xF6, 0xFA, 0xA0, 0xFB, 0xA2, 0xA3, 0xFD /* 0x03C0 */ 1083}; 1084 1085/* ----------------------------------------------------------------------- */ 1086 1087#define IBM869TOCHARTABEX_COUNT 48 1088static ImplUniCharTabData const aImplIBM869ToCharTabEx[IBM869TOCHARTABEX_COUNT] = 1089{ 1090 { 0x00A0, 0xFF, 0 }, 1091 { 0x00A3, 0x9C, 0 }, 1092 { 0x00A6, 0x8A, 0 }, 1093 { 0x00A7, 0xF5, 0 }, 1094 { 0x00A8, 0xF9, 0 }, 1095 { 0x00A9, 0x97, 0 }, 1096 { 0x00AB, 0xAE, 0 }, 1097 { 0x00AC, 0x89, 0 }, 1098 { 0x00AD, 0xF0, 0 }, 1099 { 0x00B0, 0xF8, 0 }, 1100 { 0x00B1, 0xF1, 0 }, 1101 { 0x00B2, 0x99, 0 }, 1102 { 0x00B3, 0x9A, 0 }, 1103 { 0x00B7, 0x88, 0 }, 1104 { 0x00BB, 0xAF, 0 }, 1105 { 0x00BD, 0xAB, 0 }, 1106 { 0x2015, 0x8E, 0 }, 1107 { 0x2018, 0x8B, 0 }, 1108 { 0x2019, 0x8C, 0 }, 1109 { 0x2500, 0xC4, 0 }, 1110 { 0x2502, 0xB3, 0 }, 1111 { 0x250C, 0xDA, 0 }, 1112 { 0x2510, 0xBF, 0 }, 1113 { 0x2514, 0xC0, 0 }, 1114 { 0x2518, 0xD9, 0 }, 1115 { 0x251C, 0xC3, 0 }, 1116 { 0x2524, 0xB4, 0 }, 1117 { 0x252C, 0xC2, 0 }, 1118 { 0x2534, 0xC1, 0 }, 1119 { 0x253C, 0xC5, 0 }, 1120 { 0x2550, 0xCD, 0 }, 1121 { 0x2551, 0xBA, 0 }, 1122 { 0x2554, 0xC9, 0 }, 1123 { 0x2557, 0xBB, 0 }, 1124 { 0x255A, 0xC8, 0 }, 1125 { 0x255D, 0xBC, 0 }, 1126 { 0x2560, 0xCC, 0 }, 1127 { 0x2563, 0xB9, 0 }, 1128 { 0x2566, 0xCB, 0 }, 1129 { 0x2569, 0xCA, 0 }, 1130 { 0x256C, 0xCE, 0 }, 1131 { 0x2580, 0xDF, 0 }, 1132 { 0x2584, 0xDC, 0 }, 1133 { 0x2588, 0xDB, 0 }, 1134 { 0x2591, 0xB0, 0 }, 1135 { 0x2592, 0xB1, 0 }, 1136 { 0x2593, 0xB2, 0 }, 1137 { 0x25A0, 0xFE, 0 } 1138}; 1139 1140/* ----------------------------------------------------------------------- */ 1141 1142static ImplByteConvertData const aImplIBM869ByteCvtData = 1143{ 1144 aImplIBM869ToUniTab, 1145 NULL, 1146 IBM869UNI_START, IBM869UNI_END, 1147 NOTABUNI_START, NOTABUNI_END, 1148 aImplIBM869ToCharTab, 1149 NULL, 1150 aImplIBM869ToCharTabEx, 1151 IBM869CHAR_START, IBM869CHAR_END, 1152 NOTABCHAR_START, NOTABCHAR_END, 1153 IBM869TOCHARTABEX_COUNT 1154}; 1155 1156/* ----------------------------------------------------------------------- */ 1157 1158static ImplTextEncodingData const aImplIBM869TextEncodingData 1159 = { { &aImplIBM869ByteCvtData, 1160 ImplCharToUnicode, 1161 ImplUnicodeToChar, 1162 NULL, 1163 NULL, 1164 NULL, 1165 NULL, 1166 NULL, 1167 NULL }, 1168 1, 1169 1, 1170 1, 1171 161, 1172 "iso8859-7", 1173 "iso-8859-7", 1174 RTL_TEXTENCODING_INFO_ASCII }; 1175 /* DOS/OS2, SCRIPT_LATIN, pc code page 869, mac encoding 6 */ 1176 1177/* ======================================================================= */ 1178 1179/* MS-1250 */ 1180/* Windows CodePage for Eastern European (WinLatin2) */ 1181/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 1182/* Convert-Tables: mappings/vendors/micsft/windows/cp1250.txt from 04/15/98 Version 2.01 */ 1183/* Last-Changes from us: */ 1184 1185/* ----------------------------------------------------------------------- */ 1186 1187#define MS1250UNI_START 0x80 1188#define MS1250UNI_END 0xFF 1189static sal_uInt16 const aImplMS1250ToUniTab[MS1250UNI_END - MS1250UNI_START + 1] = 1190{ 1191/* 0 1 2 3 4 5 6 7 */ 1192/* 8 9 A B C D E F */ 1193 0x20AC, 0, 0x201A, 0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */ 1194 0, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, /* 0x80 */ 1195 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */ 1196 0, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, /* 0x90 */ 1197 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, /* 0xA0 */ 1198 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, /* 0xA0 */ 1199 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */ 1200 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, /* 0xB0 */ 1201 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* 0xC0 */ 1202 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* 0xC0 */ 1203 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* 0xD0 */ 1204 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* 0xD0 */ 1205 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* 0xE0 */ 1206 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* 0xE0 */ 1207 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* 0xF0 */ 1208 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 /* 0xF0 */ 1209}; 1210 1211/* ----------------------------------------------------------------------- */ 1212 1213#define MS1250TOCHARTABEX_COUNT 123 1214static ImplUniCharTabData const aImplMS1250ToCharTabEx[MS1250TOCHARTABEX_COUNT] = 1215{ 1216 { 0x00A0, 0xA0, 0 }, 1217 { 0x00A4, 0xA4, 0 }, 1218 { 0x00A6, 0xA6, 0 }, 1219 { 0x00A7, 0xA7, 0 }, 1220 { 0x00A8, 0xA8, 0 }, 1221 { 0x00A9, 0xA9, 0 }, 1222 { 0x00AB, 0xAB, 0 }, 1223 { 0x00AC, 0xAC, 0 }, 1224 { 0x00AD, 0xAD, 0 }, 1225 { 0x00AE, 0xAE, 0 }, 1226 { 0x00B0, 0xB0, 0 }, 1227 { 0x00B1, 0xB1, 0 }, 1228 { 0x00B4, 0xB4, 0 }, 1229 { 0x00B5, 0xB5, 0 }, 1230 { 0x00B6, 0xB6, 0 }, 1231 { 0x00B7, 0xB7, 0 }, 1232 { 0x00B8, 0xB8, 0 }, 1233 { 0x00BB, 0xBB, 0 }, 1234 { 0x00C1, 0xC1, 0 }, 1235 { 0x00C2, 0xC2, 0 }, 1236 { 0x00C4, 0xC4, 0 }, 1237 { 0x00C7, 0xC7, 0 }, 1238 { 0x00C9, 0xC9, 0 }, 1239 { 0x00CB, 0xCB, 0 }, 1240 { 0x00CD, 0xCD, 0 }, 1241 { 0x00CE, 0xCE, 0 }, 1242 { 0x00D3, 0xD3, 0 }, 1243 { 0x00D4, 0xD4, 0 }, 1244 { 0x00D6, 0xD6, 0 }, 1245 { 0x00D7, 0xD7, 0 }, 1246 { 0x00DA, 0xDA, 0 }, 1247 { 0x00DC, 0xDC, 0 }, 1248 { 0x00DD, 0xDD, 0 }, 1249 { 0x00DF, 0xDF, 0 }, 1250 { 0x00E1, 0xE1, 0 }, 1251 { 0x00E2, 0xE2, 0 }, 1252 { 0x00E4, 0xE4, 0 }, 1253 { 0x00E7, 0xE7, 0 }, 1254 { 0x00E9, 0xE9, 0 }, 1255 { 0x00EB, 0xEB, 0 }, 1256 { 0x00ED, 0xED, 0 }, 1257 { 0x00EE, 0xEE, 0 }, 1258 { 0x00F3, 0xF3, 0 }, 1259 { 0x00F4, 0xF4, 0 }, 1260 { 0x00F6, 0xF6, 0 }, 1261 { 0x00F7, 0xF7, 0 }, 1262 { 0x00FA, 0xFA, 0 }, 1263 { 0x00FC, 0xFC, 0 }, 1264 { 0x00FD, 0xFD, 0 }, 1265 { 0x0102, 0xC3, 0 }, 1266 { 0x0103, 0xE3, 0 }, 1267 { 0x0104, 0xA5, 0 }, 1268 { 0x0105, 0xB9, 0 }, 1269 { 0x0106, 0xC6, 0 }, 1270 { 0x0107, 0xE6, 0 }, 1271 { 0x010C, 0xC8, 0 }, 1272 { 0x010D, 0xE8, 0 }, 1273 { 0x010E, 0xCF, 0 }, 1274 { 0x010F, 0xEF, 0 }, 1275 { 0x0110, 0xD0, 0 }, 1276 { 0x0111, 0xF0, 0 }, 1277 { 0x0118, 0xCA, 0 }, 1278 { 0x0119, 0xEA, 0 }, 1279 { 0x011A, 0xCC, 0 }, 1280 { 0x011B, 0xEC, 0 }, 1281 { 0x0139, 0xC5, 0 }, 1282 { 0x013A, 0xE5, 0 }, 1283 { 0x013D, 0xBC, 0 }, 1284 { 0x013E, 0xBE, 0 }, 1285 { 0x0141, 0xA3, 0 }, 1286 { 0x0142, 0xB3, 0 }, 1287 { 0x0143, 0xD1, 0 }, 1288 { 0x0144, 0xF1, 0 }, 1289 { 0x0147, 0xD2, 0 }, 1290 { 0x0148, 0xF2, 0 }, 1291 { 0x0150, 0xD5, 0 }, 1292 { 0x0151, 0xF5, 0 }, 1293 { 0x0154, 0xC0, 0 }, 1294 { 0x0155, 0xE0, 0 }, 1295 { 0x0158, 0xD8, 0 }, 1296 { 0x0159, 0xF8, 0 }, 1297 { 0x015A, 0x8C, 0 }, 1298 { 0x015B, 0x9C, 0 }, 1299 { 0x015E, 0xAA, 0 }, 1300 { 0x015F, 0xBA, 0 }, 1301 { 0x0160, 0x8A, 0 }, 1302 { 0x0161, 0x9A, 0 }, 1303 { 0x0162, 0xDE, 0 }, 1304 { 0x0163, 0xFE, 0 }, 1305 { 0x0164, 0x8D, 0 }, 1306 { 0x0165, 0x9D, 0 }, 1307 { 0x016E, 0xD9, 0 }, 1308 { 0x016F, 0xF9, 0 }, 1309 { 0x0170, 0xDB, 0 }, 1310 { 0x0171, 0xFB, 0 }, 1311 { 0x0179, 0x8F, 0 }, 1312 { 0x017A, 0x9F, 0 }, 1313 { 0x017B, 0xAF, 0 }, 1314 { 0x017C, 0xBF, 0 }, 1315 { 0x017D, 0x8E, 0 }, 1316 { 0x017E, 0x9E, 0 }, 1317 { 0x02C7, 0xA1, 0 }, 1318 { 0x02D8, 0xA2, 0 }, 1319 { 0x02D9, 0xFF, 0 }, 1320 { 0x02DB, 0xB2, 0 }, 1321 { 0x02DD, 0xBD, 0 }, 1322 { 0x2013, 0x96, 0 }, 1323 { 0x2014, 0x97, 0 }, 1324 { 0x2018, 0x91, 0 }, 1325 { 0x2019, 0x92, 0 }, 1326 { 0x201A, 0x82, 0 }, 1327 { 0x201C, 0x93, 0 }, 1328 { 0x201D, 0x94, 0 }, 1329 { 0x201E, 0x84, 0 }, 1330 { 0x2020, 0x86, 0 }, 1331 { 0x2021, 0x87, 0 }, 1332 { 0x2022, 0x95, 0 }, 1333 { 0x2026, 0x85, 0 }, 1334 { 0x2030, 0x89, 0 }, 1335 { 0x2039, 0x8B, 0 }, 1336 { 0x203A, 0x9B, 0 }, 1337 { 0x20AC, 0x80, 0 }, 1338 { 0x2122, 0x99, 0 } 1339}; 1340 1341/* ----------------------------------------------------------------------- */ 1342 1343static ImplByteConvertData const aImplMS1250ByteCvtData = 1344{ 1345 aImplMS1250ToUniTab, 1346 NULL, 1347 MS1250UNI_START, MS1250UNI_END, 1348 NOTABUNI_START, NOTABUNI_END, 1349 NULL, 1350 NULL, 1351 aImplMS1250ToCharTabEx, 1352 NOTABCHAR_START, NOTABCHAR_END, 1353 NOTABCHAR_START, NOTABCHAR_END, 1354 MS1250TOCHARTABEX_COUNT 1355}; 1356 1357/* ----------------------------------------------------------------------- */ 1358 1359static ImplTextEncodingData const aImplMS1250TextEncodingData 1360 = { { &aImplMS1250ByteCvtData, 1361 ImplCharToUnicode, 1362 ImplUnicodeToChar, 1363 NULL, 1364 NULL, 1365 NULL, 1366 NULL, 1367 NULL, 1368 NULL }, 1369 1, 1370 1, 1371 1, 1372 238, 1373 "iso8859-2", 1374 "windows-1250", 1375 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 1376 /* WIN, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ 1377 1378/* ======================================================================= */ 1379 1380/* MS-1251 */ 1381/* Windows CodePage for Cyrillic */ 1382/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 1383/* Convert-Tables: mappings/vendors/micsft/windows/cp1251.txt from 04/15/98 Version 2.01 */ 1384/* Last-Changes from us: */ 1385 1386/* ----------------------------------------------------------------------- */ 1387 1388#define MS1251UNI_START 0x80 1389#define MS1251UNI_END 0xFF 1390static sal_uInt16 const aImplMS1251ToUniTab[MS1251UNI_END - MS1251UNI_START + 1] = 1391{ 1392/* 0 1 2 3 4 5 6 7 */ 1393/* 8 9 A B C D E F */ 1394 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */ 1395 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, /* 0x80 */ 1396 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */ 1397 0, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, /* 0x90 */ 1398 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, /* 0xA0 */ 1399 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, /* 0xA0 */ 1400 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */ 1401 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, /* 0xB0 */ 1402 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xC0 */ 1403 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xC0 */ 1404 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xD0 */ 1405 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xD0 */ 1406 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */ 1407 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */ 1408 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */ 1409 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F /* 0xF0 */ 1410}; 1411 1412/* ----------------------------------------------------------------------- */ 1413 1414#define MS1251CHAR_START 0x0401 1415#define MS1251CHAR_END 0x045F 1416static sal_uChar const aImplMS1251ToCharTab[MS1251CHAR_END - MS1251CHAR_START + 1] = 1417{ 1418/* 0 1 2 3 4 5 6 7 */ 1419/* 8 9 A B C D E F */ 1420 0xA8, 0x80, 0x81, 0xAA, 0xBD, 0xB2, 0xAF, /* 0x0400 */ 1421 0xA3, 0x8A, 0x8C, 0x8E, 0x8D, 0, 0xA1, 0x8F, /* 0x0400 */ 1422 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0410 */ 1423 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0410 */ 1424 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0420 */ 1425 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x0420 */ 1426 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */ 1427 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */ 1428 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */ 1429 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, /* 0x0440 */ 1430 0, 0xB8, 0x90, 0x83, 0xBA, 0xBE, 0xB3, 0xBF, /* 0x0450 */ 1431 0xBC, 0x9A, 0x9C, 0x9E, 0x9D, 0, 0xA2, 0x9F /* 0x0450 */ 1432}; 1433 1434/* ----------------------------------------------------------------------- */ 1435 1436#define MS1251TOCHARTABEX_COUNT 35 1437static ImplUniCharTabData const aImplMS1251ToCharTabEx[MS1251TOCHARTABEX_COUNT] = 1438{ 1439 { 0x00A0, 0xA0, 0 }, 1440 { 0x00A4, 0xA4, 0 }, 1441 { 0x00A6, 0xA6, 0 }, 1442 { 0x00A7, 0xA7, 0 }, 1443 { 0x00A9, 0xA9, 0 }, 1444 { 0x00AB, 0xAB, 0 }, 1445 { 0x00AC, 0xAC, 0 }, 1446 { 0x00AD, 0xAD, 0 }, 1447 { 0x00AE, 0xAE, 0 }, 1448 { 0x00B0, 0xB0, 0 }, 1449 { 0x00B1, 0xB1, 0 }, 1450 { 0x00B5, 0xB5, 0 }, 1451 { 0x00B6, 0xB6, 0 }, 1452 { 0x00B7, 0xB7, 0 }, 1453 { 0x00BB, 0xBB, 0 }, 1454 { 0x0490, 0xA5, 0 }, 1455 { 0x0491, 0xB4, 0 }, 1456 { 0x2013, 0x96, 0 }, 1457 { 0x2014, 0x97, 0 }, 1458 { 0x2018, 0x91, 0 }, 1459 { 0x2019, 0x92, 0 }, 1460 { 0x201A, 0x82, 0 }, 1461 { 0x201C, 0x93, 0 }, 1462 { 0x201D, 0x94, 0 }, 1463 { 0x201E, 0x84, 0 }, 1464 { 0x2020, 0x86, 0 }, 1465 { 0x2021, 0x87, 0 }, 1466 { 0x2022, 0x95, 0 }, 1467 { 0x2026, 0x85, 0 }, 1468 { 0x2030, 0x89, 0 }, 1469 { 0x2039, 0x8B, 0 }, 1470 { 0x203A, 0x9B, 0 }, 1471 { 0x20AC, 0x88, 0 }, 1472 { 0x2116, 0xB9, 0 }, 1473 { 0x2122, 0x99, 0 } 1474}; 1475 1476/* ----------------------------------------------------------------------- */ 1477 1478static ImplByteConvertData const aImplMS1251ByteCvtData = 1479{ 1480 aImplMS1251ToUniTab, 1481 NULL, 1482 MS1251UNI_START, MS1251UNI_END, 1483 NOTABUNI_START, NOTABUNI_END, 1484 aImplMS1251ToCharTab, 1485 NULL, 1486 aImplMS1251ToCharTabEx, 1487 MS1251CHAR_START, MS1251CHAR_END, 1488 NOTABCHAR_START, NOTABCHAR_END, 1489 MS1251TOCHARTABEX_COUNT 1490}; 1491 1492/* ----------------------------------------------------------------------- */ 1493 1494static ImplTextEncodingData const aImplMS1251TextEncodingData 1495 = { { &aImplMS1251ByteCvtData, 1496 ImplCharToUnicode, 1497 ImplUnicodeToChar, 1498 NULL, 1499 NULL, 1500 NULL, 1501 NULL, 1502 NULL, 1503 NULL }, 1504 1, 1505 1, 1506 1, 1507 204, 1508 "iso8859-5", 1509 "windows-1251", 1510 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 1511 /* WIN, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ 1512 1513/* ======================================================================= */ 1514 1515/* MS-1253 */ 1516/* Windows Standard CharSet for Greek */ 1517/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 1518/* Convert-Tables: mappings/vendors/micsft/windows/cp1253.txt from 04/15/98 Version 2.01 */ 1519/* Last-Changes from us: */ 1520 1521/* ----------------------------------------------------------------------- */ 1522 1523#define MS1253UNI_START 0x80 1524#define MS1253UNI_END 0xFF 1525static sal_uInt16 const aImplMS1253ToUniTab[MS1253UNI_END - MS1253UNI_START + 1] = 1526{ 1527/* 0 1 2 3 4 5 6 7 */ 1528/* 8 9 A B C D E F */ 1529 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */ 1530 0, 0x2030, 0, 0x2039, 0, 0, 0, 0, /* 0x80 */ 1531 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */ 1532 0, 0x2122, 0, 0x203A, 0, 0, 0, 0, /* 0x90 */ 1533 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */ 1534 0x00A8, 0x00A9, 0, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, /* 0xA0 */ 1535 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */ 1536 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* 0xB0 */ 1537 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */ 1538 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */ 1539 0x03A0, 0x03A1, 0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, /* 0xD0 */ 1540 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, /* 0xD0 */ 1541 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */ 1542 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */ 1543 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, /* 0xF0 */ 1544 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0 /* 0xF0 */ 1545}; 1546 1547/* ----------------------------------------------------------------------- */ 1548 1549#define MS1253CHAR_START 0x0384 1550#define MS1253CHAR_END 0x03CE 1551static sal_uChar const aImplMS1253ToCharTab[MS1253CHAR_END - MS1253CHAR_START + 1] = 1552{ 1553/* 0 1 2 3 4 5 6 7 */ 1554/* 8 9 A B C D E F */ 1555 0xB4, 0xA1, 0xA2, 0, /* 0x0380 */ 1556 0xB8, 0xB9, 0xBA, 0, 0xBC, 0, 0xBE, 0xBF, /* 0x0380 */ 1557 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0390 */ 1558 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0390 */ 1559 0xD0, 0xD1, 0, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x03A0 */ 1560 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x03A0 */ 1561 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x03B0 */ 1562 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x03B0 */ 1563 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x03C0 */ 1564 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE /* 0x03C0 */ 1565}; 1566 1567/* ----------------------------------------------------------------------- */ 1568 1569#define MS1253TOCHARTABEX_COUNT 40 1570static ImplUniCharTabData const aImplMS1253ToCharTabEx[MS1253TOCHARTABEX_COUNT] = 1571{ 1572 { 0x00A0, 0xA0, 0 }, 1573 { 0x00A3, 0xA3, 0 }, 1574 { 0x00A4, 0xA4, 0 }, 1575 { 0x00A5, 0xA5, 0 }, 1576 { 0x00A6, 0xA6, 0 }, 1577 { 0x00A7, 0xA7, 0 }, 1578 { 0x00A8, 0xA8, 0 }, 1579 { 0x00A9, 0xA9, 0 }, 1580 { 0x00AB, 0xAB, 0 }, 1581 { 0x00AC, 0xAC, 0 }, 1582 { 0x00AD, 0xAD, 0 }, 1583 { 0x00AE, 0xAE, 0 }, 1584 { 0x00B0, 0xB0, 0 }, 1585 { 0x00B1, 0xB1, 0 }, 1586 { 0x00B2, 0xB2, 0 }, 1587 { 0x00B3, 0xB3, 0 }, 1588 { 0x00B5, 0xB5, 0 }, 1589 { 0x00B6, 0xB6, 0 }, 1590 { 0x00B7, 0xB7, 0 }, 1591 { 0x00BB, 0xBB, 0 }, 1592 { 0x00BD, 0xBD, 0 }, 1593 { 0x0192, 0x83, 0 }, 1594 { 0x2013, 0x96, 0 }, 1595 { 0x2014, 0x97, 0 }, 1596 { 0x2015, 0xAF, 0 }, 1597 { 0x2018, 0x91, 0 }, 1598 { 0x2019, 0x92, 0 }, 1599 { 0x201A, 0x82, 0 }, 1600 { 0x201C, 0x93, 0 }, 1601 { 0x201D, 0x94, 0 }, 1602 { 0x201E, 0x84, 0 }, 1603 { 0x2020, 0x86, 0 }, 1604 { 0x2021, 0x87, 0 }, 1605 { 0x2022, 0x95, 0 }, 1606 { 0x2026, 0x85, 0 }, 1607 { 0x2030, 0x89, 0 }, 1608 { 0x2039, 0x8B, 0 }, 1609 { 0x203A, 0x9B, 0 }, 1610 { 0x20AC, 0x80, 0 }, 1611 { 0x2122, 0x99, 0 } 1612}; 1613 1614/* ----------------------------------------------------------------------- */ 1615 1616static ImplByteConvertData const aImplMS1253ByteCvtData = 1617{ 1618 aImplMS1253ToUniTab, 1619 NULL, 1620 MS1253UNI_START, MS1253UNI_END, 1621 NOTABUNI_START, NOTABUNI_END, 1622 aImplMS1253ToCharTab, 1623 NULL, 1624 aImplMS1253ToCharTabEx, 1625 MS1253CHAR_START, MS1253CHAR_END, 1626 NOTABCHAR_START, NOTABCHAR_END, 1627 MS1253TOCHARTABEX_COUNT 1628}; 1629 1630/* ----------------------------------------------------------------------- */ 1631 1632static ImplTextEncodingData const aImplMS1253TextEncodingData 1633 = { { &aImplMS1253ByteCvtData, 1634 ImplCharToUnicode, 1635 ImplUnicodeToChar, 1636 NULL, 1637 NULL, 1638 NULL, 1639 NULL, 1640 NULL, 1641 NULL }, 1642 1, 1643 1, 1644 1, 1645 161, 1646 "iso8859-7", 1647 "windows-1253", 1648 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 1649 /* WIN, SCRIPT_GREEK, pc code page 869, mac encoding 6 */ 1650 1651/* ======================================================================= */ 1652 1653/* MS-1254 */ 1654/* Windows Standard CharSet for Turkish */ 1655/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 1656/* Convert-Tables: mappings/vendors/micsft/windows/cp1254.txt from 04/15/98 Version 2.01 */ 1657/* Last-Changes from us: */ 1658 1659/* ----------------------------------------------------------------------- */ 1660 1661#define MS1254UNI_START 0x80 1662#define MS1254UNI_END 0xFF 1663static sal_uInt16 const aImplMS1254ToUniTab[MS1254UNI_END - MS1254UNI_START + 1] = 1664{ 1665/* 0 1 2 3 4 5 6 7 */ 1666/* 8 9 A B C D E F */ 1667 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */ 1668 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0, 0, 0, /* 0x80 */ 1669 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */ 1670 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0, 0, 0x0178, /* 0x90 */ 1671 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */ 1672 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */ 1673 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */ 1674 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */ 1675 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */ 1676 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */ 1677 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */ 1678 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, /* 0xD0 */ 1679 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */ 1680 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */ 1681 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */ 1682 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF /* 0xF0 */ 1683}; 1684 1685/* ----------------------------------------------------------------------- */ 1686 1687#define MS1254CHAR_START 0x00A0 1688#define MS1254CHAR_END 0x00FF 1689static sal_uChar const aImplMS1254ToCharTab[MS1254CHAR_END - MS1254CHAR_START + 1] = 1690{ 1691/* 0 1 2 3 4 5 6 7 */ 1692/* 8 9 A B C D E F */ 1693 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */ 1694 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */ 1695 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */ 1696 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */ 1697 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */ 1698 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */ 1699 0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */ 1700 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0, 0, 0xDF, /* 0x00D0 */ 1701 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */ 1702 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */ 1703 0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */ 1704 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0, 0xFF /* 0x00F0 */ 1705}; 1706 1707/* ----------------------------------------------------------------------- */ 1708 1709#define MS1254TOCHARTABEX_COUNT 31 1710static ImplUniCharTabData const aImplMS1254ToCharTabEx[MS1254TOCHARTABEX_COUNT] = 1711{ 1712 { 0x011E, 0xD0, 0 }, 1713 { 0x011F, 0xF0, 0 }, 1714 { 0x0130, 0xDD, 0 }, 1715 { 0x0131, 0xFD, 0 }, 1716 { 0x0152, 0x8C, 0 }, 1717 { 0x0153, 0x9C, 0 }, 1718 { 0x015E, 0xDE, 0 }, 1719 { 0x015F, 0xFE, 0 }, 1720 { 0x0160, 0x8A, 0 }, 1721 { 0x0161, 0x9A, 0 }, 1722 { 0x0178, 0x9F, 0 }, 1723 { 0x0192, 0x83, 0 }, 1724 { 0x02C6, 0x88, 0 }, 1725 { 0x02DC, 0x98, 0 }, 1726 { 0x2013, 0x96, 0 }, 1727 { 0x2014, 0x97, 0 }, 1728 { 0x2018, 0x91, 0 }, 1729 { 0x2019, 0x92, 0 }, 1730 { 0x201A, 0x82, 0 }, 1731 { 0x201C, 0x93, 0 }, 1732 { 0x201D, 0x94, 0 }, 1733 { 0x201E, 0x84, 0 }, 1734 { 0x2020, 0x86, 0 }, 1735 { 0x2021, 0x87, 0 }, 1736 { 0x2022, 0x95, 0 }, 1737 { 0x2026, 0x85, 0 }, 1738 { 0x2030, 0x89, 0 }, 1739 { 0x2039, 0x8B, 0 }, 1740 { 0x203A, 0x9B, 0 }, 1741 { 0x20AC, 0x80, 0 }, 1742 { 0x2122, 0x99, 0 } 1743}; 1744 1745/* ----------------------------------------------------------------------- */ 1746 1747static ImplByteConvertData const aImplMS1254ByteCvtData = 1748{ 1749 aImplMS1254ToUniTab, 1750 NULL, 1751 MS1254UNI_START, MS1254UNI_END, 1752 NOTABUNI_START, NOTABUNI_END, 1753 aImplMS1254ToCharTab, 1754 NULL, 1755 aImplMS1254ToCharTabEx, 1756 MS1254CHAR_START, MS1254CHAR_END, 1757 NOTABCHAR_START, NOTABCHAR_END, 1758 MS1254TOCHARTABEX_COUNT, 1759}; 1760 1761/* ----------------------------------------------------------------------- */ 1762 1763static ImplTextEncodingData const aImplMS1254TextEncodingData 1764 = { { &aImplMS1254ByteCvtData, 1765 ImplCharToUnicode, 1766 ImplUnicodeToChar, 1767 NULL, 1768 NULL, 1769 NULL, 1770 NULL, 1771 NULL, 1772 NULL }, 1773 1, 1774 1, 1775 1, 1776 162, 1777 "iso8859-9", 1778 "windows-1254", 1779 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 1780 /* WIN, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ 1781 1782/* ======================================================================= */ 1783 1784/* MS-1257 */ 1785/* Windows Standard CharSet for Baltic */ 1786/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 1787/* Convert-Tables: mappings/vendors/micsft/windows/cp1257.txt from 04/15/98 Version 2.01 */ 1788/* Last-Changes from us: */ 1789 1790/* ----------------------------------------------------------------------- */ 1791 1792#define MS1257UNI_START 0x80 1793#define MS1257UNI_END 0xFF 1794static sal_uInt16 const aImplMS1257ToUniTab[MS1257UNI_END - MS1257UNI_START + 1] = 1795{ 1796/* 0 1 2 3 4 5 6 7 */ 1797/* 8 9 A B C D E F */ 1798 0x20AC, 0, 0x201A, 0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */ 1799 0, 0x2030, 0, 0x2039, 0, 0x00A8, 0x02C7, 0x00B8, /* 0x80 */ 1800 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */ 1801 0, 0x2122, 0, 0x203A, 0, 0x00AF, 0x02DB, 0, /* 0x90 */ 1802 0x00A0, 0, 0x00A2, 0x00A3, 0x00A4, 0, 0x00A6, 0x00A7, /* 0xA0 */ 1803 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, /* 0xA0 */ 1804 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */ 1805 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, /* 0xB0 */ 1806 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* 0xC0 */ 1807 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, /* 0xC0 */ 1808 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */ 1809 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, /* 0xD0 */ 1810 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* 0xE0 */ 1811 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, /* 0xE0 */ 1812 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */ 1813 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9 /* 0xF0 */ 1814}; 1815 1816/* ----------------------------------------------------------------------- */ 1817 1818#define MS1257CHAR_START 0x00A0 1819#define MS1257CHAR_END 0x017E 1820static sal_uChar const aImplMS1257ToCharTab[MS1257CHAR_END - MS1257CHAR_START + 1] = 1821{ 1822/* 0 1 2 3 4 5 6 7 */ 1823/* 8 9 A B C D E F */ 1824 0xA0, 0, 0xA2, 0xA3, 0xA4, 0, 0xA6, 0xA7, /* 0x00A0 */ 1825 0x8D, 0xA9, 0, 0xAB, 0xAC, 0xAD, 0xAE, 0x9D, /* 0x00A0 */ 1826 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */ 1827 0x8F, 0xB9, 0, 0xBB, 0xBC, 0xBD, 0xBE, 0, /* 0x00B0 */ 1828 0, 0, 0, 0, 0xC4, 0xC5, 0xAF, 0, /* 0x00C0 */ 1829 0, 0xC9, 0, 0, 0, 0, 0, 0, /* 0x00C0 */ 1830 0, 0, 0, 0xD3, 0, 0xD5, 0xD6, 0xD7, /* 0x00D0 */ 1831 0xA8, 0, 0, 0, 0xDC, 0, 0, 0xDF, /* 0x00D0 */ 1832 0, 0, 0, 0, 0xE4, 0xE5, 0xBF, 0, /* 0x00E0 */ 1833 0, 0xE9, 0, 0, 0, 0, 0, 0, /* 0x00E0 */ 1834 0, 0, 0, 0xF3, 0, 0xF5, 0xF6, 0xF7, /* 0x00F0 */ 1835 0xB8, 0, 0, 0, 0xFC, 0, 0, 0, /* 0x00F0 */ 1836 0xC2, 0xE2, 0, 0, 0xC0, 0xE0, 0xC3, 0xE3, /* 0x0100 */ 1837 0, 0, 0, 0, 0xC8, 0xE8, 0, 0, /* 0x0100 */ 1838 0, 0, 0xC7, 0xE7, 0, 0, 0xCB, 0xEB, /* 0x0110 */ 1839 0xC6, 0xE6, 0, 0, 0, 0, 0, 0, /* 0x0110 */ 1840 0, 0, 0xCC, 0xEC, 0, 0, 0, 0, /* 0x0120 */ 1841 0, 0, 0xCE, 0xEE, 0, 0, 0xC1, 0xE1, /* 0x0120 */ 1842 0, 0, 0, 0, 0, 0, 0xCD, 0xED, /* 0x0130 */ 1843 0, 0, 0, 0xCF, 0xEF, 0, 0, 0, /* 0x0130 */ 1844 0, 0xD9, 0xF9, 0xD1, 0xF1, 0xD2, 0xF2, 0, /* 0x0140 */ 1845 0, 0, 0, 0, 0xD4, 0xF4, 0, 0, /* 0x0140 */ 1846 0, 0, 0, 0, 0, 0, 0xAA, 0xBA, /* 0x0150 */ 1847 0, 0, 0xDA, 0xFA, 0, 0, 0, 0, /* 0x0150 */ 1848 0xD0, 0xF0, 0, 0, 0, 0, 0, 0, /* 0x0160 */ 1849 0, 0, 0xDB, 0xFB, 0, 0, 0, 0, /* 0x0160 */ 1850 0, 0, 0xD8, 0xF8, 0, 0, 0, 0, /* 0x0170 */ 1851 0, 0xCA, 0xEA, 0xDD, 0xFD, 0xDE, 0xFE /* 0x0170 */ 1852}; 1853 1854/* ----------------------------------------------------------------------- */ 1855 1856#define MS1257TOCHARTABEX_COUNT 20 1857static ImplUniCharTabData const aImplMS1257ToCharTabEx[MS1257TOCHARTABEX_COUNT] = 1858{ 1859 { 0x02C7, 0x8E, 0 }, 1860 { 0x02D9, 0xFF, 0 }, 1861 { 0x02DB, 0x9E, 0 }, 1862 { 0x2013, 0x96, 0 }, 1863 { 0x2014, 0x97, 0 }, 1864 { 0x2018, 0x91, 0 }, 1865 { 0x2019, 0x92, 0 }, 1866 { 0x201A, 0x82, 0 }, 1867 { 0x201C, 0x93, 0 }, 1868 { 0x201D, 0x94, 0 }, 1869 { 0x201E, 0x84, 0 }, 1870 { 0x2020, 0x86, 0 }, 1871 { 0x2021, 0x87, 0 }, 1872 { 0x2022, 0x95, 0 }, 1873 { 0x2026, 0x85, 0 }, 1874 { 0x2030, 0x89, 0 }, 1875 { 0x2039, 0x8B, 0 }, 1876 { 0x203A, 0x9B, 0 }, 1877 { 0x20AC, 0x80, 0 }, 1878 { 0x2122, 0x99, 0 } 1879}; 1880 1881/* ----------------------------------------------------------------------- */ 1882 1883static ImplByteConvertData const aImplMS1257ByteCvtData = 1884{ 1885 aImplMS1257ToUniTab, 1886 NULL, 1887 MS1257UNI_START, MS1257UNI_END, 1888 NOTABUNI_START, NOTABUNI_END, 1889 aImplMS1257ToCharTab, 1890 NULL, 1891 aImplMS1257ToCharTabEx, 1892 MS1257CHAR_START, MS1257CHAR_END, 1893 NOTABCHAR_START, NOTABCHAR_END, 1894 MS1257TOCHARTABEX_COUNT, 1895}; 1896 1897/* ----------------------------------------------------------------------- */ 1898 1899static ImplTextEncodingData const aImplMS1257TextEncodingData 1900 = { { &aImplMS1257ByteCvtData, 1901 ImplCharToUnicode, 1902 ImplUnicodeToChar, 1903 NULL, 1904 NULL, 1905 NULL, 1906 NULL, 1907 NULL, 1908 NULL }, 1909 1, 1910 1, 1911 1, 1912 186, 1913 "iso8859-4", 1914 "windows-1257", 1915 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 1916 /* WIN, SCRIPT_BALTIC, pc code page 775, mac encoding 29 */ 1917 1918/* ======================================================================= */ 1919 1920/* ISO-8859-2 */ 1921/* Unix Standard for Eastern European (Latin2) */ 1922/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 1923/* Convert-Tables: mappings/iso8859/8859-2.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 1924/* Last-Changes from us: */ 1925 1926#define ISO88592UNI_START 0xA0 1927#define ISO88592UNI_END 0xFF 1928static sal_uInt16 const aImplISO88592ToUniTab[ISO88592UNI_END - ISO88592UNI_START + 1] = 1929{ 1930/* 0 1 2 3 4 5 6 7 */ 1931/* 8 9 A B C D E F */ 1932 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, /* 0xA0 */ 1933 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, /* 0xA0 */ 1934 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, /* 0xB0 */ 1935 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, /* 0xB0 */ 1936 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* 0xC0 */ 1937 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* 0xC0 */ 1938 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* 0xD0 */ 1939 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* 0xD0 */ 1940 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* 0xE0 */ 1941 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* 0xE0 */ 1942 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* 0xF0 */ 1943 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 /* 0xF0 */ 1944}; 1945 1946/* ----------------------------------------------------------------------- */ 1947 1948#define ISO88592TOCHARTABEX_COUNT 96 1949static ImplUniCharTabData const aImplISO88592ToCharTabEx[ISO88592TOCHARTABEX_COUNT] = 1950{ 1951 { 0x00A0, 0xA0, 0 }, 1952 { 0x00A4, 0xA4, 0 }, 1953 { 0x00A7, 0xA7, 0 }, 1954 { 0x00A8, 0xA8, 0 }, 1955 { 0x00AD, 0xAD, 0 }, 1956 { 0x00B0, 0xB0, 0 }, 1957 { 0x00B4, 0xB4, 0 }, 1958 { 0x00B8, 0xB8, 0 }, 1959 { 0x00C1, 0xC1, 0 }, 1960 { 0x00C2, 0xC2, 0 }, 1961 { 0x00C4, 0xC4, 0 }, 1962 { 0x00C7, 0xC7, 0 }, 1963 { 0x00C9, 0xC9, 0 }, 1964 { 0x00CB, 0xCB, 0 }, 1965 { 0x00CD, 0xCD, 0 }, 1966 { 0x00CE, 0xCE, 0 }, 1967 { 0x00D3, 0xD3, 0 }, 1968 { 0x00D4, 0xD4, 0 }, 1969 { 0x00D6, 0xD6, 0 }, 1970 { 0x00D7, 0xD7, 0 }, 1971 { 0x00DA, 0xDA, 0 }, 1972 { 0x00DC, 0xDC, 0 }, 1973 { 0x00DD, 0xDD, 0 }, 1974 { 0x00DF, 0xDF, 0 }, 1975 { 0x00E1, 0xE1, 0 }, 1976 { 0x00E2, 0xE2, 0 }, 1977 { 0x00E4, 0xE4, 0 }, 1978 { 0x00E7, 0xE7, 0 }, 1979 { 0x00E9, 0xE9, 0 }, 1980 { 0x00EB, 0xEB, 0 }, 1981 { 0x00ED, 0xED, 0 }, 1982 { 0x00EE, 0xEE, 0 }, 1983 { 0x00F3, 0xF3, 0 }, 1984 { 0x00F4, 0xF4, 0 }, 1985 { 0x00F6, 0xF6, 0 }, 1986 { 0x00F7, 0xF7, 0 }, 1987 { 0x00FA, 0xFA, 0 }, 1988 { 0x00FC, 0xFC, 0 }, 1989 { 0x00FD, 0xFD, 0 }, 1990 { 0x0102, 0xC3, 0 }, 1991 { 0x0103, 0xE3, 0 }, 1992 { 0x0104, 0xA1, 0 }, 1993 { 0x0105, 0xB1, 0 }, 1994 { 0x0106, 0xC6, 0 }, 1995 { 0x0107, 0xE6, 0 }, 1996 { 0x010C, 0xC8, 0 }, 1997 { 0x010D, 0xE8, 0 }, 1998 { 0x010E, 0xCF, 0 }, 1999 { 0x010F, 0xEF, 0 }, 2000 { 0x0110, 0xD0, 0 }, 2001 { 0x0111, 0xF0, 0 }, 2002 { 0x0118, 0xCA, 0 }, 2003 { 0x0119, 0xEA, 0 }, 2004 { 0x011A, 0xCC, 0 }, 2005 { 0x011B, 0xEC, 0 }, 2006 { 0x0139, 0xC5, 0 }, 2007 { 0x013A, 0xE5, 0 }, 2008 { 0x013D, 0xA5, 0 }, 2009 { 0x013E, 0xB5, 0 }, 2010 { 0x0141, 0xA3, 0 }, 2011 { 0x0142, 0xB3, 0 }, 2012 { 0x0143, 0xD1, 0 }, 2013 { 0x0144, 0xF1, 0 }, 2014 { 0x0147, 0xD2, 0 }, 2015 { 0x0148, 0xF2, 0 }, 2016 { 0x0150, 0xD5, 0 }, 2017 { 0x0151, 0xF5, 0 }, 2018 { 0x0154, 0xC0, 0 }, 2019 { 0x0155, 0xE0, 0 }, 2020 { 0x0158, 0xD8, 0 }, 2021 { 0x0159, 0xF8, 0 }, 2022 { 0x015A, 0xA6, 0 }, 2023 { 0x015B, 0xB6, 0 }, 2024 { 0x015E, 0xAA, 0 }, 2025 { 0x015F, 0xBA, 0 }, 2026 { 0x0160, 0xA9, 0 }, 2027 { 0x0161, 0xB9, 0 }, 2028 { 0x0162, 0xDE, 0 }, 2029 { 0x0163, 0xFE, 0 }, 2030 { 0x0164, 0xAB, 0 }, 2031 { 0x0165, 0xBB, 0 }, 2032 { 0x016E, 0xD9, 0 }, 2033 { 0x016F, 0xF9, 0 }, 2034 { 0x0170, 0xDB, 0 }, 2035 { 0x0171, 0xFB, 0 }, 2036 { 0x0179, 0xAC, 0 }, 2037 { 0x017A, 0xBC, 0 }, 2038 { 0x017B, 0xAF, 0 }, 2039 { 0x017C, 0xBF, 0 }, 2040 { 0x017D, 0xAE, 0 }, 2041 { 0x017E, 0xBE, 0 }, 2042 { 0x02C7, 0xB7, 0 }, 2043 { 0x02D8, 0xA2, 0 }, 2044 { 0x02D9, 0xFF, 0 }, 2045 { 0x02DB, 0xB2, 0 }, 2046 { 0x02DD, 0xBD, 0 } 2047}; 2048 2049/* ----------------------------------------------------------------------- */ 2050 2051static ImplByteConvertData const aImplISO88592ByteCvtData = 2052{ 2053 aImplISO88592ToUniTab, 2054 aImpl8090SameToUniTab, 2055 ISO88592UNI_START, ISO88592UNI_END, 2056 SAME8090UNI_START, SAME8090UNI_END, 2057 aImpl8090SameToCharTab, 2058 NULL, 2059 aImplISO88592ToCharTabEx, 2060 SAME8090CHAR_START, SAME8090CHAR_END, 2061 NOTABCHAR_START, NOTABCHAR_END, 2062 ISO88592TOCHARTABEX_COUNT 2063}; 2064 2065/* ----------------------------------------------------------------------- */ 2066 2067static ImplTextEncodingData const aImplISO88592TextEncodingData 2068 = { { &aImplISO88592ByteCvtData, 2069 ImplCharToUnicode, 2070 ImplUnicodeToChar, 2071 NULL, 2072 NULL, 2073 NULL, 2074 NULL, 2075 NULL, 2076 NULL }, 2077 1, 2078 1, 2079 1, 2080 238, 2081 "iso8859-2", 2082 "iso-8859-2", 2083 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 2084 /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ 2085 2086/* ======================================================================= */ 2087 2088/* ISO-8859-3 */ 2089/* Latin3 (Esperanto, Maltese, Turkish) */ 2090/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 2091/* Convert-Tables: mappings/iso8859/8859-3.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 2092/* Last-Changes from us: */ 2093 2094#define ISO88593UNI_START 0xA0 2095#define ISO88593UNI_END 0xFF 2096static sal_uInt16 const aImplISO88593ToUniTab[ISO88593UNI_END - ISO88593UNI_START + 1] = 2097{ 2098/* 0 1 2 3 4 5 6 7 */ 2099/* 8 9 A B C D E F */ 2100 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0, 0x0124, 0x00A7, /* 0xA0 */ 2101 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0, 0x017B, /* 0xA0 */ 2102 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, /* 0xB0 */ 2103 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0, 0x017C, /* 0xB0 */ 2104 0x00C0, 0x00C1, 0x00C2, 0, 0x00C4, 0x010A, 0x0108, 0x00C7, /* 0xC0 */ 2105 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */ 2106 0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, /* 0xD0 */ 2107 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, /* 0xD0 */ 2108 0x00E0, 0x00E1, 0x00E2, 0, 0x00E4, 0x010B, 0x0109, 0x00E7, /* 0xE0 */ 2109 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */ 2110 0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, /* 0xF0 */ 2111 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 /* 0xF0 */ 2112}; 2113 2114/* ----------------------------------------------------------------------- */ 2115 2116#define ISO88593TOCHARTABEX_COUNT 89 2117static ImplUniCharTabData const aImplISO88593ToCharTabEx[ISO88593TOCHARTABEX_COUNT] = 2118{ 2119 { 0x00A0, 0xA0, 0 }, 2120 { 0x00A3, 0xA3, 0 }, 2121 { 0x00A4, 0xA4, 0 }, 2122 { 0x00A7, 0xA7, 0 }, 2123 { 0x00A8, 0xA8, 0 }, 2124 { 0x00AD, 0xAD, 0 }, 2125 { 0x00B0, 0xB0, 0 }, 2126 { 0x00B2, 0xB2, 0 }, 2127 { 0x00B3, 0xB3, 0 }, 2128 { 0x00B4, 0xB4, 0 }, 2129 { 0x00B5, 0xB5, 0 }, 2130 { 0x00B7, 0xB7, 0 }, 2131 { 0x00B8, 0xB8, 0 }, 2132 { 0x00BD, 0xBD, 0 }, 2133 { 0x00C0, 0xC0, 0 }, 2134 { 0x00C1, 0xC1, 0 }, 2135 { 0x00C2, 0xC2, 0 }, 2136 { 0x00C4, 0xC4, 0 }, 2137 { 0x00C7, 0xC7, 0 }, 2138 { 0x00C8, 0xC8, 0 }, 2139 { 0x00C9, 0xC9, 0 }, 2140 { 0x00CA, 0xCA, 0 }, 2141 { 0x00CB, 0xCB, 0 }, 2142 { 0x00CC, 0xCC, 0 }, 2143 { 0x00CD, 0xCD, 0 }, 2144 { 0x00CE, 0xCE, 0 }, 2145 { 0x00CF, 0xCF, 0 }, 2146 { 0x00D1, 0xD1, 0 }, 2147 { 0x00D2, 0xD2, 0 }, 2148 { 0x00D3, 0xD3, 0 }, 2149 { 0x00D4, 0xD4, 0 }, 2150 { 0x00D6, 0xD6, 0 }, 2151 { 0x00D7, 0xD7, 0 }, 2152 { 0x00D9, 0xD9, 0 }, 2153 { 0x00DA, 0xDA, 0 }, 2154 { 0x00DB, 0xDB, 0 }, 2155 { 0x00DC, 0xDC, 0 }, 2156 { 0x00DF, 0xDF, 0 }, 2157 { 0x00E0, 0xE0, 0 }, 2158 { 0x00E1, 0xE1, 0 }, 2159 { 0x00E2, 0xE2, 0 }, 2160 { 0x00E4, 0xE4, 0 }, 2161 { 0x00E7, 0xE7, 0 }, 2162 { 0x00E8, 0xE8, 0 }, 2163 { 0x00E9, 0xE9, 0 }, 2164 { 0x00EA, 0xEA, 0 }, 2165 { 0x00EB, 0xEB, 0 }, 2166 { 0x00EC, 0xEC, 0 }, 2167 { 0x00ED, 0xED, 0 }, 2168 { 0x00EE, 0xEE, 0 }, 2169 { 0x00EF, 0xEF, 0 }, 2170 { 0x00F1, 0xF1, 0 }, 2171 { 0x00F2, 0xF2, 0 }, 2172 { 0x00F3, 0xF3, 0 }, 2173 { 0x00F4, 0xF4, 0 }, 2174 { 0x00F6, 0xF6, 0 }, 2175 { 0x00F7, 0xF7, 0 }, 2176 { 0x00F9, 0xF9, 0 }, 2177 { 0x00FA, 0xFA, 0 }, 2178 { 0x00FB, 0xFB, 0 }, 2179 { 0x00FC, 0xFC, 0 }, 2180 { 0x0108, 0xC6, 0 }, 2181 { 0x0109, 0xE6, 0 }, 2182 { 0x010A, 0xC5, 0 }, 2183 { 0x010B, 0xE5, 0 }, 2184 { 0x011C, 0xD8, 0 }, 2185 { 0x011D, 0xF8, 0 }, 2186 { 0x011E, 0xAB, 0 }, 2187 { 0x011F, 0xBB, 0 }, 2188 { 0x0120, 0xD5, 0 }, 2189 { 0x0121, 0xF5, 0 }, 2190 { 0x0124, 0xA6, 0 }, 2191 { 0x0125, 0xB6, 0 }, 2192 { 0x0126, 0xA1, 0 }, 2193 { 0x0127, 0xB1, 0 }, 2194 { 0x0130, 0xA9, 0 }, 2195 { 0x0131, 0xB9, 0 }, 2196 { 0x0134, 0xAC, 0 }, 2197 { 0x0135, 0xBC, 0 }, 2198 { 0x015C, 0xDE, 0 }, 2199 { 0x015D, 0xFE, 0 }, 2200 { 0x015E, 0xAA, 0 }, 2201 { 0x015F, 0xBA, 0 }, 2202 { 0x016C, 0xDD, 0 }, 2203 { 0x016D, 0xFD, 0 }, 2204 { 0x017B, 0xAF, 0 }, 2205 { 0x017C, 0xBF, 0 }, 2206 { 0x02D8, 0xA2, 0 }, 2207 { 0x02D9, 0xFF, 0 } 2208}; 2209 2210/* ----------------------------------------------------------------------- */ 2211 2212static ImplByteConvertData const aImplISO88593ByteCvtData = 2213{ 2214 aImplISO88593ToUniTab, 2215 aImpl8090SameToUniTab, 2216 ISO88593UNI_START, ISO88593UNI_END, 2217 SAME8090UNI_START, SAME8090UNI_END, 2218 aImpl8090SameToCharTab, 2219 NULL, 2220 aImplISO88593ToCharTabEx, 2221 SAME8090CHAR_START, SAME8090CHAR_END, 2222 NOTABCHAR_START, NOTABCHAR_END, 2223 ISO88593TOCHARTABEX_COUNT 2224}; 2225 2226/* ----------------------------------------------------------------------- */ 2227 2228static ImplTextEncodingData const aImplISO88593TextEncodingData 2229 = { { &aImplISO88593ByteCvtData, 2230 ImplCharToUnicode, 2231 ImplUnicodeToChar, 2232 NULL, 2233 NULL, 2234 NULL, 2235 NULL, 2236 NULL, 2237 NULL }, 2238 1, 2239 1, 2240 1, 2241 0, 2242 "iso8859-3", 2243 "iso-8859-3", 2244 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 2245 /* SCRIPT_LATIN, pc code page 850 */ 2246 2247/* ======================================================================= */ 2248 2249/* ISO-8859-4 */ 2250/* Latin4 (Estonian, Latvian, Lithuanian) */ 2251/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 2252/* Convert-Tables: mappings/iso8859/8859-4.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 2253/* Last-Changes from us: */ 2254 2255#define ISO88594UNI_START 0xA0 2256#define ISO88594UNI_END 0xFF 2257static sal_uInt16 const aImplISO88594ToUniTab[ISO88594UNI_END - ISO88594UNI_START + 1] = 2258{ 2259/* 0 1 2 3 4 5 6 7 */ 2260/* 8 9 A B C D E F */ 2261 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, /* 0xA0 */ 2262 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, /* 0xA0 */ 2263 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, /* 0xB0 */ 2264 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, /* 0xB0 */ 2265 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, /* 0xC0 */ 2266 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, /* 0xC0 */ 2267 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */ 2268 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, /* 0xD0 */ 2269 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, /* 0xE0 */ 2270 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, /* 0xE0 */ 2271 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */ 2272 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 /* 0xF0 */ 2273}; 2274 2275/* ----------------------------------------------------------------------- */ 2276 2277#define ISO88594TOCHARTABEX_COUNT 96 2278static ImplUniCharTabData const aImplISO88594ToCharTabEx[ISO88594TOCHARTABEX_COUNT] = 2279{ 2280 { 0x00A0, 0xA0, 0 }, 2281 { 0x00A4, 0xA4, 0 }, 2282 { 0x00A7, 0xA7, 0 }, 2283 { 0x00A8, 0xA8, 0 }, 2284 { 0x00AD, 0xAD, 0 }, 2285 { 0x00AF, 0xAF, 0 }, 2286 { 0x00B0, 0xB0, 0 }, 2287 { 0x00B4, 0xB4, 0 }, 2288 { 0x00B8, 0xB8, 0 }, 2289 { 0x00C1, 0xC1, 0 }, 2290 { 0x00C2, 0xC2, 0 }, 2291 { 0x00C3, 0xC3, 0 }, 2292 { 0x00C4, 0xC4, 0 }, 2293 { 0x00C5, 0xC5, 0 }, 2294 { 0x00C6, 0xC6, 0 }, 2295 { 0x00C9, 0xC9, 0 }, 2296 { 0x00CB, 0xCB, 0 }, 2297 { 0x00CD, 0xCD, 0 }, 2298 { 0x00CE, 0xCE, 0 }, 2299 { 0x00D4, 0xD4, 0 }, 2300 { 0x00D5, 0xD5, 0 }, 2301 { 0x00D6, 0xD6, 0 }, 2302 { 0x00D7, 0xD7, 0 }, 2303 { 0x00D8, 0xD8, 0 }, 2304 { 0x00DA, 0xDA, 0 }, 2305 { 0x00DB, 0xDB, 0 }, 2306 { 0x00DC, 0xDC, 0 }, 2307 { 0x00DF, 0xDF, 0 }, 2308 { 0x00E1, 0xE1, 0 }, 2309 { 0x00E2, 0xE2, 0 }, 2310 { 0x00E3, 0xE3, 0 }, 2311 { 0x00E4, 0xE4, 0 }, 2312 { 0x00E5, 0xE5, 0 }, 2313 { 0x00E6, 0xE6, 0 }, 2314 { 0x00E9, 0xE9, 0 }, 2315 { 0x00EB, 0xEB, 0 }, 2316 { 0x00ED, 0xED, 0 }, 2317 { 0x00EE, 0xEE, 0 }, 2318 { 0x00F4, 0xF4, 0 }, 2319 { 0x00F5, 0xF5, 0 }, 2320 { 0x00F6, 0xF6, 0 }, 2321 { 0x00F7, 0xF7, 0 }, 2322 { 0x00F8, 0xF8, 0 }, 2323 { 0x00FA, 0xFA, 0 }, 2324 { 0x00FB, 0xFB, 0 }, 2325 { 0x00FC, 0xFC, 0 }, 2326 { 0x0100, 0xC0, 0 }, 2327 { 0x0101, 0xE0, 0 }, 2328 { 0x0104, 0xA1, 0 }, 2329 { 0x0105, 0xB1, 0 }, 2330 { 0x010C, 0xC8, 0 }, 2331 { 0x010D, 0xE8, 0 }, 2332 { 0x0110, 0xD0, 0 }, 2333 { 0x0111, 0xF0, 0 }, 2334 { 0x0112, 0xAA, 0 }, 2335 { 0x0113, 0xBA, 0 }, 2336 { 0x0116, 0xCC, 0 }, 2337 { 0x0117, 0xEC, 0 }, 2338 { 0x0118, 0xCA, 0 }, 2339 { 0x0119, 0xEA, 0 }, 2340 { 0x0122, 0xAB, 0 }, 2341 { 0x0123, 0xBB, 0 }, 2342 { 0x0128, 0xA5, 0 }, 2343 { 0x0129, 0xB5, 0 }, 2344 { 0x012A, 0xCF, 0 }, 2345 { 0x012B, 0xEF, 0 }, 2346 { 0x012E, 0xC7, 0 }, 2347 { 0x012F, 0xE7, 0 }, 2348 { 0x0136, 0xD3, 0 }, 2349 { 0x0137, 0xF3, 0 }, 2350 { 0x0138, 0xA2, 0 }, 2351 { 0x013B, 0xA6, 0 }, 2352 { 0x013C, 0xB6, 0 }, 2353 { 0x0145, 0xD1, 0 }, 2354 { 0x0146, 0xF1, 0 }, 2355 { 0x014A, 0xBD, 0 }, 2356 { 0x014B, 0xBF, 0 }, 2357 { 0x014C, 0xD2, 0 }, 2358 { 0x014D, 0xF2, 0 }, 2359 { 0x0156, 0xA3, 0 }, 2360 { 0x0157, 0xB3, 0 }, 2361 { 0x0160, 0xA9, 0 }, 2362 { 0x0161, 0xB9, 0 }, 2363 { 0x0166, 0xAC, 0 }, 2364 { 0x0167, 0xBC, 0 }, 2365 { 0x0168, 0xDD, 0 }, 2366 { 0x0169, 0xFD, 0 }, 2367 { 0x016A, 0xDE, 0 }, 2368 { 0x016B, 0xFE, 0 }, 2369 { 0x0172, 0xD9, 0 }, 2370 { 0x0173, 0xF9, 0 }, 2371 { 0x017D, 0xAE, 0 }, 2372 { 0x017E, 0xBE, 0 }, 2373 { 0x02C7, 0xB7, 0 }, 2374 { 0x02D9, 0xFF, 0 }, 2375 { 0x02DB, 0xB2, 0 } 2376}; 2377 2378/* ----------------------------------------------------------------------- */ 2379 2380static ImplByteConvertData const aImplISO88594ByteCvtData = 2381{ 2382 aImplISO88594ToUniTab, 2383 aImpl8090SameToUniTab, 2384 ISO88594UNI_START, ISO88594UNI_END, 2385 SAME8090UNI_START, SAME8090UNI_END, 2386 aImpl8090SameToCharTab, 2387 NULL, 2388 aImplISO88594ToCharTabEx, 2389 SAME8090CHAR_START, SAME8090CHAR_END, 2390 NOTABCHAR_START, NOTABCHAR_END, 2391 ISO88594TOCHARTABEX_COUNT 2392}; 2393 2394/* ----------------------------------------------------------------------- */ 2395 2396static ImplTextEncodingData const aImplISO88594TextEncodingData 2397 = { { &aImplISO88594ByteCvtData, 2398 ImplCharToUnicode, 2399 ImplUnicodeToChar, 2400 NULL, 2401 NULL, 2402 NULL, 2403 NULL, 2404 NULL, 2405 NULL }, 2406 1, 2407 1, 2408 1, 2409 186, 2410 "iso8859-4", 2411 "iso-8859-4", 2412 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 2413 /* SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */ 2414 2415/* ======================================================================= */ 2416 2417/* ISO-8859-5 */ 2418/* Unix Standard for Cyrillic */ 2419/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 2420/* Convert-Tables: mappings/iso8859/8859-5.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 2421/* Last-Changes from us: */ 2422 2423#define ISO88595UNI_START 0xA0 2424#define ISO88595UNI_END 0xFF 2425static sal_uInt16 const aImplISO88595ToUniTab[ISO88595UNI_END - ISO88595UNI_START + 1] = 2426{ 2427/* 0 1 2 3 4 5 6 7 */ 2428/* 8 9 A B C D E F */ 2429 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, /* 0xA0 */ 2430 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, /* 0xA0 */ 2431 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xB0 */ 2432 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xB0 */ 2433 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xC0 */ 2434 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xC0 */ 2435 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xD0 */ 2436 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xD0 */ 2437 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xE0 */ 2438 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xE0 */ 2439 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, /* 0xF0 */ 2440 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F /* 0xF0 */ 2441}; 2442 2443/* ----------------------------------------------------------------------- */ 2444 2445#define ISO88595CHAR_START 0x0401 2446#define ISO88595CHAR_END 0x045F 2447static sal_uChar const aImplISO88595ToCharTab[ISO88595CHAR_END - ISO88595CHAR_START + 1] = 2448{ 2449/* 0 1 2 3 4 5 6 7 */ 2450/* 8 9 A B C D E F */ 2451 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0400 */ 2452 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0, 0xAE, 0xAF, /* 0x0400 */ 2453 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x0410 */ 2454 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x0410 */ 2455 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0420 */ 2456 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0420 */ 2457 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0430 */ 2458 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x0430 */ 2459 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0440 */ 2460 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0440 */ 2461 0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0450 */ 2462 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0xFE, 0xFF, /* 0x0450 */ 2463}; 2464 2465/* ----------------------------------------------------------------------- */ 2466 2467#define ISO88595TOCHARTABEX_COUNT 4 2468static ImplUniCharTabData const aImplISO88595ToCharTabEx[ISO88595TOCHARTABEX_COUNT] = 2469{ 2470 { 0x00A0, 0xA0, 0 }, 2471 { 0x00A7, 0xFD, 0 }, 2472 { 0x00AD, 0xAD, 0 }, 2473 { 0x2116, 0xF0, 0 } 2474}; 2475 2476/* ----------------------------------------------------------------------- */ 2477 2478static ImplByteConvertData const aImplISO88595ByteCvtData = 2479{ 2480 aImplISO88595ToUniTab, 2481 aImpl8090SameToUniTab, 2482 ISO88595UNI_START, ISO88595UNI_END, 2483 SAME8090UNI_START, SAME8090UNI_END, 2484 aImplISO88595ToCharTab, 2485 aImpl8090SameToCharTab, 2486 aImplISO88595ToCharTabEx, 2487 ISO88595CHAR_START, ISO88595CHAR_END, 2488 SAME8090CHAR_START, SAME8090CHAR_END, 2489 ISO88595TOCHARTABEX_COUNT 2490}; 2491 2492/* ----------------------------------------------------------------------- */ 2493 2494static ImplTextEncodingData const aImplISO88595TextEncodingData 2495 = { { &aImplISO88595ByteCvtData, 2496 ImplCharToUnicode, 2497 ImplUnicodeToChar, 2498 NULL, 2499 NULL, 2500 NULL, 2501 NULL, 2502 NULL, 2503 NULL }, 2504 1, 2505 1, 2506 1, 2507 204, 2508 "iso8859-5", 2509 "iso-8859-5", 2510 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 2511 /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ 2512 2513/* ======================================================================= */ 2514 2515/* ISO-8859-7 */ 2516/* Unix Standard for Greek */ 2517/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 2518/* Convert-Tables: mappings/iso8859/8859-7.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 2519/* Last-Changes from us: */ 2520 2521#define ISO88597UNI_START 0xA0 2522#define ISO88597UNI_END 0xFF 2523static sal_uInt16 const aImplISO88597ToUniTab[ISO88597UNI_END - ISO88597UNI_START + 1] = 2524{ 2525/* 0 1 2 3 4 5 6 7 */ 2526/* 8 9 A B C D E F */ 2527 0x00A0, 0x2018, 0x2019, 0x00A3, 0, 0, 0x00A6, 0x00A7, /* 0xA0 */ 2528 0x00A8, 0x00A9, 0, 0x00AB, 0x00AC, 0x00AD, 0, 0x2015, /* 0xA0 */ 2529 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, /* 0xB0 */ 2530 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* 0xB0 */ 2531 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */ 2532 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */ 2533 0x03A0, 0x03A1, 0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, /* 0xD0 */ 2534 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, /* 0xD0 */ 2535 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */ 2536 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */ 2537 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, /* 0xF0 */ 2538 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0 /* 0xF0 */ 2539}; 2540 2541/* ----------------------------------------------------------------------- */ 2542 2543#define ISO88597CHAR_START 0x0384 2544#define ISO88597CHAR_END 0x03CE 2545static sal_uChar const aImplISO88597ToCharTab[ISO88597CHAR_END - ISO88597CHAR_START + 1] = 2546{ 2547/* 0 1 2 3 4 5 6 7 */ 2548/* 8 9 A B C D E F */ 2549 0xB4, 0xB5, 0xB6, 0, /* 0x0380 */ 2550 0xB8, 0xB9, 0xBA, 0, 0xBC, 0, 0xBE, 0xBF, /* 0x0380 */ 2551 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0390 */ 2552 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0390 */ 2553 0xD0, 0xD1, 0, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x03A0 */ 2554 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x03A0 */ 2555 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x03B0 */ 2556 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x03B0 */ 2557 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x03C0 */ 2558 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE /* 0x03C0 */ 2559}; 2560 2561/* ----------------------------------------------------------------------- */ 2562 2563#define ISO88597TOCHARTABEX_COUNT 19 2564static ImplUniCharTabData const aImplISO88597ToCharTabEx[ISO88597TOCHARTABEX_COUNT] = 2565{ 2566 { 0x00A0, 0xA0, 0 }, 2567 { 0x00A3, 0xA3, 0 }, 2568 { 0x00A6, 0xA6, 0 }, 2569 { 0x00A7, 0xA7, 0 }, 2570 { 0x00A8, 0xA8, 0 }, 2571 { 0x00A9, 0xA9, 0 }, 2572 { 0x00AB, 0xAB, 0 }, 2573 { 0x00AC, 0xAC, 0 }, 2574 { 0x00AD, 0xAD, 0 }, 2575 { 0x00B0, 0xB0, 0 }, 2576 { 0x00B1, 0xB1, 0 }, 2577 { 0x00B2, 0xB2, 0 }, 2578 { 0x00B3, 0xB3, 0 }, 2579 { 0x00B7, 0xB7, 0 }, 2580 { 0x00BB, 0xBB, 0 }, 2581 { 0x00BD, 0xBD, 0 }, 2582 { 0x2015, 0xAF, 0 }, 2583 { 0x2018, 0xA1, 0 }, 2584 { 0x2019, 0xA2, 0 } 2585}; 2586 2587/* ----------------------------------------------------------------------- */ 2588 2589static ImplByteConvertData const aImplISO88597ByteCvtData = 2590{ 2591 aImplISO88597ToUniTab, 2592 aImpl8090SameToUniTab, 2593 ISO88597UNI_START, ISO88597UNI_END, 2594 SAME8090UNI_START, SAME8090UNI_END, 2595 aImplISO88597ToCharTab, 2596 aImpl8090SameToCharTab, 2597 aImplISO88597ToCharTabEx, 2598 ISO88597CHAR_START, ISO88597CHAR_END, 2599 SAME8090CHAR_START, SAME8090CHAR_END, 2600 ISO88597TOCHARTABEX_COUNT 2601}; 2602 2603/* ----------------------------------------------------------------------- */ 2604 2605static ImplTextEncodingData const aImplISO88597TextEncodingData 2606 = { { &aImplISO88597ByteCvtData, 2607 ImplCharToUnicode, 2608 ImplUnicodeToChar, 2609 NULL, 2610 NULL, 2611 NULL, 2612 NULL, 2613 NULL, 2614 NULL }, 2615 1, 2616 1, 2617 1, 2618 161, 2619 "iso8859-7", 2620 "iso-8859-7", 2621 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 2622 /* SCRIPT_GREEK, pc code page 869, mac encoding 6 */ 2623 2624/* ======================================================================= */ 2625 2626/* ISO-8859-9 */ 2627/* Latin5 (Turkish) */ 2628/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 2629/* Convert-Tables: mappings/iso8859/8859-9.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 2630/* Last-Changes from us: */ 2631 2632#define ISO88599UNI_START 0xA0 2633#define ISO88599UNI_END 0xFF 2634static sal_uInt16 const aImplISO88599ToUniTab[ISO88599UNI_END - ISO88599UNI_START + 1] = 2635{ 2636/* 0 1 2 3 4 5 6 7 */ 2637/* 8 9 A B C D E F */ 2638 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */ 2639 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */ 2640 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */ 2641 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */ 2642 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */ 2643 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */ 2644 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */ 2645 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, /* 0xD0 */ 2646 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */ 2647 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */ 2648 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */ 2649 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF /* 0xF0 */ 2650}; 2651 2652/* ----------------------------------------------------------------------- */ 2653 2654#define ISO88599CHAR_START 0x00A0 2655#define ISO88599CHAR_END 0x00FF 2656static sal_uChar const aImplISO88599ToCharTab[ISO88599CHAR_END - ISO88599CHAR_START + 1] = 2657{ 2658/* 0 1 2 3 4 5 6 7 */ 2659/* 8 9 A B C D E F */ 2660 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */ 2661 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */ 2662 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */ 2663 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */ 2664 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */ 2665 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */ 2666 0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */ 2667 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0, 0, 0xDF, /* 0x00D0 */ 2668 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */ 2669 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */ 2670 0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */ 2671 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0, 0xFF /* 0x00F0 */ 2672}; 2673 2674/* ----------------------------------------------------------------------- */ 2675 2676#define ISO88599TOCHARTABEX_COUNT 6 2677static ImplUniCharTabData const aImplISO88599ToCharTabEx[ISO88599TOCHARTABEX_COUNT] = 2678{ 2679 { 0x011E, 0xD0, 0 }, 2680 { 0x011F, 0xF0, 0 }, 2681 { 0x0130, 0xDD, 0 }, 2682 { 0x0131, 0xFD, 0 }, 2683 { 0x015E, 0xDE, 0 }, 2684 { 0x015F, 0xFE, 0 } 2685}; 2686 2687/* ----------------------------------------------------------------------- */ 2688 2689static ImplByteConvertData const aImplISO88599ByteCvtData = 2690{ 2691 aImplISO88599ToUniTab, 2692 aImpl8090SameToUniTab, 2693 ISO88599UNI_START, ISO88599UNI_END, 2694 SAME8090UNI_START, SAME8090UNI_END, 2695 aImplISO88599ToCharTab, 2696 aImpl8090SameToCharTab, 2697 aImplISO88599ToCharTabEx, 2698 ISO88599CHAR_START, ISO88599CHAR_END, 2699 SAME8090CHAR_START, SAME8090CHAR_END, 2700 ISO88599TOCHARTABEX_COUNT 2701}; 2702 2703/* ----------------------------------------------------------------------- */ 2704 2705static ImplTextEncodingData const aImplISO88599TextEncodingData 2706 = { { &aImplISO88599ByteCvtData, 2707 ImplCharToUnicode, 2708 ImplUnicodeToChar, 2709 NULL, 2710 NULL, 2711 NULL, 2712 NULL, 2713 NULL, 2714 NULL }, 2715 1, 2716 1, 2717 1, 2718 162, 2719 "iso8859-9", 2720 "iso-8859-9", 2721 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 2722 /* SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ 2723 2724/* ======================================================================= */ 2725 2726/* ISO-8859-10 */ 2727/* East European */ 2728/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 2729/* Convert-Tables: mappings/iso8859/8859-10.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 2730/* Last-Changes from us: */ 2731 2732#define ISO885910UNI_START 0xA0 2733#define ISO885910UNI_END 0xFF 2734static sal_uInt16 const aImplISO885910ToUniTab[ISO885910UNI_END - ISO885910UNI_START + 1] = 2735{ 2736/* 0 1 2 3 4 5 6 7 */ 2737/* 8 9 A B C D E F */ 2738 0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, /* 0xA0 */ 2739 0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, /* 0xA0 */ 2740 0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, /* 0xB0 */ 2741 0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B, /* 0xB0 */ 2742 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, /* 0xC0 */ 2743 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */ 2744 0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, /* 0xD0 */ 2745 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */ 2746 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, /* 0xE0 */ 2747 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */ 2748 0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, /* 0xF0 */ 2749 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138 /* 0xF0 */ 2750}; 2751 2752/* ----------------------------------------------------------------------- */ 2753 2754#define ISO885910CHAR_START 0x00C1 2755#define ISO885910CHAR_END 0x00FE 2756static sal_uChar const aImplISO885910ToCharTab[ISO885910CHAR_END - ISO885910CHAR_START + 1] = 2757{ 2758/* 0 1 2 3 4 5 6 7 */ 2759/* 8 9 A B C D E F */ 2760 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0, /* 0x00C0 */ 2761 0, 0xC9, 0, 0xCB, 0, 0xCD, 0xCE, 0xCF, /* 0x00C0 */ 2762 0xD0, 0, 0, 0xD3, 0xD4, 0xD5, 0xD6, 0, /* 0x00D0 */ 2763 0xD8, 0, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x00D0 */ 2764 0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0, /* 0x00E0 */ 2765 0, 0xE9, 0, 0xEB, 0, 0xED, 0xEE, 0xEF, /* 0x00E0 */ 2766 0xF0, 0, 0, 0xF3, 0xF4, 0xF5, 0xF6, 0, /* 0x00F0 */ 2767 0xF8, 0, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE /* 0x00F0 */ 2768}; 2769 2770/* ----------------------------------------------------------------------- */ 2771 2772#define ISO885910TOCHARTABEX_COUNT 51 2773static ImplUniCharTabData const aImplISO885910ToCharTabEx[ISO885910TOCHARTABEX_COUNT] = 2774{ 2775 { 0x00A0, 0xA0, 0 }, 2776 { 0x00A7, 0xA7, 0 }, 2777 { 0x00AD, 0xAD, 0 }, 2778 { 0x00B0, 0xB0, 0 }, 2779 { 0x00B7, 0xB7, 0 }, 2780 { 0x0100, 0xC0, 0 }, 2781 { 0x0101, 0xE0, 0 }, 2782 { 0x0104, 0xA1, 0 }, 2783 { 0x0105, 0xB1, 0 }, 2784 { 0x010C, 0xC8, 0 }, 2785 { 0x010D, 0xE8, 0 }, 2786 { 0x0110, 0xA9, 0 }, 2787 { 0x0111, 0xB9, 0 }, 2788 { 0x0112, 0xA2, 0 }, 2789 { 0x0113, 0xB2, 0 }, 2790 { 0x0116, 0xCC, 0 }, 2791 { 0x0117, 0xEC, 0 }, 2792 { 0x0118, 0xCA, 0 }, 2793 { 0x0119, 0xEA, 0 }, 2794 { 0x0122, 0xA3, 0 }, 2795 { 0x0123, 0xB3, 0 }, 2796 { 0x0128, 0xA5, 0 }, 2797 { 0x0129, 0xB5, 0 }, 2798 { 0x012A, 0xA4, 0 }, 2799 { 0x012B, 0xB4, 0 }, 2800 { 0x012E, 0xC7, 0 }, 2801 { 0x012F, 0xE7, 0 }, 2802 { 0x0136, 0xA6, 0 }, 2803 { 0x0137, 0xB6, 0 }, 2804 { 0x0138, 0xFF, 0 }, 2805 { 0x013B, 0xA8, 0 }, 2806 { 0x013C, 0xB8, 0 }, 2807 { 0x0145, 0xD1, 0 }, 2808 { 0x0146, 0xF1, 0 }, 2809 { 0x014A, 0xAF, 0 }, 2810 { 0x014B, 0xBF, 0 }, 2811 { 0x014C, 0xD2, 0 }, 2812 { 0x014D, 0xF2, 0 }, 2813 { 0x0160, 0xAA, 0 }, 2814 { 0x0161, 0xBA, 0 }, 2815 { 0x0166, 0xAB, 0 }, 2816 { 0x0167, 0xBB, 0 }, 2817 { 0x0168, 0xD7, 0 }, 2818 { 0x0169, 0xF7, 0 }, 2819 { 0x016A, 0xAE, 0 }, 2820 { 0x016B, 0xBE, 0 }, 2821 { 0x0172, 0xD9, 0 }, 2822 { 0x0173, 0xF9, 0 }, 2823 { 0x017D, 0xAC, 0 }, 2824 { 0x017E, 0xBC, 0 }, 2825 { 0x2015, 0xBD, 0 } 2826}; 2827 2828/* ----------------------------------------------------------------------- */ 2829 2830static ImplByteConvertData const aImplISO885910ByteCvtData = 2831{ 2832 aImplISO885910ToUniTab, 2833 aImpl8090SameToUniTab, 2834 ISO885910UNI_START, ISO885910UNI_END, 2835 SAME8090UNI_START, SAME8090UNI_END, 2836 aImplISO885910ToCharTab, 2837 aImpl8090SameToCharTab, 2838 aImplISO885910ToCharTabEx, 2839 ISO885910CHAR_START, ISO885910CHAR_END, 2840 SAME8090CHAR_START, SAME8090CHAR_END, 2841 ISO885910TOCHARTABEX_COUNT 2842}; 2843 2844/* ----------------------------------------------------------------------- */ 2845 2846static ImplTextEncodingData const aImplISO885910TextEncodingData 2847 = { { &aImplISO885910ByteCvtData, 2848 ImplCharToUnicode, 2849 ImplUnicodeToChar, 2850 NULL, 2851 NULL, 2852 NULL, 2853 NULL, 2854 NULL, 2855 NULL }, 2856 1, 2857 1, 2858 1, 2859 238, 2860 "iso8859-10", 2861 "iso-8859-10", 2862 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 2863 /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ 2864 2865/* ======================================================================= */ 2866 2867/* ISO-8859-13 */ 2868/* East European */ 2869/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme, 0x80-0x9F Control-Caracter wie in Unicode */ 2870/* Convert-Tables: mappings/iso8859/8859-13.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */ 2871/* Last-Changes from us: */ 2872 2873#define ISO885913UNI_START 0xA0 2874#define ISO885913UNI_END 0xFF 2875static sal_uInt16 const aImplISO885913ToUniTab[ISO885913UNI_END - ISO885913UNI_START + 1] = 2876{ 2877/* 0 1 2 3 4 5 6 7 */ 2878/* 8 9 A B C D E F */ 2879 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, /* 0xA0 */ 2880 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, /* 0xA0 */ 2881 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */ 2882 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, /* 0xB0 */ 2883 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* 0xC0 */ 2884 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, /* 0xC0 */ 2885 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */ 2886 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, /* 0xD0 */ 2887 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* 0xE0 */ 2888 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, /* 0xE0 */ 2889 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */ 2890 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019 /* 0xF0 */ 2891}; 2892 2893/* ----------------------------------------------------------------------- */ 2894 2895#define ISO885913TOCHARTABEX_COUNT 96 2896static ImplUniCharTabData const aImplISO885913ToCharTabEx[ISO885913TOCHARTABEX_COUNT] = 2897{ 2898 { 0x00A0, 0xA0, 0 }, 2899 { 0x00A2, 0xA2, 0 }, 2900 { 0x00A3, 0xA3, 0 }, 2901 { 0x00A4, 0xA4, 0 }, 2902 { 0x00A6, 0xA6, 0 }, 2903 { 0x00A7, 0xA7, 0 }, 2904 { 0x00A9, 0xA9, 0 }, 2905 { 0x00AB, 0xAB, 0 }, 2906 { 0x00AC, 0xAC, 0 }, 2907 { 0x00AD, 0xAD, 0 }, 2908 { 0x00AE, 0xAE, 0 }, 2909 { 0x00B0, 0xB0, 0 }, 2910 { 0x00B1, 0xB1, 0 }, 2911 { 0x00B2, 0xB2, 0 }, 2912 { 0x00B3, 0xB3, 0 }, 2913 { 0x00B5, 0xB5, 0 }, 2914 { 0x00B6, 0xB6, 0 }, 2915 { 0x00B7, 0xB7, 0 }, 2916 { 0x00B9, 0xB9, 0 }, 2917 { 0x00BB, 0xBB, 0 }, 2918 { 0x00BC, 0xBC, 0 }, 2919 { 0x00BD, 0xBD, 0 }, 2920 { 0x00BE, 0xBE, 0 }, 2921 { 0x00C4, 0xC4, 0 }, 2922 { 0x00C5, 0xC5, 0 }, 2923 { 0x00C6, 0xAF, 0 }, 2924 { 0x00C9, 0xC9, 0 }, 2925 { 0x00D3, 0xD3, 0 }, 2926 { 0x00D5, 0xD5, 0 }, 2927 { 0x00D6, 0xD6, 0 }, 2928 { 0x00D7, 0xD7, 0 }, 2929 { 0x00D8, 0xA8, 0 }, 2930 { 0x00DC, 0xDC, 0 }, 2931 { 0x00DF, 0xDF, 0 }, 2932 { 0x00E4, 0xE4, 0 }, 2933 { 0x00E5, 0xE5, 0 }, 2934 { 0x00E6, 0xBF, 0 }, 2935 { 0x00E9, 0xE9, 0 }, 2936 { 0x00F3, 0xF3, 0 }, 2937 { 0x00F5, 0xF5, 0 }, 2938 { 0x00F6, 0xF6, 0 }, 2939 { 0x00F7, 0xF7, 0 }, 2940 { 0x00F8, 0xB8, 0 }, 2941 { 0x00FC, 0xFC, 0 }, 2942 { 0x0100, 0xC2, 0 }, 2943 { 0x0101, 0xE2, 0 }, 2944 { 0x0104, 0xC0, 0 }, 2945 { 0x0105, 0xE0, 0 }, 2946 { 0x0106, 0xC3, 0 }, 2947 { 0x0107, 0xE3, 0 }, 2948 { 0x010C, 0xC8, 0 }, 2949 { 0x010D, 0xE8, 0 }, 2950 { 0x0112, 0xC7, 0 }, 2951 { 0x0113, 0xE7, 0 }, 2952 { 0x0116, 0xCB, 0 }, 2953 { 0x0117, 0xEB, 0 }, 2954 { 0x0118, 0xC6, 0 }, 2955 { 0x0119, 0xE6, 0 }, 2956 { 0x0122, 0xCC, 0 }, 2957 { 0x0123, 0xEC, 0 }, 2958 { 0x012A, 0xCE, 0 }, 2959 { 0x012B, 0xEE, 0 }, 2960 { 0x012E, 0xC1, 0 }, 2961 { 0x012F, 0xE1, 0 }, 2962 { 0x0136, 0xCD, 0 }, 2963 { 0x0137, 0xED, 0 }, 2964 { 0x013B, 0xCF, 0 }, 2965 { 0x013C, 0xEF, 0 }, 2966 { 0x0141, 0xD9, 0 }, 2967 { 0x0142, 0xF9, 0 }, 2968 { 0x0143, 0xD1, 0 }, 2969 { 0x0144, 0xF1, 0 }, 2970 { 0x0145, 0xD2, 0 }, 2971 { 0x0146, 0xF2, 0 }, 2972 { 0x014C, 0xD4, 0 }, 2973 { 0x014D, 0xF4, 0 }, 2974 { 0x0156, 0xAA, 0 }, 2975 { 0x0157, 0xBA, 0 }, 2976 { 0x015A, 0xDA, 0 }, 2977 { 0x015B, 0xFA, 0 }, 2978 { 0x0160, 0xD0, 0 }, 2979 { 0x0161, 0xF0, 0 }, 2980 { 0x016A, 0xDB, 0 }, 2981 { 0x016B, 0xFB, 0 }, 2982 { 0x0172, 0xD8, 0 }, 2983 { 0x0173, 0xF8, 0 }, 2984 { 0x0179, 0xCA, 0 }, 2985 { 0x017A, 0xEA, 0 }, 2986 { 0x017B, 0xDD, 0 }, 2987 { 0x017C, 0xFD, 0 }, 2988 { 0x017D, 0xDE, 0 }, 2989 { 0x017E, 0xFE, 0 }, 2990 { 0x2019, 0xFF, 0 }, 2991 { 0x201C, 0xB4, 0 }, 2992 { 0x201D, 0xA1, 0 }, 2993 { 0x201E, 0xA5, 0 } 2994}; 2995 2996/* ----------------------------------------------------------------------- */ 2997 2998static ImplByteConvertData const aImplISO885913ByteCvtData = 2999{ 3000 aImplISO885913ToUniTab, 3001 aImpl8090SameToUniTab, 3002 ISO885913UNI_START, ISO885913UNI_END, 3003 SAME8090UNI_START, SAME8090UNI_END, 3004 aImpl8090SameToCharTab, 3005 NULL, 3006 aImplISO885913ToCharTabEx, 3007 SAME8090CHAR_START, SAME8090CHAR_END, 3008 NOTABCHAR_START, NOTABCHAR_END, 3009 ISO885913TOCHARTABEX_COUNT 3010}; 3011 3012/* ----------------------------------------------------------------------- */ 3013 3014static ImplTextEncodingData const aImplISO885913TextEncodingData 3015 = { { &aImplISO885913ByteCvtData, 3016 ImplCharToUnicode, 3017 ImplUnicodeToChar, 3018 NULL, 3019 NULL, 3020 NULL, 3021 NULL, 3022 NULL, 3023 NULL }, 3024 1, 3025 1, 3026 1, 3027 238, 3028 "iso8859-13", 3029 "iso-8859-13", 3030 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 3031 /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ 3032 3033/* ======================================================================= */ 3034 3035/* APPLE-CentEuro */ 3036/* Apple CharSet for Eastern Europa (Polish, Czech, Slovak, Hungarian, Estonian, Latvian, Lithuanian) */ 3037/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */ 3038/* die wir aber nicht beruecksichtigen */ 3039/* Convert-Tables: mappings/vendors/apple/centeuro.txt from 02/05/98 */ 3040/* Last-Changes from us: */ 3041 3042#define APPLECENTEUROUNI_START 0x80 3043#define APPLECENTEUROUNI_END 0xFF 3044static sal_uInt16 const aImplAPPLECENTEUROToUniTab[APPLECENTEUROUNI_END - APPLECENTEUROUNI_START + 1] = 3045{ 3046/* 0 1 2 3 4 5 6 7 */ 3047/* 8 9 A B C D E F */ 3048 0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */ 3049 0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179, /* 0x80 */ 3050 0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3, /* 0x90 */ 3051 0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC, /* 0x90 */ 3052 0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */ 3053 0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x0123, 0x012E, /* 0xA0 */ 3054 0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211, /* 0xB0 */ 3055 0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145, /* 0xB0 */ 3056 0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x2206, 0x00AB, /* 0xC0 */ 3057 0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C, /* 0xC0 */ 3058 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */ 3059 0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156, /* 0xD0 */ 3060 0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1, /* 0xE0 */ 3061 0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4, /* 0xE0 */ 3062 0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, /* 0xF0 */ 3063 0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7 /* 0xF0 */ 3064}; 3065 3066/* ----------------------------------------------------------------------- */ 3067 3068#define APPLECENTEUROTOCHARTABEX_COUNT 128 3069static ImplUniCharTabData const aImplAPPLECENTEUROToCharTabEx[APPLECENTEUROTOCHARTABEX_COUNT] = 3070{ 3071 { 0x00A0, 0xCA, 0 }, 3072 { 0x00A3, 0xA3, 0 }, 3073 { 0x00A7, 0xA4, 0 }, 3074 { 0x00A8, 0xAC, 0 }, 3075 { 0x00A9, 0xA9, 0 }, 3076 { 0x00AB, 0xC7, 0 }, 3077 { 0x00AC, 0xC2, 0 }, 3078 { 0x00AE, 0xA8, 0 }, 3079 { 0x00B0, 0xA1, 0 }, 3080 { 0x00B6, 0xA6, 0 }, 3081 { 0x00BB, 0xC8, 0 }, 3082 { 0x00C1, 0xE7, 0 }, 3083 { 0x00C4, 0x80, 0 }, 3084 { 0x00C9, 0x83, 0 }, 3085 { 0x00CD, 0xEA, 0 }, 3086 { 0x00D3, 0xEE, 0 }, 3087 { 0x00D4, 0xEF, 0 }, 3088 { 0x00D5, 0xCD, 0 }, 3089 { 0x00D6, 0x85, 0 }, 3090 { 0x00DA, 0xF2, 0 }, 3091 { 0x00DC, 0x86, 0 }, 3092 { 0x00DD, 0xF8, 0 }, 3093 { 0x00DF, 0xA7, 0 }, 3094 { 0x00E1, 0x87, 0 }, 3095 { 0x00E4, 0x8A, 0 }, 3096 { 0x00E9, 0x8E, 0 }, 3097 { 0x00ED, 0x92, 0 }, 3098 { 0x00F3, 0x97, 0 }, 3099 { 0x00F4, 0x99, 0 }, 3100 { 0x00F5, 0x9B, 0 }, 3101 { 0x00F6, 0x9A, 0 }, 3102 { 0x00F7, 0xD6, 0 }, 3103 { 0x00FA, 0x9C, 0 }, 3104 { 0x00FC, 0x9F, 0 }, 3105 { 0x00FD, 0xF9, 0 }, 3106 { 0x0100, 0x81, 0 }, 3107 { 0x0101, 0x82, 0 }, 3108 { 0x0104, 0x84, 0 }, 3109 { 0x0105, 0x88, 0 }, 3110 { 0x0106, 0x8C, 0 }, 3111 { 0x0107, 0x8D, 0 }, 3112 { 0x010C, 0x89, 0 }, 3113 { 0x010D, 0x8B, 0 }, 3114 { 0x010E, 0x91, 0 }, 3115 { 0x010F, 0x93, 0 }, 3116 { 0x0112, 0x94, 0 }, 3117 { 0x0113, 0x95, 0 }, 3118 { 0x0116, 0x96, 0 }, 3119 { 0x0117, 0x98, 0 }, 3120 { 0x0118, 0xA2, 0 }, 3121 { 0x0119, 0xAB, 0 }, 3122 { 0x011A, 0x9D, 0 }, 3123 { 0x011B, 0x9E, 0 }, 3124 { 0x0122, 0xFE, 0 }, 3125 { 0x0123, 0xAE, 0 }, 3126 { 0x012A, 0xB1, 0 }, 3127 { 0x012B, 0xB4, 0 }, 3128 { 0x012E, 0xAF, 0 }, 3129 { 0x012F, 0xB0, 0 }, 3130 { 0x0136, 0xB5, 0 }, 3131 { 0x0137, 0xFA, 0 }, 3132 { 0x0139, 0xBD, 0 }, 3133 { 0x013A, 0xBE, 0 }, 3134 { 0x013B, 0xB9, 0 }, 3135 { 0x013C, 0xBA, 0 }, 3136 { 0x013D, 0xBB, 0 }, 3137 { 0x013E, 0xBC, 0 }, 3138 { 0x0141, 0xFC, 0 }, 3139 { 0x0142, 0xB8, 0 }, 3140 { 0x0143, 0xC1, 0 }, 3141 { 0x0144, 0xC4, 0 }, 3142 { 0x0145, 0xBF, 0 }, 3143 { 0x0146, 0xC0, 0 }, 3144 { 0x0147, 0xC5, 0 }, 3145 { 0x0148, 0xCB, 0 }, 3146 { 0x014C, 0xCF, 0 }, 3147 { 0x014D, 0xD8, 0 }, 3148 { 0x0150, 0xCC, 0 }, 3149 { 0x0151, 0xCE, 0 }, 3150 { 0x0154, 0xD9, 0 }, 3151 { 0x0155, 0xDA, 0 }, 3152 { 0x0156, 0xDF, 0 }, 3153 { 0x0157, 0xE0, 0 }, 3154 { 0x0158, 0xDB, 0 }, 3155 { 0x0159, 0xDE, 0 }, 3156 { 0x015A, 0xE5, 0 }, 3157 { 0x015B, 0xE6, 0 }, 3158 { 0x0160, 0xE1, 0 }, 3159 { 0x0161, 0xE4, 0 }, 3160 { 0x0164, 0xE8, 0 }, 3161 { 0x0165, 0xE9, 0 }, 3162 { 0x016A, 0xED, 0 }, 3163 { 0x016B, 0xF0, 0 }, 3164 { 0x016E, 0xF1, 0 }, 3165 { 0x016F, 0xF3, 0 }, 3166 { 0x0170, 0xF4, 0 }, 3167 { 0x0171, 0xF5, 0 }, 3168 { 0x0172, 0xF6, 0 }, 3169 { 0x0173, 0xF7, 0 }, 3170 { 0x0179, 0x8F, 0 }, 3171 { 0x017A, 0x90, 0 }, 3172 { 0x017B, 0xFB, 0 }, 3173 { 0x017C, 0xFD, 0 }, 3174 { 0x017D, 0xEB, 0 }, 3175 { 0x017E, 0xEC, 0 }, 3176 { 0x02C7, 0xFF, 0 }, 3177 { 0x2013, 0xD0, 0 }, 3178 { 0x2014, 0xD1, 0 }, 3179 { 0x2018, 0xD4, 0 }, 3180 { 0x2019, 0xD5, 0 }, 3181 { 0x201A, 0xE2, 0 }, 3182 { 0x201C, 0xD2, 0 }, 3183 { 0x201D, 0xD3, 0 }, 3184 { 0x201E, 0xE3, 0 }, 3185 { 0x2020, 0xA0, 0 }, 3186 { 0x2022, 0xA5, 0 }, 3187 { 0x2026, 0xC9, 0 }, 3188 { 0x2039, 0xDC, 0 }, 3189 { 0x203A, 0xDD, 0 }, 3190 { 0x2122, 0xAA, 0 }, 3191 { 0x2202, 0xB6, 0 }, 3192 { 0x2206, 0xC6, 0 }, 3193 { 0x2211, 0xB7, 0 }, 3194 { 0x221A, 0xC3, 0 }, 3195 { 0x2260, 0xAD, 0 }, 3196 { 0x2264, 0xB2, 0 }, 3197 { 0x2265, 0xB3, 0 }, 3198 { 0x25CA, 0xD7, 0 } 3199}; 3200 3201/* ----------------------------------------------------------------------- */ 3202 3203static ImplByteConvertData const aImplAPPLECENTEUROByteCvtData = 3204{ 3205 aImplAPPLECENTEUROToUniTab, 3206 NULL, 3207 APPLECENTEUROUNI_START, APPLECENTEUROUNI_END, 3208 NOTABUNI_START, NOTABUNI_END, 3209 NULL, 3210 NULL, 3211 aImplAPPLECENTEUROToCharTabEx, 3212 NOTABCHAR_START, NOTABCHAR_END, 3213 NOTABCHAR_START, NOTABCHAR_END, 3214 APPLECENTEUROTOCHARTABEX_COUNT 3215}; 3216 3217/* ----------------------------------------------------------------------- */ 3218 3219static ImplTextEncodingData const aImplAPPLECENTEUROTextEncodingData 3220 = { { &aImplAPPLECENTEUROByteCvtData, 3221 ImplCharToUnicode, 3222 ImplUnicodeToChar, 3223 NULL, 3224 NULL, 3225 NULL, 3226 NULL, 3227 NULL, 3228 NULL }, 3229 1, 3230 1, 3231 1, 3232 238, 3233 "iso8859-2", 3234 "iso-8859-2", 3235 RTL_TEXTENCODING_INFO_ASCII }; 3236 /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */ 3237 3238/* ======================================================================= */ 3239 3240/* APPLE-Croatian */ 3241/* Standard Apple CharSet for Croatian */ 3242/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */ 3243/* die wir aber nicht beruecksichtigen */ 3244/* Convert-Tables: mappings/vendors/apple/croatien.txt from 02/05/98 */ 3245/* Last-Changes from us: */ 3246 3247#define APPLECROATIANUNI_START 0x80 3248#define APPLECROATIANUNI_END 0xFF 3249static sal_uInt16 const aImplAPPLECROATIANToUniTab[APPLECROATIANUNI_END - APPLECROATIANUNI_START + 1] = 3250{ 3251/* 0 1 2 3 4 5 6 7 */ 3252/* 8 9 A B C D E F */ 3253 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */ 3254 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */ 3255 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */ 3256 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */ 3257 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */ 3258 0x00AE, 0x0160, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x017D, 0x00D8, /* 0xA0 */ 3259 0x221E, 0x00B1, 0x2264, 0x2265, 0x2206, 0x00B5, 0x2202, 0x2211, /* 0xB0 */ 3260 0x220F, 0x0161, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x017E, 0x00F8, /* 0xB0 */ 3261 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0106, 0x00AB, /* 0xC0 */ 3262 0x010C, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */ 3263 0x0110, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */ 3264 0xF8FF, 0x00A9, 0x2044, 0x00A4, 0x2039, 0x203A, 0x00C6, 0x00BB, /* 0xD0 */ 3265 0x2013, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x0107, 0x00C1, /* 0xE0 */ 3266 0x010D, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */ 3267 0x0111, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */ 3268 0x00AF, 0x03C0, 0x00CB, 0x02DA, 0x00B8, 0x00CA, 0x00E6, 0x02C7 /* 0xF0 */ 3269}; 3270 3271/* ----------------------------------------------------------------------- */ 3272 3273#define APPLECROATIANCHAR_START 0x00A0 3274#define APPLECROATIANCHAR_END 0x00FC 3275static sal_uChar const aImplAPPLECROATIANToCharTab[APPLECROATIANCHAR_END - APPLECROATIANCHAR_START + 1] = 3276{ 3277/* 0 1 2 3 4 5 6 7 */ 3278/* 8 9 A B C D E F */ 3279 0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0, 0, 0xA4, /* 0x00A0 */ 3280 0xAC, 0xD9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */ 3281 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */ 3282 0xFC, 0, 0xBC, 0xDF, 0, 0, 0, 0xC0, /* 0x00B0 */ 3283 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xDE, 0x82, /* 0x00C0 */ 3284 0xE9, 0x83, 0xFD, 0xFA, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */ 3285 0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */ 3286 0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0, 0, 0xA7, /* 0x00D0 */ 3287 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xFE, 0x8D, /* 0x00E0 */ 3288 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */ 3289 0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */ 3290 0xBF, 0x9D, 0x9C, 0x9E, 0x9F /* 0x00F0 */ 3291}; 3292 3293/* ----------------------------------------------------------------------- */ 3294 3295#define APPLECROATIANTOCHARTABEX_COUNT 49 3296static ImplUniCharTabData const aImplAPPLECROATIANToCharTabEx[APPLECROATIANTOCHARTABEX_COUNT] = 3297{ 3298 { 0x0106, 0xC6, 0 }, 3299 { 0x0107, 0xE6, 0 }, 3300 { 0x010C, 0xC8, 0 }, 3301 { 0x010D, 0xE8, 0 }, 3302 { 0x0110, 0xD0, 0 }, 3303 { 0x0111, 0xF0, 0 }, 3304 { 0x0131, 0xF5, 0 }, 3305 { 0x0152, 0xCE, 0 }, 3306 { 0x0153, 0xCF, 0 }, 3307 { 0x0160, 0xA9, 0 }, 3308 { 0x0161, 0xB9, 0 }, 3309 { 0x017D, 0xAE, 0 }, 3310 { 0x017E, 0xBE, 0 }, 3311 { 0x0192, 0xC4, 0 }, 3312 { 0x02C6, 0xF6, 0 }, 3313 { 0x02C7, 0xFF, 0 }, 3314 { 0x02DA, 0xFB, 0 }, 3315 { 0x02DC, 0xF7, 0 }, 3316 { 0x03A9, 0xBD, 0 }, 3317 { 0x03C0, 0xF9, 0 }, 3318 { 0x2013, 0xE0, 0 }, 3319 { 0x2014, 0xD1, 0 }, 3320 { 0x2018, 0xD4, 0 }, 3321 { 0x2019, 0xD5, 0 }, 3322 { 0x201A, 0xE2, 0 }, 3323 { 0x201C, 0xD2, 0 }, 3324 { 0x201D, 0xD3, 0 }, 3325 { 0x201E, 0xE3, 0 }, 3326 { 0x2020, 0xA0, 0 }, 3327 { 0x2022, 0xA5, 0 }, 3328 { 0x2026, 0xC9, 0 }, 3329 { 0x2030, 0xE4, 0 }, 3330 { 0x2039, 0xDC, 0 }, 3331 { 0x203A, 0xDD, 0 }, 3332 { 0x2044, 0xDA, 0 }, 3333 { 0x2122, 0xAA, 0 }, 3334 { 0x2202, 0xB6, 0 }, 3335 { 0x2206, 0xB4, 0 }, 3336 { 0x220F, 0xB8, 0 }, 3337 { 0x2211, 0xB7, 0 }, 3338 { 0x221A, 0xC3, 0 }, 3339 { 0x221E, 0xB0, 0 }, 3340 { 0x222B, 0xBA, 0 }, 3341 { 0x2248, 0xC5, 0 }, 3342 { 0x2260, 0xAD, 0 }, 3343 { 0x2264, 0xB2, 0 }, 3344 { 0x2265, 0xB3, 0 }, 3345 { 0x25CA, 0xD7, 0 }, 3346 { 0xF8FF, 0xD8, 0 } 3347}; 3348 3349/* ----------------------------------------------------------------------- */ 3350 3351static ImplByteConvertData const aImplAPPLECROATIANByteCvtData = 3352{ 3353 aImplAPPLECROATIANToUniTab, 3354 NULL, 3355 APPLECROATIANUNI_START, APPLECROATIANUNI_END, 3356 NOTABUNI_START, NOTABUNI_END, 3357 aImplAPPLECROATIANToCharTab, 3358 NULL, 3359 aImplAPPLECROATIANToCharTabEx, 3360 APPLECROATIANCHAR_START, APPLECROATIANCHAR_END, 3361 NOTABCHAR_START, NOTABCHAR_END, 3362 APPLECROATIANTOCHARTABEX_COUNT 3363}; 3364 3365/* ----------------------------------------------------------------------- */ 3366 3367static ImplTextEncodingData const aImplAPPLECROATIANTextEncodingData 3368 = { { &aImplAPPLECROATIANByteCvtData, 3369 ImplCharToUnicode, 3370 ImplUnicodeToChar, 3371 NULL, 3372 NULL, 3373 NULL, 3374 NULL, 3375 NULL, 3376 NULL }, 3377 1, 3378 1, 3379 1, 3380 238, 3381 "iso8859-2", 3382 "iso-8859-2", 3383 RTL_TEXTENCODING_INFO_ASCII }; 3384 /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 36 */ 3385 3386/* ======================================================================= */ 3387 3388/* APPLE-Cyrillic */ 3389/* Apple CharSet for Cyrillic */ 3390/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */ 3391/* die wir aber nicht beruecksichtigen */ 3392/* Convert-Tables: mappings/vendors/apple/cyrillic.txt from 02/15/98 */ 3393/* Last-Changes from us: */ 3394 3395#define APPLECYRILLICUNI_START 0x80 3396#define APPLECYRILLICUNI_END 0xFF 3397static sal_uInt16 const aImplAPPLECYRILLICToUniTab[APPLECYRILLICUNI_END - APPLECYRILLICUNI_START + 1] = 3398{ 3399/* 0 1 2 3 4 5 6 7 */ 3400/* 8 9 A B C D E F */ 3401 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */ 3402 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */ 3403 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */ 3404 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */ 3405 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, /* 0xA0 */ 3406 0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, /* 0xA0 */ 3407 0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x2202, 0x0408, /* 0xB0 */ 3408 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, /* 0xB0 */ 3409 0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */ 3410 0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, /* 0xC0 */ 3411 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, /* 0xD0 */ 3412 0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, /* 0xD0 */ 3413 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */ 3414 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */ 3415 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */ 3416 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x00A4 /* 0xF0 */ 3417}; 3418 3419/* ----------------------------------------------------------------------- */ 3420 3421#define APPLECYRILLICCHAR_START 0x0401 3422#define APPLECYRILLICCHAR_END 0x045F 3423static sal_uChar const aImplAPPLECYRILLICToCharTab[APPLECYRILLICCHAR_END - APPLECYRILLICCHAR_START + 1] = 3424{ 3425/* 0 1 2 3 4 5 6 7 */ 3426/* 8 9 A B C D E F */ 3427 0xDD, 0xAB, 0xAE, 0xB8, 0xC1, 0xA7, 0xBA, /* 0x0400 */ 3428 0xB7, 0xBC, 0xBE, 0xCB, 0xCD, 0, 0xD8, 0xDA, /* 0x0400 */ 3429 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */ 3430 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */ 3431 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */ 3432 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */ 3433 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */ 3434 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */ 3435 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */ 3436 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, /* 0x0440 */ 3437 0, 0xDE, 0xAC, 0xAF, 0xB9, 0xCF, 0xB4, 0xBB, /* 0x0450 */ 3438 0xC0, 0xBD, 0xBF, 0xCC, 0xCE, 0, 0xD9, 0xDB, /* 0x0450 */ 3439}; 3440 3441/* ----------------------------------------------------------------------- */ 3442 3443#define APPLECYRILLICTOCHARTABEX_COUNT 36 3444static ImplUniCharTabData const aImplAPPLECYRILLICToCharTabEx[APPLECYRILLICTOCHARTABEX_COUNT] = 3445{ 3446 { 0x00A0, 0xCA, 0 }, 3447 { 0x00A2, 0xA2, 0 }, 3448 { 0x00A3, 0xA3, 0 }, 3449 { 0x00A4, 0xFF, 0 }, 3450 { 0x00A7, 0xA4, 0 }, 3451 { 0x00A9, 0xA9, 0 }, 3452 { 0x00AB, 0xC7, 0 }, 3453 { 0x00AC, 0xC2, 0 }, 3454 { 0x00AE, 0xA8, 0 }, 3455 { 0x00B0, 0xA1, 0 }, 3456 { 0x00B1, 0xB1, 0 }, 3457 { 0x00B5, 0xB5, 0 }, 3458 { 0x00B6, 0xA6, 0 }, 3459 { 0x00BB, 0xC8, 0 }, 3460 { 0x00F7, 0xD6, 0 }, 3461 { 0x0192, 0xC4, 0 }, 3462 { 0x2013, 0xD0, 0 }, 3463 { 0x2014, 0xD1, 0 }, 3464 { 0x2018, 0xD4, 0 }, 3465 { 0x2019, 0xD5, 0 }, 3466 { 0x201C, 0xD2, 0 }, 3467 { 0x201D, 0xD3, 0 }, 3468 { 0x201E, 0xD7, 0 }, 3469 { 0x2020, 0xA0, 0 }, 3470 { 0x2022, 0xA5, 0 }, 3471 { 0x2026, 0xC9, 0 }, 3472 { 0x2116, 0xDC, 0 }, 3473 { 0x2122, 0xAA, 0 }, 3474 { 0x2202, 0xB6, 0 }, 3475 { 0x2206, 0xC6, 0 }, 3476 { 0x221A, 0xC3, 0 }, 3477 { 0x221E, 0xB0, 0 }, 3478 { 0x2248, 0xC5, 0 }, 3479 { 0x2260, 0xAD, 0 }, 3480 { 0x2264, 0xB2, 0 }, 3481 { 0x2265, 0xB3, 0 } 3482}; 3483 3484/* ----------------------------------------------------------------------- */ 3485 3486static ImplByteConvertData const aImplAPPLECYRILLICByteCvtData = 3487{ 3488 aImplAPPLECYRILLICToUniTab, 3489 NULL, 3490 APPLECYRILLICUNI_START, APPLECYRILLICUNI_END, 3491 NOTABUNI_START, NOTABUNI_END, 3492 aImplAPPLECYRILLICToCharTab, 3493 NULL, 3494 aImplAPPLECYRILLICToCharTabEx, 3495 APPLECYRILLICCHAR_START, APPLECYRILLICCHAR_END, 3496 NOTABCHAR_START, NOTABCHAR_END, 3497 APPLECYRILLICTOCHARTABEX_COUNT 3498}; 3499 3500/* ----------------------------------------------------------------------- */ 3501 3502static ImplTextEncodingData const aImplAPPLECYRILLICTextEncodingData 3503 = { { &aImplAPPLECYRILLICByteCvtData, 3504 ImplCharToUnicode, 3505 ImplUnicodeToChar, 3506 NULL, 3507 NULL, 3508 NULL, 3509 NULL, 3510 NULL, 3511 NULL }, 3512 1, 3513 1, 3514 1, 3515 204, 3516 "iso8859-5", 3517 "iso-8859-5", 3518 RTL_TEXTENCODING_INFO_ASCII }; 3519 /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ 3520 3521/* ======================================================================= */ 3522 3523/* APPLE-Greek */ 3524/* Apple CharSet for Greek */ 3525/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */ 3526/* die wir aber nicht beruecksichtigen */ 3527/* Convert-Tables: mappings/vendors/apple/roman.txt from 08/18/98 */ 3528/* Last-Changes from us: */ 3529 3530#define APPLEGREEKUNI_START 0x80 3531#define APPLEGREEKUNI_END 0xFF 3532static sal_uInt16 const aImplAPPLEGREEKToUniTab[APPLEGREEKUNI_END - APPLEGREEKUNI_START + 1] = 3533{ 3534/* 0 1 2 3 4 5 6 7 */ 3535/* 8 9 A B C D E F */ 3536 0x00C4, 0x00B9, 0x00B2, 0x00C9, 0x00B3, 0x00D6, 0x00DC, 0x0385, /* 0x80 */ 3537 0x00E0, 0x00E2, 0x00E4, 0x0384, 0x00A8, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */ 3538 0x00EA, 0x00EB, 0x00A3, 0x2122, 0x00EE, 0x00EF, 0x2022, 0x00BD, /* 0x90 */ 3539 0x2030, 0x00F4, 0x00F6, 0x00A6, 0x00AD, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */ 3540 0x2020, 0x0393, 0x0394, 0x0398, 0x039B, 0x039E, 0x03A0, 0x00DF, /* 0xA0 */ 3541 0x00AE, 0x00A9, 0x03A3, 0x03AA, 0x00A7, 0x2260, 0x00B0, 0x00B7, /* 0xA0 */ 3542 0x0391, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x0392, 0x0395, 0x0396, /* 0xB0 */ 3543 0x0397, 0x0399, 0x039A, 0x039C, 0x03A6, 0x03AB, 0x03A8, 0x03A9, /* 0xB0 */ 3544 0x03AC, 0x039D, 0x00AC, 0x039F, 0x03A1, 0x2248, 0x03A4, 0x00AB, /* 0xC0 */ 3545 0x00BB, 0x2026, 0x00A0, 0x03A5, 0x03A7, 0x0386, 0x0388, 0x0153, /* 0xC0 */ 3546 0x2013, 0x2015, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0389, /* 0xD0 */ 3547 0x038A, 0x038C, 0x038E, 0x03AD, 0x03AE, 0x03AF, 0x03CC, 0x038F, /* 0xD0 */ 3548 0x03CD, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3, /* 0xE0 */ 3549 0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, /* 0xE0 */ 3550 0x03C0, 0x03CE, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2, /* 0xF0 */ 3551 0x03C7, 0x03C5, 0x03B6, 0x03CA, 0x03CB, 0x0390, 0x03B0, 0xF8A0 /* 0xF0 */ 3552}; 3553 3554/* ----------------------------------------------------------------------- */ 3555 3556#define APPLEGREEKCHAR_START 0x0384 3557#define APPLEGREEKCHAR_END 0x03CE 3558static sal_uChar const aImplAPPLEGREEKToCharTab[APPLEGREEKCHAR_END - APPLEGREEKCHAR_START + 1] = 3559{ 3560/* 0 1 2 3 4 5 6 7 */ 3561/* 8 9 A B C D E F */ 3562 0x8B, 0x87, 0xCD, 0, /* 0x0380 */ 3563 0xCE, 0xD7, 0xD8, 0, 0xD9, 0, 0xDA, 0xDF, /* 0x0380 */ 3564 0xFD, 0xB0, 0xB5, 0xA1, 0xA2, 0xB6, 0xB7, 0xB8, /* 0x0390 */ 3565 0xA3, 0xB9, 0xBA, 0xA4, 0xBB, 0xC1, 0xA5, 0xC3, /* 0x0390 */ 3566 0xA6, 0xC4, 0, 0xAA, 0xC6, 0xCB, 0xBC, 0xCC, /* 0x03A0 */ 3567 0xBE, 0xBF, 0xAB, 0xBD, 0xC0, 0xDB, 0xDC, 0xDD, /* 0x03A0 */ 3568 0xFE, 0xE1, 0xE2, 0xE7, 0xE4, 0xE5, 0xFA, 0xE8, /* 0x03B0 */ 3569 0xF5, 0xE9, 0xEB, 0xEC, 0xED, 0xEE, 0xEA, 0xEF, /* 0x03B0 */ 3570 0xF0, 0xF2, 0xF7, 0xF3, 0xF4, 0xF9, 0xE6, 0xF8, /* 0x03C0 */ 3571 0xE3, 0xF6, 0xFB, 0xFC, 0xDE, 0xE0, 0xF1 /* 0x03C0 */ 3572}; 3573 3574/* ----------------------------------------------------------------------- */ 3575 3576#define APPLEGREEKTOCHARTABEX_COUNT 57 3577static ImplUniCharTabData const aImplAPPLEGREEKToCharTabEx[APPLEGREEKTOCHARTABEX_COUNT] = 3578{ 3579 { 0x00A0, 0xCA, 0 }, 3580 { 0x00A3, 0x92, 0 }, 3581 { 0x00A5, 0xB4, 0 }, 3582 { 0x00A6, 0x9B, 0 }, 3583 { 0x00A7, 0xAC, 0 }, 3584 { 0x00A8, 0x8C, 0 }, 3585 { 0x00A9, 0xA9, 0 }, 3586 { 0x00AB, 0xC7, 0 }, 3587 { 0x00AC, 0xC2, 0 }, 3588 { 0x00AD, 0x9C, 0 }, 3589 { 0x00AE, 0xA8, 0 }, 3590 { 0x00B0, 0xAE, 0 }, 3591 { 0x00B1, 0xB1, 0 }, 3592 { 0x00B2, 0x82, 0 }, 3593 { 0x00B3, 0x84, 0 }, 3594 { 0x00B7, 0xAF, 0 }, 3595 { 0x00B9, 0x81, 0 }, 3596 { 0x00BB, 0xC8, 0 }, 3597 { 0x00BD, 0x97, 0 }, 3598 { 0x00C4, 0x80, 0 }, 3599 { 0x00C9, 0x83, 0 }, 3600 { 0x00D6, 0x85, 0 }, 3601 { 0x00DC, 0x86, 0 }, 3602 { 0x00DF, 0xA7, 0 }, 3603 { 0x00E0, 0x88, 0 }, 3604 { 0x00E2, 0x89, 0 }, 3605 { 0x00E4, 0x8A, 0 }, 3606 { 0x00E7, 0x8D, 0 }, 3607 { 0x00E8, 0x8F, 0 }, 3608 { 0x00E9, 0x8E, 0 }, 3609 { 0x00EA, 0x90, 0 }, 3610 { 0x00EB, 0x91, 0 }, 3611 { 0x00EE, 0x94, 0 }, 3612 { 0x00EF, 0x95, 0 }, 3613 { 0x00F4, 0x99, 0 }, 3614 { 0x00F6, 0x9A, 0 }, 3615 { 0x00F7, 0xD6, 0 }, 3616 { 0x00F9, 0x9D, 0 }, 3617 { 0x00FB, 0x9E, 0 }, 3618 { 0x00FC, 0x9F, 0 }, 3619 { 0x0153, 0xCF, 0 }, 3620 { 0x2013, 0xD0, 0 }, 3621 { 0x2015, 0xD1, 0 }, 3622 { 0x2018, 0xD4, 0 }, 3623 { 0x2019, 0xD5, 0 }, 3624 { 0x201C, 0xD2, 0 }, 3625 { 0x201D, 0xD3, 0 }, 3626 { 0x2020, 0xA0, 0 }, 3627 { 0x2022, 0x96, 0 }, 3628 { 0x2026, 0xC9, 0 }, 3629 { 0x2030, 0x98, 0 }, 3630 { 0x2122, 0x93, 0 }, 3631 { 0x2248, 0xC5, 0 }, 3632 { 0x2260, 0xAD, 0 }, 3633 { 0x2264, 0xB2, 0 }, 3634 { 0x2265, 0xB3, 0 }, 3635 { 0xF8A0, 0xFF, 0 } 3636}; 3637 3638/* ----------------------------------------------------------------------- */ 3639 3640static ImplByteConvertData const aImplAPPLEGREEKByteCvtData = 3641{ 3642 aImplAPPLEGREEKToUniTab, 3643 NULL, 3644 APPLEGREEKUNI_START, APPLEGREEKUNI_END, 3645 NOTABUNI_START, NOTABUNI_END, 3646 aImplAPPLEGREEKToCharTab, 3647 NULL, 3648 aImplAPPLEGREEKToCharTabEx, 3649 APPLEGREEKCHAR_START, APPLEGREEKCHAR_END, 3650 NOTABCHAR_START, NOTABCHAR_END, 3651 APPLEGREEKTOCHARTABEX_COUNT 3652}; 3653 3654/* ----------------------------------------------------------------------- */ 3655 3656static ImplTextEncodingData const aImplAPPLEGREEKTextEncodingData 3657 = { { &aImplAPPLEGREEKByteCvtData, 3658 ImplCharToUnicode, 3659 ImplUnicodeToChar, 3660 NULL, 3661 NULL, 3662 NULL, 3663 NULL, 3664 NULL, 3665 NULL }, 3666 1, 3667 1, 3668 1, 3669 161, 3670 "iso8859-7", 3671 "iso-8859-7", 3672 RTL_TEXTENCODING_INFO_ASCII }; 3673 /* MAC, SCRIPT_GREEK, pc code page 869, mac encoding 6 */ 3674 3675/* ======================================================================= */ 3676 3677/* APPLE-Romanian */ 3678/* Standard Apple CharSet for Romanien */ 3679/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */ 3680/* die wir aber nicht beruecksichtigen */ 3681/* Convert-Tables: mappings/vendors/apple/romanian.txt from 02/05/98 */ 3682/* Last-Changes from us: */ 3683/* 0xAF --> 0x015E (like Java), Apple Definition: 0x0053+0x0326 # LATIN CAPITAL LETTER S + COMBINING COMMA BELOW */ 3684/* 0xBF --> 0x015F (like Java), Apple Definition: 0x0073+0x0326 # LATIN SMALL LETTER S + COMBINING COMMA BELOW */ 3685/* 0xDE --> 0x0162 (like Java), Apple Definition: 0x0054+0x0326 # LATIN CAPITAL LETTER T + COMBINING COMMA BELOW */ 3686/* 0xDF --> 0x0163 (like Java), Apple Definition: 0x0074+0x0326 # LATIN SMALL LETTER T + COMBINING COMMA BELOW */ 3687 3688#define APPLEROMANIANUNI_START 0x80 3689#define APPLEROMANIANUNI_END 0xFF 3690static sal_uInt16 const aImplAPPLEROMANIANToUniTab[APPLEROMANIANUNI_END - APPLEROMANIANUNI_START + 1] = 3691{ 3692/* 0 1 2 3 4 5 6 7 */ 3693/* 8 9 A B C D E F */ 3694 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */ 3695 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */ 3696 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */ 3697 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */ 3698 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */ 3699 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x0102, 0x015E, /* 0xA0 */ 3700 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */ 3701 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x0103, 0x015F, /* 0xB0 */ 3702 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */ 3703 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */ 3704 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */ 3705 0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0x0162, 0x0163, /* 0xD0 */ 3706 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */ 3707 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */ 3708 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */ 3709 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 /* 0xF0 */ 3710}; 3711 3712/* ----------------------------------------------------------------------- */ 3713 3714#define APPLEROMANIANCHAR_START 0x00A0 3715#define APPLEROMANIANCHAR_END 0x00FF 3716static sal_uChar const aImplAPPLEROMANIANToCharTab[APPLEROMANIANCHAR_END - APPLEROMANIANCHAR_START + 1] = 3717{ 3718/* 0 1 2 3 4 5 6 7 */ 3719/* 8 9 A B C D E F */ 3720 0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0xB4, 0, 0xA4, /* 0x00A0 */ 3721 0xAC, 0xA9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */ 3722 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */ 3723 0xFC, 0, 0xBC, 0xC8, 0, 0, 0, 0xC0, /* 0x00B0 */ 3724 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0, 0x82, /* 0x00C0 */ 3725 0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */ 3726 0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */ 3727 0, 0xF4, 0xF2, 0xF3, 0x86, 0, 0, 0xA7, /* 0x00D0 */ 3728 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0, 0x8D, /* 0x00E0 */ 3729 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */ 3730 0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */ 3731 0, 0x9D, 0x9C, 0x9E, 0x9F, 0, 0, 0xD8 /* 0x00F0 */ 3732}; 3733 3734/* ----------------------------------------------------------------------- */ 3735 3736#define APPLEROMANIANTOCHARTABEX_COUNT 51 3737static ImplUniCharTabData const aImplAPPLEROMANIANToCharTabEx[APPLEROMANIANTOCHARTABEX_COUNT] = 3738{ 3739 { 0x0102, 0xAE, 0 }, 3740 { 0x0103, 0xBE, 0 }, 3741 { 0x0131, 0xF5, 0 }, 3742 { 0x0152, 0xCE, 0 }, 3743 { 0x0153, 0xCF, 0 }, 3744 { 0x015E, 0xAF, 0 }, 3745 { 0x015F, 0xBF, 0 }, 3746 { 0x0162, 0xDE, 0 }, 3747 { 0x0163, 0xDF, 0 }, 3748 { 0x0178, 0xD9, 0 }, 3749 { 0x0192, 0xC4, 0 }, 3750 { 0x02C6, 0xF6, 0 }, 3751 { 0x02C7, 0xFF, 0 }, 3752 { 0x02D8, 0xF9, 0 }, 3753 { 0x02D9, 0xFA, 0 }, 3754 { 0x02DA, 0xFB, 0 }, 3755 { 0x02DB, 0xFE, 0 }, 3756 { 0x02DC, 0xF7, 0 }, 3757 { 0x02DD, 0xFD, 0 }, 3758 { 0x03A9, 0xBD, 0 }, 3759 { 0x03C0, 0xB9, 0 }, 3760 { 0x2013, 0xD0, 0 }, 3761 { 0x2014, 0xD1, 0 }, 3762 { 0x2018, 0xD4, 0 }, 3763 { 0x2019, 0xD5, 0 }, 3764 { 0x201A, 0xE2, 0 }, 3765 { 0x201C, 0xD2, 0 }, 3766 { 0x201D, 0xD3, 0 }, 3767 { 0x201E, 0xE3, 0 }, 3768 { 0x2020, 0xA0, 0 }, 3769 { 0x2021, 0xE0, 0 }, 3770 { 0x2022, 0xA5, 0 }, 3771 { 0x2026, 0xC9, 0 }, 3772 { 0x2030, 0xE4, 0 }, 3773 { 0x2039, 0xDC, 0 }, 3774 { 0x203A, 0xDD, 0 }, 3775 { 0x2044, 0xDA, 0 }, 3776 { 0x2122, 0xAA, 0 }, 3777 { 0x2202, 0xB6, 0 }, 3778 { 0x2206, 0xC6, 0 }, 3779 { 0x220F, 0xB8, 0 }, 3780 { 0x2211, 0xB7, 0 }, 3781 { 0x221A, 0xC3, 0 }, 3782 { 0x221E, 0xB0, 0 }, 3783 { 0x222B, 0xBA, 0 }, 3784 { 0x2248, 0xC5, 0 }, 3785 { 0x2260, 0xAD, 0 }, 3786 { 0x2264, 0xB2, 0 }, 3787 { 0x2265, 0xB3, 0 }, 3788 { 0x25CA, 0xD7, 0 }, 3789 { 0xF8FF, 0xF0, 0 } 3790}; 3791 3792/* ----------------------------------------------------------------------- */ 3793 3794static ImplByteConvertData const aImplAPPLEROMANIANByteCvtData = 3795{ 3796 aImplAPPLEROMANIANToUniTab, 3797 NULL, 3798 APPLEROMANIANUNI_START, APPLEROMANIANUNI_END, 3799 NOTABUNI_START, NOTABUNI_END, 3800 aImplAPPLEROMANIANToCharTab, 3801 NULL, 3802 aImplAPPLEROMANIANToCharTabEx, 3803 APPLEROMANIANCHAR_START, APPLEROMANIANCHAR_END, 3804 NOTABCHAR_START, NOTABCHAR_END, 3805 APPLEROMANIANTOCHARTABEX_COUNT 3806}; 3807 3808/* ----------------------------------------------------------------------- */ 3809 3810static ImplTextEncodingData const aImplAPPLEROMANIANTextEncodingData 3811 = { { &aImplAPPLEROMANIANByteCvtData, 3812 ImplCharToUnicode, 3813 ImplUnicodeToChar, 3814 NULL, 3815 NULL, 3816 NULL, 3817 NULL, 3818 NULL, 3819 NULL }, 3820 1, 3821 1, 3822 1, 3823 238, 3824 "iso8859-2", 3825 "iso-8859-2", 3826 RTL_TEXTENCODING_INFO_ASCII }; 3827 /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 38 */ 3828 3829/* ======================================================================= */ 3830 3831/* APPLE-Turkish */ 3832/* Apple CharSet for Turkish */ 3833/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */ 3834/* die wir aber nicht beruecksichtigen */ 3835/* Convert-Tables: mappings/vendors/apple/turkish.txt from 02/05/98 */ 3836/* Last-Changes from us: */ 3837 3838#define APPLETURKISHUNI_START 0x80 3839#define APPLETURKISHUNI_END 0xFF 3840static sal_uInt16 const aImplAPPLETURKISHToUniTab[APPLETURKISHUNI_END - APPLETURKISHUNI_START + 1] = 3841{ 3842/* 0 1 2 3 4 5 6 7 */ 3843/* 8 9 A B C D E F */ 3844 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */ 3845 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */ 3846 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */ 3847 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */ 3848 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */ 3849 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, /* 0xA0 */ 3850 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */ 3851 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, /* 0xB0 */ 3852 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */ 3853 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */ 3854 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */ 3855 0x00FF, 0x0178, 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F, /* 0xD0 */ 3856 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */ 3857 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */ 3858 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0xF8A0, 0x02C6, 0x02DC, /* 0xF0 */ 3859 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 /* 0xF0 */ 3860}; 3861 3862/* ----------------------------------------------------------------------- */ 3863 3864#define APPLETURKISHCHAR_START 0x00A0 3865#define APPLETURKISHCHAR_END 0x00FF 3866static sal_uChar const aImplAPPLETURKISHToCharTab[APPLETURKISHCHAR_END - APPLETURKISHCHAR_START + 1] = 3867{ 3868/* 0 1 2 3 4 5 6 7 */ 3869/* 8 9 A B C D E F */ 3870 0xCA, 0xC1, 0xA2, 0xA3, 0, 0xB4, 0, 0xA4, /* 0x00A0 */ 3871 0xAC, 0xA9, 0xBB, 0xC7, 0xC2, 0, 0xA8, 0xF8, /* 0x00A0 */ 3872 0xA1, 0xB1, 0, 0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */ 3873 0xFC, 0, 0xBC, 0xC8, 0, 0, 0, 0xC0, /* 0x00B0 */ 3874 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, /* 0x00C0 */ 3875 0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */ 3876 0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0, /* 0x00D0 */ 3877 0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0, 0, 0xA7, /* 0x00D0 */ 3878 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, /* 0x00E0 */ 3879 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */ 3880 0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */ 3881 0xBF, 0x9D, 0x9C, 0x9E, 0x9F, 0, 0, 0xD8 /* 0x00F0 */ 3882}; 3883 3884/* ----------------------------------------------------------------------- */ 3885 3886#define APPLETURKISHTOCHARTABEX_COUNT 48 3887static ImplUniCharTabData const aImplAPPLETURKISHToCharTabEx[APPLETURKISHTOCHARTABEX_COUNT] = 3888{ 3889 { 0x011E, 0xDA, 0 }, 3890 { 0x011F, 0xDB, 0 }, 3891 { 0x0130, 0xDC, 0 }, 3892 { 0x0131, 0xDD, 0 }, 3893 { 0x0152, 0xCE, 0 }, 3894 { 0x0153, 0xCF, 0 }, 3895 { 0x015E, 0xDE, 0 }, 3896 { 0x015F, 0xDF, 0 }, 3897 { 0x0178, 0xD9, 0 }, 3898 { 0x0192, 0xC4, 0 }, 3899 { 0x02C6, 0xF6, 0 }, 3900 { 0x02C7, 0xFF, 0 }, 3901 { 0x02D8, 0xF9, 0 }, 3902 { 0x02D9, 0xFA, 0 }, 3903 { 0x02DA, 0xFB, 0 }, 3904 { 0x02DB, 0xFE, 0 }, 3905 { 0x02DC, 0xF7, 0 }, 3906 { 0x02DD, 0xFD, 0 }, 3907 { 0x03A9, 0xBD, 0 }, 3908 { 0x03C0, 0xB9, 0 }, 3909 { 0x2013, 0xD0, 0 }, 3910 { 0x2014, 0xD1, 0 }, 3911 { 0x2018, 0xD4, 0 }, 3912 { 0x2019, 0xD5, 0 }, 3913 { 0x201A, 0xE2, 0 }, 3914 { 0x201C, 0xD2, 0 }, 3915 { 0x201D, 0xD3, 0 }, 3916 { 0x201E, 0xE3, 0 }, 3917 { 0x2020, 0xA0, 0 }, 3918 { 0x2021, 0xE0, 0 }, 3919 { 0x2022, 0xA5, 0 }, 3920 { 0x2026, 0xC9, 0 }, 3921 { 0x2030, 0xE4, 0 }, 3922 { 0x2122, 0xAA, 0 }, 3923 { 0x2202, 0xB6, 0 }, 3924 { 0x2206, 0xC6, 0 }, 3925 { 0x220F, 0xB8, 0 }, 3926 { 0x2211, 0xB7, 0 }, 3927 { 0x221A, 0xC3, 0 }, 3928 { 0x221E, 0xB0, 0 }, 3929 { 0x222B, 0xBA, 0 }, 3930 { 0x2248, 0xC5, 0 }, 3931 { 0x2260, 0xAD, 0 }, 3932 { 0x2264, 0xB2, 0 }, 3933 { 0x2265, 0xB3, 0 }, 3934 { 0x25CA, 0xD7, 0 }, 3935 { 0xF8A0, 0xF5, 0 }, 3936 { 0xF8FF, 0xF0, 0 } 3937}; 3938 3939/* ----------------------------------------------------------------------- */ 3940 3941static ImplByteConvertData const aImplAPPLETURKISHByteCvtData = 3942{ 3943 aImplAPPLETURKISHToUniTab, 3944 NULL, 3945 APPLETURKISHUNI_START, APPLETURKISHUNI_END, 3946 NOTABUNI_START, NOTABUNI_END, 3947 aImplAPPLETURKISHToCharTab, 3948 NULL, 3949 aImplAPPLETURKISHToCharTabEx, 3950 APPLETURKISHCHAR_START, APPLETURKISHCHAR_END, 3951 NOTABCHAR_START, NOTABCHAR_END, 3952 APPLETURKISHTOCHARTABEX_COUNT 3953}; 3954 3955/* ----------------------------------------------------------------------- */ 3956 3957static ImplTextEncodingData const aImplAPPLETURKISHTextEncodingData 3958 = { { &aImplAPPLETURKISHByteCvtData, 3959 ImplCharToUnicode, 3960 ImplUnicodeToChar, 3961 NULL, 3962 NULL, 3963 NULL, 3964 NULL, 3965 NULL, 3966 NULL }, 3967 1, 3968 1, 3969 1, 3970 162, 3971 "iso8859-9", 3972 "iso-8859-9", 3973 RTL_TEXTENCODING_INFO_ASCII }; 3974 /* MAC, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */ 3975 3976/* ======================================================================= */ 3977 3978/* APPLE-Ukrainian */ 3979/* Apple CharSet for Ukrainian */ 3980/* 1-Byte, 0x00-0x7F ASCII, jedoch eigentich Sonderzeichen zwischen 0x00-0x1F */ 3981/* die wir aber nicht beruecksichtigen */ 3982/* Convert-Tables: mappings/vendors/apple/ukraine.txt from 02/05/98 */ 3983/* Last-Changes from us: */ 3984 3985#define APPLEUKRAINIANUNI_START 0x80 3986#define APPLEUKRAINIANUNI_END 0xFF 3987static sal_uInt16 const aImplAPPLEUKRAINIANToUniTab[APPLEUKRAINIANUNI_END - APPLEUKRAINIANUNI_START + 1] = 3988{ 3989/* 0 1 2 3 4 5 6 7 */ 3990/* 8 9 A B C D E F */ 3991 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */ 3992 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */ 3993 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */ 3994 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */ 3995 0x2020, 0x00B0, 0x0490, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, /* 0xA0 */ 3996 0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, /* 0xA0 */ 3997 0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x0491, 0x0408, /* 0xB0 */ 3998 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, /* 0xB0 */ 3999 0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */ 4000 0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, /* 0xC0 */ 4001 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, /* 0xD0 */ 4002 0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, /* 0xD0 */ 4003 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */ 4004 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */ 4005 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */ 4006 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x00A4 /* 0xF0 */ 4007}; 4008 4009/* ----------------------------------------------------------------------- */ 4010 4011#define APPLEUKRAINIANCHAR_START 0x0401 4012#define APPLEUKRAINIANCHAR_END 0x045F 4013static sal_uChar const aImplAPPLEUKRAINIANToCharTab[APPLEUKRAINIANCHAR_END - APPLEUKRAINIANCHAR_START + 1] = 4014{ 4015/* 0 1 2 3 4 5 6 7 */ 4016/* 8 9 A B C D E F */ 4017 0xDD, 0xAB, 0xAE, 0xB8, 0xC1, 0xA7, 0xBA, /* 0x0400 */ 4018 0xB7, 0xBC, 0xBE, 0xCB, 0xCD, 0, 0xD8, 0xDA, /* 0x0400 */ 4019 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */ 4020 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */ 4021 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */ 4022 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */ 4023 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */ 4024 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */ 4025 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */ 4026 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, /* 0x0440 */ 4027 0, 0xDE, 0xAC, 0xAF, 0xB9, 0xCF, 0xB4, 0xBB, /* 0x0450 */ 4028 0xC0, 0xBD, 0xBF, 0xCC, 0xCE, 0, 0xD9, 0xDB, /* 0x0450 */ 4029}; 4030 4031/* ----------------------------------------------------------------------- */ 4032 4033#define APPLEUKRAINIANTOCHARTABEX_COUNT 36 4034static ImplUniCharTabData const aImplAPPLEUKRAINIANToCharTabEx[APPLEUKRAINIANTOCHARTABEX_COUNT] = 4035{ 4036 { 0x00A0, 0xCA, 0 }, 4037 { 0x00A3, 0xA3, 0 }, 4038 { 0x00A4, 0xFF, 0 }, 4039 { 0x00A7, 0xA4, 0 }, 4040 { 0x00A9, 0xA9, 0 }, 4041 { 0x00AB, 0xC7, 0 }, 4042 { 0x00AC, 0xC2, 0 }, 4043 { 0x00AE, 0xA8, 0 }, 4044 { 0x00B0, 0xA1, 0 }, 4045 { 0x00B1, 0xB1, 0 }, 4046 { 0x00B5, 0xB5, 0 }, 4047 { 0x00B6, 0xA6, 0 }, 4048 { 0x00BB, 0xC8, 0 }, 4049 { 0x00F7, 0xD6, 0 }, 4050 { 0x0192, 0xC4, 0 }, 4051 { 0x0490, 0xA2, 0 }, 4052 { 0x0491, 0xB6, 0 }, 4053 { 0x2013, 0xD0, 0 }, 4054 { 0x2014, 0xD1, 0 }, 4055 { 0x2018, 0xD4, 0 }, 4056 { 0x2019, 0xD5, 0 }, 4057 { 0x201C, 0xD2, 0 }, 4058 { 0x201D, 0xD3, 0 }, 4059 { 0x201E, 0xD7, 0 }, 4060 { 0x2020, 0xA0, 0 }, 4061 { 0x2022, 0xA5, 0 }, 4062 { 0x2026, 0xC9, 0 }, 4063 { 0x2116, 0xDC, 0 }, 4064 { 0x2122, 0xAA, 0 }, 4065 { 0x2206, 0xC6, 0 }, 4066 { 0x221A, 0xC3, 0 }, 4067 { 0x221E, 0xB0, 0 }, 4068 { 0x2248, 0xC5, 0 }, 4069 { 0x2260, 0xAD, 0 }, 4070 { 0x2264, 0xB2, 0 }, 4071 { 0x2265, 0xB3, 0 } 4072}; 4073 4074/* ----------------------------------------------------------------------- */ 4075 4076static ImplByteConvertData const aImplAPPLEUKRAINIANByteCvtData = 4077{ 4078 aImplAPPLEUKRAINIANToUniTab, 4079 NULL, 4080 APPLEUKRAINIANUNI_START, APPLEUKRAINIANUNI_END, 4081 NOTABUNI_START, NOTABUNI_END, 4082 aImplAPPLEUKRAINIANToCharTab, 4083 NULL, 4084 aImplAPPLEUKRAINIANToCharTabEx, 4085 APPLEUKRAINIANCHAR_START, APPLEUKRAINIANCHAR_END, 4086 NOTABCHAR_START, NOTABCHAR_END, 4087 APPLEUKRAINIANTOCHARTABEX_COUNT 4088}; 4089 4090/* ----------------------------------------------------------------------- */ 4091 4092static ImplTextEncodingData const aImplAPPLEUKRAINIANTextEncodingData 4093 = { { &aImplAPPLEUKRAINIANByteCvtData, 4094 ImplCharToUnicode, 4095 ImplUnicodeToChar, 4096 NULL, 4097 NULL, 4098 NULL, 4099 NULL, 4100 NULL, 4101 NULL }, 4102 1, 4103 1, 4104 1, 4105 204, 4106 "iso8859-5", 4107 "iso-8859-5", 4108 RTL_TEXTENCODING_INFO_ASCII }; 4109 /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 0x98 4110 (MAC 8.5 and above) */ 4111 4112/* ======================================================================= */ 4113 4114/* KOI8_R */ 4115/* Standard Charset for Cyrillic */ 4116/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 4117/* Convert-Tables: typed per hand */ 4118/* Last-Changes from us: */ 4119 4120#define KOI8RUNI_START 0x80 4121#define KOI8RUNI_END 0xFF 4122static sal_uInt16 const aImplKOI8RToUniTab[KOI8RUNI_END - KOI8RUNI_START + 1] = 4123{ 4124/* 0 1 2 3 4 5 6 7 */ 4125/* 8 9 A B C D E F */ 4126 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, /* 0x80 */ 4127 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, /* 0x80 */ 4128 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, /* 0x90 */ 4129 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, /* 0x90 */ 4130 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, /* 0xA0 */ 4131 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, /* 0xA0 */ 4132 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, /* 0xB0 */ 4133 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, /* 0xB0 */ 4134 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0xC0 */ 4135 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, /* 0xC0 */ 4136 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0xD0 */ 4137 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, /* 0xD0 */ 4138 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0xE0 */ 4139 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, /* 0xE0 */ 4140 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0xF0 */ 4141 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A /* 0xF0 */ 4142}; 4143 4144/* ----------------------------------------------------------------------- */ 4145 4146#define KOI8RCHAR_START 0x0410 4147#define KOI8RCHAR_END 0x044F 4148static sal_uChar const aImplKOI8RToCharTab[KOI8RCHAR_END - KOI8RCHAR_START + 1] = 4149{ 4150/* 0 1 2 3 4 5 6 7 */ 4151/* 8 9 A B C D E F */ 4152 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, /* 0x0410 */ 4153 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, /* 0x0410 */ 4154 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, /* 0x0420 */ 4155 0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, /* 0x0420 */ 4156 0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, /* 0x0430 */ 4157 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, /* 0x0430 */ 4158 0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, /* 0x0440 */ 4159 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1 /* 0x0440 */ 4160}; 4161 4162/* ----------------------------------------------------------------------- */ 4163 4164#define KOI8RTOCHARTABEX_COUNT 64 4165static ImplUniCharTabData const aImplKOI8RToCharTabEx[KOI8RTOCHARTABEX_COUNT] = 4166{ 4167 { 0x00A0, 0x9A, 0 }, 4168 { 0x00A9, 0xBF, 0 }, 4169 { 0x00B0, 0x9C, 0 }, 4170 { 0x00B2, 0x9D, 0 }, 4171 { 0x00B7, 0x9E, 0 }, 4172 { 0x00F7, 0x9F, 0 }, 4173 { 0x0401, 0xB3, 0 }, 4174 { 0x0451, 0xA3, 0 }, 4175 { 0x2219, 0x95, 0 }, 4176 { 0x221A, 0x96, 0 }, 4177 { 0x2248, 0x97, 0 }, 4178 { 0x2264, 0x98, 0 }, 4179 { 0x2265, 0x99, 0 }, 4180 { 0x2320, 0x93, 0 }, 4181 { 0x2321, 0x9B, 0 }, 4182 { 0x2500, 0x80, 0 }, 4183 { 0x2502, 0x81, 0 }, 4184 { 0x250C, 0x82, 0 }, 4185 { 0x2510, 0x83, 0 }, 4186 { 0x2514, 0x84, 0 }, 4187 { 0x2518, 0x85, 0 }, 4188 { 0x251C, 0x86, 0 }, 4189 { 0x2524, 0x87, 0 }, 4190 { 0x252C, 0x88, 0 }, 4191 { 0x2534, 0x89, 0 }, 4192 { 0x253C, 0x8A, 0 }, 4193 { 0x2550, 0xA0, 0 }, 4194 { 0x2551, 0xA1, 0 }, 4195 { 0x2552, 0xA2, 0 }, 4196 { 0x2553, 0xA4, 0 }, 4197 { 0x2554, 0xA5, 0 }, 4198 { 0x2555, 0xA6, 0 }, 4199 { 0x2556, 0xA7, 0 }, 4200 { 0x2557, 0xA8, 0 }, 4201 { 0x2558, 0xA9, 0 }, 4202 { 0x2559, 0xAA, 0 }, 4203 { 0x255A, 0xAB, 0 }, 4204 { 0x255B, 0xAC, 0 }, 4205 { 0x255C, 0xAD, 0 }, 4206 { 0x255D, 0xAE, 0 }, 4207 { 0x255E, 0xAF, 0 }, 4208 { 0x255F, 0xB0, 0 }, 4209 { 0x2560, 0xB1, 0 }, 4210 { 0x2561, 0xB2, 0 }, 4211 { 0x2562, 0xB4, 0 }, 4212 { 0x2563, 0xB5, 0 }, 4213 { 0x2564, 0xB6, 0 }, 4214 { 0x2565, 0xB7, 0 }, 4215 { 0x2566, 0xB8, 0 }, 4216 { 0x2567, 0xB9, 0 }, 4217 { 0x2568, 0xBA, 0 }, 4218 { 0x2569, 0xBB, 0 }, 4219 { 0x256A, 0xBC, 0 }, 4220 { 0x256B, 0xBD, 0 }, 4221 { 0x256C, 0xBE, 0 }, 4222 { 0x2580, 0x8B, 0 }, 4223 { 0x2584, 0x8C, 0 }, 4224 { 0x2588, 0x8D, 0 }, 4225 { 0x258C, 0x8E, 0 }, 4226 { 0x2590, 0x8F, 0 }, 4227 { 0x2591, 0x90, 0 }, 4228 { 0x2592, 0x91, 0 }, 4229 { 0x2593, 0x92, 0 }, 4230 { 0x25A0, 0x94, 0 } 4231}; 4232 4233/* ----------------------------------------------------------------------- */ 4234 4235static ImplByteConvertData const aImplKOI8RByteCvtData = 4236{ 4237 aImplKOI8RToUniTab, 4238 NULL, 4239 KOI8RUNI_START, KOI8RUNI_END, 4240 NOTABUNI_START, NOTABUNI_END, 4241 aImplKOI8RToCharTab, 4242 NULL, 4243 aImplKOI8RToCharTabEx, 4244 KOI8RCHAR_START, KOI8RCHAR_END, 4245 NOTABCHAR_START, NOTABCHAR_END, 4246 KOI8RTOCHARTABEX_COUNT 4247}; 4248 4249/* ----------------------------------------------------------------------- */ 4250 4251static ImplTextEncodingData const aImplKOI8RTextEncodingData 4252 = { { &aImplKOI8RByteCvtData, 4253 ImplCharToUnicode, 4254 ImplUnicodeToChar, 4255 NULL, 4256 NULL, 4257 NULL, 4258 NULL, 4259 NULL, 4260 NULL }, 4261 1, 4262 1, 4263 1, 4264 204, 4265 "koi8-r", 4266 "koi8-r", 4267 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 4268 /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */ 4269 4270/* ======================================================================= */ 4271 4272/* KOI8_U */ 4273/* Standard Charset for Ukrainian Cyrillic */ 4274/* Single Byte, 0x00-0x7F equals ASCII */ 4275/* Conversion Tables: hand made */ 4276 4277#define KOI8UUNI_START 0x80 4278#define KOI8UUNI_END 0xFF 4279static sal_uInt16 const aImplKOI8UToUniTab[KOI8UUNI_END - KOI8UUNI_START + 1] = 4280{ 4281/* 0 1 2 3 4 5 6 7 */ 4282/* 8 9 A B C D E F */ 4283 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, /* 0x80 */ 4284 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, /* 0x80 */ 4285 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, /* 0x90 */ 4286 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, /* 0x90 */ 4287 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, /* 0xA0 */ 4288 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E, /* 0xA0 */ 4289 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, /* 0xB0 */ 4290 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9, /* 0xB0 */ 4291 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0xC0 */ 4292 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, /* 0xC0 */ 4293 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0xD0 */ 4294 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, /* 0xD0 */ 4295 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0xE0 */ 4296 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, /* 0xE0 */ 4297 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0xF0 */ 4298 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A /* 0xF0 */ 4299}; 4300 4301#define KOI8UCHAR_START 0x0410 4302#define KOI8UCHAR_END 0x044F 4303static sal_uChar const 4304aImplKOI8UToCharTab[KOI8UCHAR_END - KOI8UCHAR_START + 1] = 4305{ 4306/* 0 1 2 3 4 5 6 7 */ 4307/* 8 9 A B C D E F */ 4308 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, /* 0x0410 */ 4309 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, /* 0x0410 */ 4310 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, /* 0x0420 */ 4311 0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, /* 0x0420 */ 4312 0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, /* 0x0430 */ 4313 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, /* 0x0430 */ 4314 0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, /* 0x0440 */ 4315 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1 /* 0x0440 */ 4316}; 4317 4318#define KOI8UTOCHARTABEX_COUNT 72 4319static ImplUniCharTabData const aImplKOI8UToCharTabEx[KOI8UTOCHARTABEX_COUNT] = 4320{ 4321 { 0x00A0, 0x9A, 0 }, 4322 { 0x00A9, 0xBF, 0 }, 4323 { 0x00B0, 0x9C, 0 }, 4324 { 0x00B2, 0x9D, 0 }, 4325 { 0x00B7, 0x9E, 0 }, 4326 { 0x00F7, 0x9F, 0 }, 4327 { 0x0401, 0xB3, 0 }, 4328 { 0x0404, 0xB4, 0 }, 4329 { 0x0406, 0xB6, 0 }, 4330 { 0x0407, 0xB7, 0 }, 4331 { 0x0451, 0xA3, 0 }, 4332 { 0x0454, 0xA4, 0 }, 4333 { 0x0456, 0xA6, 0 }, 4334 { 0x0457, 0xA7, 0 }, 4335 { 0x0490, 0xBD, 0 }, 4336 { 0x0491, 0xAD, 0 }, 4337 { 0x2219, 0x95, 0 }, 4338 { 0x221A, 0x96, 0 }, 4339 { 0x2248, 0x97, 0 }, 4340 { 0x2264, 0x98, 0 }, 4341 { 0x2265, 0x99, 0 }, 4342 { 0x2320, 0x93, 0 }, 4343 { 0x2321, 0x9B, 0 }, 4344 { 0x2500, 0x80, 0 }, 4345 { 0x2502, 0x81, 0 }, 4346 { 0x250C, 0x82, 0 }, 4347 { 0x2510, 0x83, 0 }, 4348 { 0x2514, 0x84, 0 }, 4349 { 0x2518, 0x85, 0 }, 4350 { 0x251C, 0x86, 0 }, 4351 { 0x2524, 0x87, 0 }, 4352 { 0x252C, 0x88, 0 }, 4353 { 0x2534, 0x89, 0 }, 4354 { 0x253C, 0x8A, 0 }, 4355 { 0x2550, 0xA0, 0 }, 4356 { 0x2551, 0xA1, 0 }, 4357 { 0x2552, 0xA2, 0 }, 4358 { 0x2553, 0xA4, 0 }, 4359 { 0x2554, 0xA5, 0 }, 4360 { 0x2555, 0xA6, 0 }, 4361 { 0x2556, 0xA7, 0 }, 4362 { 0x2557, 0xA8, 0 }, 4363 { 0x2558, 0xA9, 0 }, 4364 { 0x2559, 0xAA, 0 }, 4365 { 0x255A, 0xAB, 0 }, 4366 { 0x255B, 0xAC, 0 }, 4367 { 0x255C, 0xAD, 0 }, 4368 { 0x255D, 0xAE, 0 }, 4369 { 0x255E, 0xAF, 0 }, 4370 { 0x255F, 0xB0, 0 }, 4371 { 0x2560, 0xB1, 0 }, 4372 { 0x2561, 0xB2, 0 }, 4373 { 0x2562, 0xB4, 0 }, 4374 { 0x2563, 0xB5, 0 }, 4375 { 0x2564, 0xB6, 0 }, 4376 { 0x2565, 0xB7, 0 }, 4377 { 0x2566, 0xB8, 0 }, 4378 { 0x2567, 0xB9, 0 }, 4379 { 0x2568, 0xBA, 0 }, 4380 { 0x2569, 0xBB, 0 }, 4381 { 0x256A, 0xBC, 0 }, 4382 { 0x256B, 0xBD, 0 }, 4383 { 0x256C, 0xBE, 0 }, 4384 { 0x2580, 0x8B, 0 }, 4385 { 0x2584, 0x8C, 0 }, 4386 { 0x2588, 0x8D, 0 }, 4387 { 0x258C, 0x8E, 0 }, 4388 { 0x2590, 0x8F, 0 }, 4389 { 0x2591, 0x90, 0 }, 4390 { 0x2592, 0x91, 0 }, 4391 { 0x2593, 0x92, 0 }, 4392 { 0x25A0, 0x94, 0 } 4393}; 4394 4395static ImplByteConvertData const aImplKOI8UByteCvtData = 4396{ 4397 aImplKOI8UToUniTab, 4398 NULL, 4399 KOI8UUNI_START, KOI8UUNI_END, 4400 NOTABUNI_START, NOTABUNI_END, 4401 aImplKOI8UToCharTab, 4402 NULL, 4403 aImplKOI8UToCharTabEx, 4404 KOI8UCHAR_START, KOI8UCHAR_END, 4405 NOTABCHAR_START, NOTABCHAR_END, 4406 KOI8UTOCHARTABEX_COUNT 4407}; 4408 4409static ImplTextEncodingData const aImplKoi8UTextEncodingData 4410 = { { &aImplKOI8UByteCvtData, 4411 ImplCharToUnicode, 4412 ImplUnicodeToChar, 4413 NULL, 4414 NULL, 4415 NULL, 4416 NULL, 4417 NULL, 4418 NULL }, 4419 1, 4420 1, 4421 1, 4422 204, 4423 "koi8-u", 4424 "KOI8-U", 4425 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 4426 /* SCRIPT_CYRILLIC */ 4427 4428/* ======================================================================= */ 4429 4430/* PT154 */ 4431/* Asian Cyrillic */ 4432/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */ 4433/* Convert-Tables: typed per hand */ 4434/* Last-Changes from us: */ 4435 4436#define PT154UNI_START 0x80 4437#define PT154UNI_END 0xFF 4438static sal_uInt16 const aImplPT154ToUniTab[PT154UNI_END - PT154UNI_START + 1] = 4439{ 4440/* 0 1 2 3 4 5 6 7 */ 4441/* 8 9 A B C D E F */ 4442 0x0496, 0x0492, 0x04EE, 0x0493, 0x201E, 0x2026, 0x04B6, 0x04AE, /* 0x80 */ 4443 0x04B2, 0x04AF, 0x04A0, 0x04E2, 0x04A2, 0x049A, 0x04BA, 0x04B8, /* 0x80 */ 4444 0x0497, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */ 4445 0x04B3, 0x04B7, 0x04A1, 0x04E3, 0x04A3, 0x049B, 0x04BB, 0x04B9, /* 0x90 */ 4446 0x00A0, 0x040E, 0x045E, 0x0408, 0x04E8, 0x0498, 0x04B0, 0x00A7, /* 0xA0 */ 4447 0x0401, 0x00A9, 0x04D8, 0x00AB, 0x00AC, 0x04EF, 0x00AE, 0x049C, /* 0xA0 */ 4448 0x00B0, 0x04B1, 0x0406, 0x0456, 0x0499, 0x04E9, 0x00B6, 0x00B7, /* 0xB0 */ 4449 0x0451, 0x2116, 0x04D9, 0x00BB, 0x0458, 0x04AA, 0x04AB, 0x049D, /* 0xB0 */ 4450 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xC0 */ 4451 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xC0 */ 4452 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xD0 */ 4453 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xD0 */ 4454 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */ 4455 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */ 4456 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */ 4457 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F /* 0xF0 */ 4458}; 4459 4460/* ----------------------------------------------------------------------- */ 4461 4462#define PT154CHAR_START 0x0410 4463#define PT154CHAR_END 0x044F 4464static sal_uChar const aImplPT154ToCharTab[PT154CHAR_END - PT154CHAR_START + 1] = 4465{ 4466/* 0 1 2 3 4 5 6 7 */ 4467/* 8 9 A B C D E F */ 4468 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x0410 */ 4469 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x0410 */ 4470 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x0420 */ 4471 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x0420 */ 4472 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x0430 */ 4473 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x0430 */ 4474 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x0440 */ 4475 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff /* 0x0440 */ 4476}; 4477 4478/* ----------------------------------------------------------------------- */ 4479 4480#define PT154TOCHARTABEX_COUNT 64 4481static ImplUniCharTabData const aImplPT154ToCharTabEx[PT154TOCHARTABEX_COUNT] = 4482{ 4483 { 0x00A0, 0xa0, 0 }, 4484 { 0x00A7, 0xa7, 0 }, 4485 { 0x00A9, 0xa9, 0 }, 4486 { 0x00AB, 0xab, 0 }, 4487 { 0x00AC, 0xac, 0 }, 4488 { 0x00AE, 0xae, 0 }, 4489 { 0x00B0, 0xb0, 0 }, 4490 { 0x00B6, 0xb6, 0 }, 4491 { 0x00B7, 0xb7, 0 }, 4492 { 0x00BB, 0xbb, 0 }, 4493 { 0x0401, 0xa8, 0 }, 4494 { 0x0406, 0xb2, 0 }, 4495 { 0x0408, 0xa3, 0 }, 4496 { 0x040E, 0xa1, 0 }, 4497 { 0x0451, 0xb8, 0 }, 4498 { 0x0456, 0xb3, 0 }, 4499 { 0x0458, 0xbc, 0 }, 4500 { 0x045E, 0xa2, 0 }, 4501 { 0x0492, 0x81, 0 }, 4502 { 0x0493, 0x83, 0 }, 4503 { 0x0496, 0x80, 0 }, 4504 { 0x0497, 0x90, 0 }, 4505 { 0x0498, 0xa5, 0 }, 4506 { 0x0499, 0xb4, 0 }, 4507 { 0x049A, 0x8d, 0 }, 4508 { 0x049B, 0x9d, 0 }, 4509 { 0x049C, 0xaf, 0 }, 4510 { 0x049D, 0xbf, 0 }, 4511 { 0x04A0, 0x8a, 0 }, 4512 { 0x04A1, 0x9a, 0 }, 4513 { 0x04A2, 0x8c, 0 }, 4514 { 0x04A3, 0x9c, 0 }, 4515 { 0x04AA, 0xbd, 0 }, 4516 { 0x04AB, 0xbe, 0 }, 4517 { 0x04AE, 0x87, 0 }, 4518 { 0x04AF, 0x89, 0 }, 4519 { 0x04B0, 0xa6, 0 }, 4520 { 0x04B1, 0xb1, 0 }, 4521 { 0x04B2, 0x88, 0 }, 4522 { 0x04B3, 0x98, 0 }, 4523 { 0x04B6, 0x86, 0 }, 4524 { 0x04B7, 0x99, 0 }, 4525 { 0x04B8, 0x8f, 0 }, 4526 { 0x04B9, 0x9f, 0 }, 4527 { 0x04BA, 0x8e, 0 }, 4528 { 0x04BB, 0x9e, 0 }, 4529 { 0x04D8, 0xaa, 0 }, 4530 { 0x04D9, 0xba, 0 }, 4531 { 0x04E2, 0x8b, 0 }, 4532 { 0x04E3, 0x9b, 0 }, 4533 { 0x04E8, 0xa4, 0 }, 4534 { 0x04E9, 0xb5, 0 }, 4535 { 0x04EE, 0x82, 0 }, 4536 { 0x04EF, 0xad, 0 }, 4537 { 0x2013, 0x96, 0 }, 4538 { 0x2014, 0x97, 0 }, 4539 { 0x2018, 0x91, 0 }, 4540 { 0x2019, 0x92, 0 }, 4541 { 0x201C, 0x93, 0 }, 4542 { 0x201D, 0x94, 0 }, 4543 { 0x201E, 0x84, 0 }, 4544 { 0x2022, 0x95, 0 }, 4545 { 0x2026, 0x85, 0 }, 4546 { 0x2116, 0xb9, 0 } 4547}; 4548 4549/* ----------------------------------------------------------------------- */ 4550 4551static ImplByteConvertData const aImplPT154ByteCvtData = 4552{ 4553 aImplPT154ToUniTab, 4554 NULL, 4555 PT154UNI_START, PT154UNI_END, 4556 NOTABUNI_START, NOTABUNI_END, 4557 aImplPT154ToCharTab, 4558 NULL, 4559 aImplPT154ToCharTabEx, 4560 PT154CHAR_START, PT154CHAR_END, 4561 NOTABCHAR_START, NOTABCHAR_END, 4562 PT154TOCHARTABEX_COUNT 4563}; 4564 4565/* ----------------------------------------------------------------------- */ 4566 4567static ImplTextEncodingData const aImplPT154TextEncodingData 4568 = { { &aImplPT154ByteCvtData, 4569 ImplCharToUnicode, 4570 ImplUnicodeToChar, 4571 NULL, 4572 NULL, 4573 NULL, 4574 NULL, 4575 NULL, 4576 NULL }, 4577 1, 4578 1, 4579 1, 4580 204, 4581 "iso8859-5", 4582 "PTCP154", 4583 RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME }; 4584 /* SCRIPT_CYRILLIC */ 4585