xref: /aoo42x/main/sal/textenc/convertadobe.tab (revision cdf0e10c)
1*cdf0e10cSrcweir/*************************************************************************
2*cdf0e10cSrcweir *
3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir *
5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir *
7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir *
9*cdf0e10cSrcweir * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir *
11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir *
15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir *
21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir *
26*cdf0e10cSrcweir ************************************************************************/
27*cdf0e10cSrcweir
28*cdf0e10cSrcweir#include "context.h"
29*cdf0e10cSrcweir#include "convertsinglebytetobmpunicode.hxx"
30*cdf0e10cSrcweir#include "tenchelp.h"
31*cdf0e10cSrcweir
32*cdf0e10cSrcweir#include "rtl/tencinfo.h"
33*cdf0e10cSrcweir
34*cdf0e10cSrcweirnamespace {
35*cdf0e10cSrcweir
36*cdf0e10cSrcweir// RTL_TEXTENCODING_ADOBE_STANDARD is based on
37*cdf0e10cSrcweir// <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt> revision
38*cdf0e10cSrcweir// "v0.2, 30 March 1999".
39*cdf0e10cSrcweir
40*cdf0e10cSrcweirrtl::textenc::BmpUnicodeToSingleByteRange const unicodeToAdobeStandardEncoding[]
41*cdf0e10cSrcweir= { { 0x0020, 0x0026 - 0x0020, 0x20 }, { 0x0027, 0x0027 - 0x0027, 0xA9 },
42*cdf0e10cSrcweir    { 0x0028, 0x005F - 0x0028, 0x28 }, { 0x0060, 0x0060 - 0x0060, 0xC1 },
43*cdf0e10cSrcweir    { 0x0061, 0x007E - 0x0061, 0x61 }, { 0x00A0, 0x00A0 - 0x00A0, 0x20 },
44*cdf0e10cSrcweir    { 0x00A1, 0x00A3 - 0x00A1, 0xA1 }, { 0x00A4, 0x00A4 - 0x00A4, 0xA8 },
45*cdf0e10cSrcweir    { 0x00A5, 0x00A5 - 0x00A5, 0xA5 }, { 0x00A7, 0x00A7 - 0x00A7, 0xA7 },
46*cdf0e10cSrcweir    { 0x00A8, 0x00A8 - 0x00A8, 0xC8 }, { 0x00AA, 0x00AA - 0x00AA, 0xE3 },
47*cdf0e10cSrcweir    { 0x00AB, 0x00AB - 0x00AB, 0xAB }, { 0x00AD, 0x00AD - 0x00AD, 0x2D },
48*cdf0e10cSrcweir    { 0x00AF, 0x00AF - 0x00AF, 0xC5 }, { 0x00B4, 0x00B4 - 0x00B4, 0xC2 },
49*cdf0e10cSrcweir    { 0x00B6, 0x00B6 - 0x00B6, 0xB6 }, { 0x00B7, 0x00B7 - 0x00B7, 0xB4 },
50*cdf0e10cSrcweir    { 0x00B8, 0x00B8 - 0x00B8, 0xCB }, { 0x00BA, 0x00BA - 0x00BA, 0xEB },
51*cdf0e10cSrcweir    { 0x00BB, 0x00BB - 0x00BB, 0xBB }, { 0x00BF, 0x00BF - 0x00BF, 0xBF },
52*cdf0e10cSrcweir    { 0x00C6, 0x00C6 - 0x00C6, 0xE1 }, { 0x00D8, 0x00D8 - 0x00D8, 0xE9 },
53*cdf0e10cSrcweir    { 0x00DF, 0x00DF - 0x00DF, 0xFB }, { 0x00E6, 0x00E6 - 0x00E6, 0xF1 },
54*cdf0e10cSrcweir    { 0x00F8, 0x00F8 - 0x00F8, 0xF9 }, { 0x0131, 0x0131 - 0x0131, 0xF5 },
55*cdf0e10cSrcweir    { 0x0141, 0x0141 - 0x0141, 0xE8 }, { 0x0142, 0x0142 - 0x0142, 0xF8 },
56*cdf0e10cSrcweir    { 0x0152, 0x0152 - 0x0152, 0xEA }, { 0x0153, 0x0153 - 0x0153, 0xFA },
57*cdf0e10cSrcweir    { 0x0192, 0x0192 - 0x0192, 0xA6 }, { 0x02C6, 0x02C6 - 0x02C6, 0xC3 },
58*cdf0e10cSrcweir    { 0x02C7, 0x02C7 - 0x02C7, 0xCF }, { 0x02C9, 0x02C9 - 0x02C9, 0xC5 },
59*cdf0e10cSrcweir    { 0x02D8, 0x02D9 - 0x02D8, 0xC6 }, { 0x02DA, 0x02DA - 0x02DA, 0xCA },
60*cdf0e10cSrcweir    { 0x02DB, 0x02DB - 0x02DB, 0xCE }, { 0x02DC, 0x02DC - 0x02DC, 0xC4 },
61*cdf0e10cSrcweir    { 0x02DD, 0x02DD - 0x02DD, 0xCD }, { 0x2013, 0x2013 - 0x2013, 0xB1 },
62*cdf0e10cSrcweir    { 0x2014, 0x2014 - 0x2014, 0xD0 }, { 0x2018, 0x2018 - 0x2018, 0x60 },
63*cdf0e10cSrcweir    { 0x2019, 0x2019 - 0x2019, 0x27 }, { 0x201A, 0x201A - 0x201A, 0xB8 },
64*cdf0e10cSrcweir    { 0x201C, 0x201C - 0x201C, 0xAA }, { 0x201D, 0x201D - 0x201D, 0xBA },
65*cdf0e10cSrcweir    { 0x201E, 0x201E - 0x201E, 0xB9 }, { 0x2020, 0x2020 - 0x2020, 0xB2 },
66*cdf0e10cSrcweir    { 0x2021, 0x2021 - 0x2021, 0xB3 }, { 0x2022, 0x2022 - 0x2022, 0xB7 },
67*cdf0e10cSrcweir    { 0x2026, 0x2026 - 0x2026, 0xBC }, { 0x2030, 0x2030 - 0x2030, 0xBD },
68*cdf0e10cSrcweir    { 0x2039, 0x2039 - 0x2039, 0xAC }, { 0x203A, 0x203A - 0x203A, 0xAD },
69*cdf0e10cSrcweir    { 0x2044, 0x2044 - 0x2044, 0xA4 }, { 0x2215, 0x2215 - 0x2215, 0xA4 },
70*cdf0e10cSrcweir    { 0x2219, 0x2219 - 0x2219, 0xB4 }, { 0xFB01, 0xFB02 - 0xFB01, 0xAE } };
71*cdf0e10cSrcweir
72*cdf0e10cSrcweirrtl::textenc::BmpUnicodeToSingleByteConverterData const
73*cdf0e10cSrcweiradobeStandardEncodingConverterData = {
74*cdf0e10cSrcweir    { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x00
75*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
76*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x10
77*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
78*cdf0e10cSrcweir      0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x2019, // 0x20
79*cdf0e10cSrcweir      0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
80*cdf0e10cSrcweir      0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, // 0x30
81*cdf0e10cSrcweir      0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
82*cdf0e10cSrcweir      0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, // 0x40
83*cdf0e10cSrcweir      0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
84*cdf0e10cSrcweir      0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, // 0x50
85*cdf0e10cSrcweir      0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
86*cdf0e10cSrcweir      0x2018, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, // 0x60
87*cdf0e10cSrcweir      0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
88*cdf0e10cSrcweir      0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, // x070
89*cdf0e10cSrcweir      0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0xffff,
90*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x80
91*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
92*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x90
93*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
94*cdf0e10cSrcweir      0xffff, 0x00A1, 0x00A2, 0x00A3, 0x2215, 0x00A5, 0x0192, 0x00A7, // 0xA0
95*cdf0e10cSrcweir      0x00A4, 0x0027, 0x201C, 0x00AB, 0x2039, 0x203A, 0xFB01, 0xFB02,
96*cdf0e10cSrcweir      0xffff, 0x2013, 0x2020, 0x2021, 0x00B7, 0xffff, 0x00B6, 0x2022, // 0xB0
97*cdf0e10cSrcweir      0x201A, 0x201E, 0x201D, 0x00BB, 0x2026, 0x2030, 0xffff, 0x00BF,
98*cdf0e10cSrcweir      0xffff, 0x0060, 0x00B4, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9, // 0xC0
99*cdf0e10cSrcweir      0x00A8, 0xffff, 0x02DA, 0x00B8, 0xffff, 0x02DD, 0x02DB, 0x02C7,
100*cdf0e10cSrcweir      0x2014, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0xD0
101*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
102*cdf0e10cSrcweir      0xffff, 0x00C6, 0xffff, 0x00AA, 0xffff, 0xffff, 0xffff, 0xffff, // 0xE0
103*cdf0e10cSrcweir      0x0141, 0x00D8, 0x0152, 0x00BA, 0xffff, 0xffff, 0xffff, 0xffff,
104*cdf0e10cSrcweir      0xffff, 0x00E6, 0xffff, 0xffff, 0xffff, 0x0131, 0xffff, 0xffff, // 0xF0
105*cdf0e10cSrcweir      0x0142, 0x00F8, 0x0153, 0x00DF, 0xffff, 0xffff, 0xffff, 0xffff },
106*cdf0e10cSrcweir    (sizeof unicodeToAdobeStandardEncoding
107*cdf0e10cSrcweir     / sizeof unicodeToAdobeStandardEncoding[0]),
108*cdf0e10cSrcweir    unicodeToAdobeStandardEncoding };
109*cdf0e10cSrcweir
110*cdf0e10cSrcweir// RTL_TEXTENCODING_ADOBE_SYMBOL is based on
111*cdf0e10cSrcweir// <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt> revision
112*cdf0e10cSrcweir// "v0.2, 30 March 1999," with the modification that some mappings go to code
113*cdf0e10cSrcweir// points newly assigned in Unicode 3.2/4.0, instead of to PUA:
114*cdf0e10cSrcweir// 0xBD -> U+23AF (was U+F8E6)
115*cdf0e10cSrcweir// 0xBE -> U+23D0 (was U+F8E7)
116*cdf0e10cSrcweir// 0xE6--E8 -> U+239B--239D (was U+F8EB--F8ED)
117*cdf0e10cSrcweir// 0xE9--EB -> U+23A1--23A3 (was U+F8EE--F8F0)
118*cdf0e10cSrcweir// 0xEC--EF -> U+23A7--23AA (was U+F8F1--F8F4)
119*cdf0e10cSrcweir// 0xF4 -> U+23AE (was U+F8F5)
120*cdf0e10cSrcweir// 0xF6--F8 -> U+239E--23A0 (was U+F8F6--F8F8)
121*cdf0e10cSrcweir// 0xF9--FB -> U+23A4--23A6 (was U+F8F9--F8FB)
122*cdf0e10cSrcweir// 0xFC--FE -> U+23AB--23AD (was U+F8FC--F8FE)
123*cdf0e10cSrcweir
124*cdf0e10cSrcweir//TODO: Contains Unicode PUA mappings
125*cdf0e10cSrcweirrtl::textenc::BmpUnicodeToSingleByteRange const unicodeToAdobeSymbolEncoding[]
126*cdf0e10cSrcweir= { { 0x0020, 0x0021 - 0x0020, 0x20 }, { 0x0023, 0x0023 - 0x0023, 0x23 },
127*cdf0e10cSrcweir    { 0x0025, 0x0026 - 0x0025, 0x25 }, { 0x0028, 0x0029 - 0x0028, 0x28 },
128*cdf0e10cSrcweir    { 0x002B, 0x002C - 0x002B, 0x2B }, { 0x002E, 0x003F - 0x002E, 0x2E },
129*cdf0e10cSrcweir    { 0x005B, 0x005B - 0x005B, 0x5B }, { 0x005D, 0x005D - 0x005D, 0x5D },
130*cdf0e10cSrcweir    { 0x005F, 0x005F - 0x005F, 0x5F }, { 0x007B, 0x007D - 0x007B, 0x7B },
131*cdf0e10cSrcweir    { 0x00A0, 0x00A0 - 0x00A0, 0x20 }, { 0x00AC, 0x00AC - 0x00AC, 0xD8 },
132*cdf0e10cSrcweir    { 0x00B0, 0x00B1 - 0x00B0, 0xB0 }, { 0x00B5, 0x00B5 - 0x00B5, 0x6D },
133*cdf0e10cSrcweir    { 0x00D7, 0x00D7 - 0x00D7, 0xB4 }, { 0x00F7, 0x00F7 - 0x00F7, 0xB8 },
134*cdf0e10cSrcweir    { 0x0192, 0x0192 - 0x0192, 0xA6 }, { 0x0391, 0x0392 - 0x0391, 0x41 },
135*cdf0e10cSrcweir    { 0x0393, 0x0393 - 0x0393, 0x47 }, { 0x0394, 0x0395 - 0x0394, 0x44 },
136*cdf0e10cSrcweir    { 0x0396, 0x0396 - 0x0396, 0x5A }, { 0x0397, 0x0397 - 0x0397, 0x48 },
137*cdf0e10cSrcweir    { 0x0398, 0x0398 - 0x0398, 0x51 }, { 0x0399, 0x0399 - 0x0399, 0x49 },
138*cdf0e10cSrcweir    { 0x039A, 0x039D - 0x039A, 0x4B }, { 0x039E, 0x039E - 0x039E, 0x58 },
139*cdf0e10cSrcweir    { 0x039F, 0x03A0 - 0x039F, 0x4F }, { 0x03A1, 0x03A1 - 0x03A1, 0x52 },
140*cdf0e10cSrcweir    { 0x03A3, 0x03A5 - 0x03A3, 0x53 }, { 0x03A6, 0x03A6 - 0x03A6, 0x46 },
141*cdf0e10cSrcweir    { 0x03A7, 0x03A7 - 0x03A7, 0x43 }, { 0x03A8, 0x03A8 - 0x03A8, 0x59 },
142*cdf0e10cSrcweir    { 0x03A9, 0x03A9 - 0x03A9, 0x57 }, { 0x03B1, 0x03B2 - 0x03B1, 0x61 },
143*cdf0e10cSrcweir    { 0x03B3, 0x03B3 - 0x03B3, 0x67 }, { 0x03B4, 0x03B5 - 0x03B4, 0x64 },
144*cdf0e10cSrcweir    { 0x03B6, 0x03B6 - 0x03B6, 0x7A }, { 0x03B7, 0x03B7 - 0x03B7, 0x68 },
145*cdf0e10cSrcweir    { 0x03B8, 0x03B8 - 0x03B8, 0x71 }, { 0x03B9, 0x03B9 - 0x03B9, 0x69 },
146*cdf0e10cSrcweir    { 0x03BA, 0x03BD - 0x03BA, 0x6B }, { 0x03BE, 0x03BE - 0x03BE, 0x78 },
147*cdf0e10cSrcweir    { 0x03BF, 0x03C0 - 0x03BF, 0x6F }, { 0x03C1, 0x03C1 - 0x03C1, 0x72 },
148*cdf0e10cSrcweir    { 0x03C2, 0x03C2 - 0x03C2, 0x56 }, { 0x03C3, 0x03C5 - 0x03C3, 0x73 },
149*cdf0e10cSrcweir    { 0x03C6, 0x03C6 - 0x03C6, 0x66 }, { 0x03C7, 0x03C7 - 0x03C7, 0x63 },
150*cdf0e10cSrcweir    { 0x03C8, 0x03C8 - 0x03C8, 0x79 }, { 0x03C9, 0x03C9 - 0x03C9, 0x77 },
151*cdf0e10cSrcweir    { 0x03D1, 0x03D1 - 0x03D1, 0x4A }, { 0x03D2, 0x03D2 - 0x03D2, 0xA1 },
152*cdf0e10cSrcweir    { 0x03D5, 0x03D5 - 0x03D5, 0x6A }, { 0x03D6, 0x03D6 - 0x03D6, 0x76 },
153*cdf0e10cSrcweir    { 0x2022, 0x2022 - 0x2022, 0xB7 }, { 0x2026, 0x2026 - 0x2026, 0xBC },
154*cdf0e10cSrcweir    { 0x2032, 0x2032 - 0x2032, 0xA2 }, { 0x2033, 0x2033 - 0x2033, 0xB2 },
155*cdf0e10cSrcweir    { 0x2044, 0x2044 - 0x2044, 0xA4 }, { 0x20AC, 0x20AC - 0x20AC, 0xA0 },
156*cdf0e10cSrcweir    { 0x2111, 0x2111 - 0x2111, 0xC1 }, { 0x2118, 0x2118 - 0x2118, 0xC3 },
157*cdf0e10cSrcweir    { 0x211C, 0x211C - 0x211C, 0xC2 }, { 0x2126, 0x2126 - 0x2126, 0x57 },
158*cdf0e10cSrcweir    { 0x2135, 0x2135 - 0x2135, 0xC0 }, { 0x2190, 0x2193 - 0x2190, 0xAC },
159*cdf0e10cSrcweir    { 0x2194, 0x2194 - 0x2194, 0xAB }, { 0x21B5, 0x21B5 - 0x21B5, 0xBF },
160*cdf0e10cSrcweir    { 0x21D0, 0x21D3 - 0x21D0, 0xDC }, { 0x21D4, 0x21D4 - 0x21D4, 0xDB },
161*cdf0e10cSrcweir    { 0x2200, 0x2200 - 0x2200, 0x22 }, { 0x2202, 0x2202 - 0x2202, 0xB6 },
162*cdf0e10cSrcweir    { 0x2203, 0x2203 - 0x2203, 0x24 }, { 0x2205, 0x2205 - 0x2205, 0xC6 },
163*cdf0e10cSrcweir    { 0x2206, 0x2206 - 0x2206, 0x44 }, { 0x2207, 0x2207 - 0x2207, 0xD1 },
164*cdf0e10cSrcweir    { 0x2208, 0x2209 - 0x2208, 0xCE }, { 0x220B, 0x220B - 0x220B, 0x27 },
165*cdf0e10cSrcweir    { 0x220F, 0x220F - 0x220F, 0xD5 }, { 0x2211, 0x2211 - 0x2211, 0xE5 },
166*cdf0e10cSrcweir    { 0x2212, 0x2212 - 0x2212, 0x2D }, { 0x2215, 0x2215 - 0x2215, 0xA4 },
167*cdf0e10cSrcweir    { 0x2217, 0x2217 - 0x2217, 0x2A }, { 0x221A, 0x221A - 0x221A, 0xD6 },
168*cdf0e10cSrcweir    { 0x221D, 0x221D - 0x221D, 0xB5 }, { 0x221E, 0x221E - 0x221E, 0xA5 },
169*cdf0e10cSrcweir    { 0x2220, 0x2220 - 0x2220, 0xD0 }, { 0x2227, 0x2228 - 0x2227, 0xD9 },
170*cdf0e10cSrcweir    { 0x2229, 0x222A - 0x2229, 0xC7 }, { 0x222B, 0x222B - 0x222B, 0xF2 },
171*cdf0e10cSrcweir    { 0x2234, 0x2234 - 0x2234, 0x5C }, { 0x223C, 0x223C - 0x223C, 0x7E },
172*cdf0e10cSrcweir    { 0x2245, 0x2245 - 0x2245, 0x40 }, { 0x2248, 0x2248 - 0x2248, 0xBB },
173*cdf0e10cSrcweir    { 0x2260, 0x2261 - 0x2260, 0xB9 }, { 0x2264, 0x2264 - 0x2264, 0xA3 },
174*cdf0e10cSrcweir    { 0x2265, 0x2265 - 0x2265, 0xB3 }, { 0x2282, 0x2282 - 0x2282, 0xCC },
175*cdf0e10cSrcweir    { 0x2283, 0x2283 - 0x2283, 0xC9 }, { 0x2284, 0x2284 - 0x2284, 0xCB },
176*cdf0e10cSrcweir    { 0x2286, 0x2286 - 0x2286, 0xCD }, { 0x2287, 0x2287 - 0x2287, 0xCA },
177*cdf0e10cSrcweir    { 0x2295, 0x2295 - 0x2295, 0xC5 }, { 0x2297, 0x2297 - 0x2297, 0xC4 },
178*cdf0e10cSrcweir    { 0x22A5, 0x22A5 - 0x22A5, 0x5E }, { 0x22C5, 0x22C5 - 0x22C5, 0xD7 },
179*cdf0e10cSrcweir    { 0x2320, 0x2320 - 0x2320, 0xF3 }, { 0x2321, 0x2321 - 0x2321, 0xF5 },
180*cdf0e10cSrcweir    { 0x2329, 0x2329 - 0x2329, 0xE1 }, { 0x232A, 0x232A - 0x232A, 0xF1 },
181*cdf0e10cSrcweir    { 0x239B, 0x239D - 0x239B, 0xE6 }, { 0x239E, 0x23A0 - 0x239E, 0xF6 },
182*cdf0e10cSrcweir    { 0x23A1, 0x23A3 - 0x23A1, 0xE9 }, { 0x23A4, 0x23A6 - 0x23A4, 0xF9 },
183*cdf0e10cSrcweir    { 0x23A7, 0x23AA - 0x23A7, 0xEC }, { 0x23AB, 0x23AD - 0x23AB, 0xFC },
184*cdf0e10cSrcweir    { 0x23AE, 0x23AE - 0x23AE, 0xF4 }, { 0x23AF, 0x23AF - 0x23AF, 0xBD },
185*cdf0e10cSrcweir    { 0x23D0, 0x23D0 - 0x23D0, 0xBE }, { 0x25CA, 0x25CA - 0x25CA, 0xE0 },
186*cdf0e10cSrcweir    { 0x2660, 0x2660 - 0x2660, 0xAA }, { 0x2663, 0x2663 - 0x2663, 0xA7 },
187*cdf0e10cSrcweir    { 0x2665, 0x2665 - 0x2665, 0xA9 }, { 0x2666, 0x2666 - 0x2666, 0xA8 },
188*cdf0e10cSrcweir    { 0xF000, 0xF0FF - 0xF000, 0x00 }, // symbol aliasing U+F0XX->S+00XX
189*cdf0e10cSrcweir    { 0xF6D9, 0xF6D9 - 0xF6D9, 0xD3 }, { 0xF6DA, 0xF6DA - 0xF6DA, 0xD2 },
190*cdf0e10cSrcweir    { 0xF6DB, 0xF6DB - 0xF6DB, 0xD4 }, { 0xF8E5, 0xF8E5 - 0xF8E5, 0x60 },
191*cdf0e10cSrcweir    { 0xF8E8, 0xF8EA - 0xF8E8, 0xE2 } };
192*cdf0e10cSrcweir
193*cdf0e10cSrcweir//TODO: Contains Unicode PUA mappings
194*cdf0e10cSrcweirrtl::textenc::BmpUnicodeToSingleByteConverterData const
195*cdf0e10cSrcweiradobeSymbolEncodingConverterData = {
196*cdf0e10cSrcweir    { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x00
197*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
198*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x10
199*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
200*cdf0e10cSrcweir      0x0020, 0x0021, 0x2200, 0x0023, 0x2203, 0x0025, 0x0026, 0x220B, // 0x20
201*cdf0e10cSrcweir      0x0028, 0x0029, 0x2217, 0x002B, 0x002C, 0x2212, 0x002E, 0x002F,
202*cdf0e10cSrcweir      0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, // 0x30
203*cdf0e10cSrcweir      0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
204*cdf0e10cSrcweir      0x2245, 0x0391, 0x0392, 0x03A7, 0x0394, 0x0395, 0x03A6, 0x0393, // 0x40
205*cdf0e10cSrcweir      0x0397, 0x0399, 0x03D1, 0x039A, 0x039B, 0x039C, 0x039D, 0x039F,
206*cdf0e10cSrcweir      0x03A0, 0x0398, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03C2, 0x03A9, // 0x50
207*cdf0e10cSrcweir      0x039E, 0x03A8, 0x0396, 0x005B, 0x2234, 0x005D, 0x22A5, 0x005F,
208*cdf0e10cSrcweir      0xF8E5, 0x03B1, 0x03B2, 0x03C7, 0x03B4, 0x03B5, 0x03C6, 0x03B3, // 0x60
209*cdf0e10cSrcweir      0x03B7, 0x03B9, 0x03D5, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF,
210*cdf0e10cSrcweir      0x03C0, 0x03B8, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03D6, 0x03C9, // 0x70
211*cdf0e10cSrcweir      0x03BE, 0x03C8, 0x03B6, 0x007B, 0x007C, 0x007D, 0x223C, 0xffff,
212*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x80
213*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
214*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, // 0x90
215*cdf0e10cSrcweir      0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
216*cdf0e10cSrcweir      0x20AC, 0x03D2, 0x2032, 0x2264, 0x2215, 0x221E, 0x0192, 0x2663, // 0xA0
217*cdf0e10cSrcweir      0x2666, 0x2665, 0x2660, 0x2194, 0x2190, 0x2191, 0x2192, 0x2193,
218*cdf0e10cSrcweir      0x00B0, 0x00B1, 0x2033, 0x2265, 0x00D7, 0x221D, 0x2202, 0x2022, // 0xB0
219*cdf0e10cSrcweir      0x00F7, 0x2260, 0x2261, 0x2248, 0x2026, 0x23AF, 0x23D0, 0x21B5,
220*cdf0e10cSrcweir      0x2135, 0x2111, 0x211C, 0x2118, 0x2297, 0x2295, 0x2205, 0x2229, // 0xC0
221*cdf0e10cSrcweir      0x222A, 0x2283, 0x2287, 0x2284, 0x2282, 0x2286, 0x2208, 0x2209,
222*cdf0e10cSrcweir      0x2220, 0x2207, 0xF6DA, 0xF6D9, 0xF6DB, 0x220F, 0x221A, 0x22C5, // 0xD0
223*cdf0e10cSrcweir      0x00AC, 0x2227, 0x2228, 0x21D4, 0x21D0, 0x21D1, 0x21D2, 0x21D3,
224*cdf0e10cSrcweir      0x25CA, 0x2329, 0xF8E8, 0xF8E9, 0xF8EA, 0x2211, 0x239B, 0x239C, // 0xE0
225*cdf0e10cSrcweir      0x239D, 0x23A1, 0x23A2, 0x23A3, 0x23A7, 0x23A8, 0x23A9, 0x23AA,
226*cdf0e10cSrcweir      0xffff, 0x232A, 0x222B, 0x2320, 0x23AE, 0x2321, 0x239E, 0x239F, // 0xF0
227*cdf0e10cSrcweir      0x23A0, 0x23A4, 0x23A5, 0x23A6, 0x23AB, 0x23AC, 0x23AD, 0xffff },
228*cdf0e10cSrcweir    (sizeof unicodeToAdobeSymbolEncoding
229*cdf0e10cSrcweir     / sizeof unicodeToAdobeSymbolEncoding[0]),
230*cdf0e10cSrcweir    unicodeToAdobeSymbolEncoding };
231*cdf0e10cSrcweir
232*cdf0e10cSrcweir// RTL_TEXTENCODING_ADOBE_DINGBATS is based on
233*cdf0e10cSrcweir// <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/zdingbat.txt> revision
234*cdf0e10cSrcweir// "v0.2, 30 March 1999"
235*cdf0e10cSrcweir
236*cdf0e10cSrcweir//TODO: Contains Unicode PUA mappings
237*cdf0e10cSrcweirrtl::textenc::BmpUnicodeToSingleByteRange const unicodeToAdobeDingbatsEncoding[]
238*cdf0e10cSrcweir= { { 0x0020, 0x0020 - 0x0020, 0x20 }, { 0x00A0, 0x00A0 - 0x00A0, 0x20 },
239*cdf0e10cSrcweir    { 0x2192, 0x2192 - 0x2192, 0xD5 }, { 0x2194, 0x2195 - 0x2194, 0xD6 },
240*cdf0e10cSrcweir    { 0x2460, 0x2469 - 0x2460, 0xAB },
241*cdf0e10cSrcweir    { 0x25A0, 0x25A0 - 0x25A0, 0x6E },
242*cdf0e10cSrcweir    { 0x25B2, 0x25B2 - 0x25B2, 0x73 }, { 0x25BC, 0x25BC - 0x25BC, 0x74 },
243*cdf0e10cSrcweir    { 0x25C6, 0x25C6 - 0x25C6, 0x75 }, { 0x25CF, 0x25CF - 0x25CF, 0x6C },
244*cdf0e10cSrcweir    { 0x25D7, 0x25D7 - 0x25D7, 0x77 },
245*cdf0e10cSrcweir    { 0x2605, 0x2605 - 0x2605, 0x48 }, { 0x260E, 0x260E - 0x260E, 0x25 },
246*cdf0e10cSrcweir    { 0x261B, 0x261B - 0x261B, 0x2A }, { 0x261E, 0x261E - 0x261E, 0x2B },
247*cdf0e10cSrcweir    { 0x2660, 0x2660 - 0x2660, 0xAB }, { 0x2663, 0x2663 - 0x2663, 0xA8 },
248*cdf0e10cSrcweir    { 0x2665, 0x2665 - 0x2665, 0xAA }, { 0x2666, 0x2666 - 0x2666, 0xA9 },
249*cdf0e10cSrcweir    { 0x2701, 0x2704 - 0x2701, 0x21 }, { 0x2706, 0x2709 - 0x2706, 0x26 },
250*cdf0e10cSrcweir    { 0x270C, 0x2727 - 0x270C, 0x2C }, { 0x2729, 0x274B - 0x2729, 0x49 },
251*cdf0e10cSrcweir    { 0x274D, 0x274D - 0x274D, 0x6D }, { 0x274F, 0x2752 - 0x274F, 0x6F },
252*cdf0e10cSrcweir    { 0x2756, 0x2756 - 0x2756, 0x76 }, { 0x2758, 0x275E - 0x2758, 0x78 },
253*cdf0e10cSrcweir    { 0x2761, 0x2767 - 0x2761, 0xA1 }, { 0x2776, 0x2794 - 0x2776, 0xB6 },
254*cdf0e10cSrcweir    { 0x2798, 0x27AF - 0x2798, 0xD8 }, { 0x27B1, 0x27BE - 0x27B1, 0xF1 },
255*cdf0e10cSrcweir    { 0xF000, 0xF0FF - 0xF000, 0x00 }, // symbol aliasing U+F0XX->S+00XX
256*cdf0e10cSrcweir    { 0xF8D7, 0xF8E4 - 0xF8D7, 0x80 }};
257*cdf0e10cSrcweir
258*cdf0e10cSrcweirrtl::textenc::BmpUnicodeToSingleByteConverterData const
259*cdf0e10cSrcweiradobeDingbatsEncodingConverterData = {
260*cdf0e10cSrcweir    { 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00
261*cdf0e10cSrcweir      0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
262*cdf0e10cSrcweir      0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x10
263*cdf0e10cSrcweir      0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
264*cdf0e10cSrcweir      0x0020, 0x2701, 0x2702, 0x2703, 0x2704, 0x260E, 0x2706, 0x2707, // 0x20
265*cdf0e10cSrcweir      0x2708, 0x2709, 0x261B, 0x261E, 0x270C, 0x270D, 0x270E, 0x270F,
266*cdf0e10cSrcweir      0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, // 0x30
267*cdf0e10cSrcweir      0x2718, 0x2719, 0x271A, 0x271B, 0x271C, 0x271D, 0x271E, 0x271F,
268*cdf0e10cSrcweir      0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, // 0x40
269*cdf0e10cSrcweir      0x2605, 0x2729, 0x272A, 0x272B, 0x272C, 0x272D, 0x272E, 0x272F,
270*cdf0e10cSrcweir      0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, // 0x50
271*cdf0e10cSrcweir      0x2738, 0x2739, 0x273A, 0x273B, 0x273C, 0x273D, 0x273E, 0x273F,
272*cdf0e10cSrcweir      0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, // 0x60
273*cdf0e10cSrcweir      0x2748, 0x2749, 0x274A, 0x274B, 0x27CF, 0x274D, 0x25A0, 0x274F,
274*cdf0e10cSrcweir      0x2750, 0x2751, 0x2752, 0x25B2, 0x25BC, 0x25C6, 0x2756, 0x25D7, // 0x70
275*cdf0e10cSrcweir      0x2758, 0x2759, 0x275A, 0x275B, 0x275C, 0x275D, 0x275E, 0xFFFF,
276*cdf0e10cSrcweir      0xF8D7, 0xF8D8, 0xF8D9, 0xF8DA, 0xF8DB, 0xF8DC, 0xF8DD, 0xF8DE, // 0x80
277*cdf0e10cSrcweir      0xF8DF, 0xF8E0, 0xF8E1, 0xF8E2, 0xF8E3, 0xF8E4, 0xFFFF, 0xFFFF,
278*cdf0e10cSrcweir      0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x090
279*cdf0e10cSrcweir      0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
280*cdf0e10cSrcweir      0xFFFF, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, // 0xA0
281*cdf0e10cSrcweir      0x2663, 0x2666, 0x2665, 0x2660, 0x2460, 0x2461, 0x2462, 0x2463,
282*cdf0e10cSrcweir      0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x2776, 0x2777, // 0xB0
283*cdf0e10cSrcweir      0x2778, 0x2779, 0x277A, 0x277B, 0x277C, 0x277D, 0x277E, 0x277F,
284*cdf0e10cSrcweir      0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, // 0xC0
285*cdf0e10cSrcweir      0x2788, 0x2789, 0x278A, 0x278B, 0x278C, 0x278D, 0x278E, 0x278F,
286*cdf0e10cSrcweir      0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2795, 0x2796, 0x2797, // 0xD0
287*cdf0e10cSrcweir      0x2798, 0x2799, 0x279A, 0x279B, 0x279C, 0x279D, 0x279E, 0x279F,
288*cdf0e10cSrcweir      0x27A0, 0x27A1, 0x27A2, 0x27A3, 0x27A4, 0x27A5, 0x27A6, 0x27A7, // 0xE0
289*cdf0e10cSrcweir      0x27A8, 0x27A9, 0x27AA, 0x27AB, 0x27AC, 0x27AD, 0x27AE, 0x27AF,
290*cdf0e10cSrcweir      0xFFFF, 0x27B1, 0x27B2, 0x27B3, 0x27B4, 0x27B5, 0x27B6, 0x27B7, // 0xF0
291*cdf0e10cSrcweir      0x27B8, 0x27B9, 0x27BA, 0x27BB, 0x27BC, 0x27BD, 0x27BE, 0xFFFF },
292*cdf0e10cSrcweir    (sizeof(unicodeToAdobeDingbatsEncoding) / sizeof(*unicodeToAdobeDingbatsEncoding)),
293*cdf0e10cSrcweir    unicodeToAdobeDingbatsEncoding };
294*cdf0e10cSrcweir
295*cdf0e10cSrcweirImplTextEncodingData const adobeStandardEncodingData
296*cdf0e10cSrcweir= { { &adobeStandardEncodingConverterData,
297*cdf0e10cSrcweir      &rtl_textenc_convertSingleByteToBmpUnicode,
298*cdf0e10cSrcweir      &rtl_textenc_convertBmpUnicodeToSingleByte,
299*cdf0e10cSrcweir      0, 0, 0,
300*cdf0e10cSrcweir      ImplCreateUnicodeToTextContext, ImplDestroyContext,
301*cdf0e10cSrcweir      ImplResetUnicodeToTextContext },
302*cdf0e10cSrcweir    1, 1, 1,
303*cdf0e10cSrcweir    0, 0, "Adobe-Standard-Encoding",
304*cdf0e10cSrcweir    RTL_TEXTENCODING_INFO_MIME };
305*cdf0e10cSrcweir
306*cdf0e10cSrcweirImplTextEncodingData const adobeSymbolEncodingData
307*cdf0e10cSrcweir= { { &adobeSymbolEncodingConverterData,
308*cdf0e10cSrcweir      &rtl_textenc_convertSingleByteToBmpUnicode,
309*cdf0e10cSrcweir      &rtl_textenc_convertBmpUnicodeToSingleByte,
310*cdf0e10cSrcweir      0, 0, 0,
311*cdf0e10cSrcweir      ImplCreateUnicodeToTextContext, ImplDestroyContext,
312*cdf0e10cSrcweir      ImplResetUnicodeToTextContext },
313*cdf0e10cSrcweir    1, 1, 1,
314*cdf0e10cSrcweir    0, 0, "Adobe-Symbol-Encoding",
315*cdf0e10cSrcweir    RTL_TEXTENCODING_INFO_SYMBOL | RTL_TEXTENCODING_INFO_MIME };
316*cdf0e10cSrcweir
317*cdf0e10cSrcweirImplTextEncodingData const adobeDingbatsEncodingData
318*cdf0e10cSrcweir= { { &adobeDingbatsEncodingConverterData,
319*cdf0e10cSrcweir      &rtl_textenc_convertSingleByteToBmpUnicode,
320*cdf0e10cSrcweir      &rtl_textenc_convertBmpUnicodeToSingleByte,
321*cdf0e10cSrcweir      0, 0, 0,
322*cdf0e10cSrcweir      ImplCreateUnicodeToTextContext, ImplDestroyContext,
323*cdf0e10cSrcweir      ImplResetUnicodeToTextContext },
324*cdf0e10cSrcweir    1, 1, 1,
325*cdf0e10cSrcweir    0, 0, "Adobe-ZapfDingbats-Encoding",
326*cdf0e10cSrcweir    0 }; // TODO: RTL_TEXTENCODING_INFO_DINGBATS
327*cdf0e10cSrcweir
328*cdf0e10cSrcweir}
329