comparison mupdf-source/source/fitz/encodings.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 // Copyright (C) 2004-2021 Artifex Software, Inc.
2 //
3 // This file is part of MuPDF.
4 //
5 // MuPDF is free software: you can redistribute it and/or modify it under the
6 // terms of the GNU Affero General Public License as published by the Free
7 // Software Foundation, either version 3 of the License, or (at your option)
8 // any later version.
9 //
10 // MuPDF is distributed in the hope that it will be useful, but WITHOUT ANY
11 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 // FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13 // details.
14 //
15 // You should have received a copy of the GNU Affero General Public License
16 // along with MuPDF. If not, see <https://www.gnu.org/licenses/agpl-3.0.en.html>
17 //
18 // Alternative licensing terms are available from the licensor.
19 // For commercial licensing, see <https://www.artifex.com/> or contact
20 // Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco,
21 // CA 94129, USA, for further information.
22
23 #define _notdef NULL
24
25 const unsigned short fz_unicode_from_pdf_doc_encoding[256] =
26 {
27 /* 0x0 to 0x17 except \t, \n and \r are really undefined */
28 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
29 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
30 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
31 0x02d8, 0x02c7, 0x02c6, 0x02d9, 0x02dd, 0x02db, 0x02da, 0x02dc,
32 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
33 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
34 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
35 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
36 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
37 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
38 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
39 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
40 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
41 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
42 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
43 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x0000,
44 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x0192, 0x2044,
45 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,
46 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x0141, 0x0152, 0x0160,
47 0x0178, 0x017d, 0x0131, 0x0142, 0x0153, 0x0161, 0x017e, 0x0000,
48 0x20ac, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
49 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x0000, 0x00ae, 0x00af,
50 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
51 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
52 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
53 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
54 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
55 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
56 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
57 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
58 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
59 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
60 };
61
62 const char *fz_glyph_name_from_adobe_standard[256] = {
63 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
64 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
65 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
66 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
67 "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
68 "ampersand", "quoteright", "parenleft", "parenright", "asterisk",
69 "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
70 "three", "four", "five", "six", "seven", "eight", "nine", "colon",
71 "semicolon", "less", "equal", "greater", "question", "at", "A", "B",
72 "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
73 "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
74 "backslash", "bracketright", "asciicircum", "underscore", "quoteleft",
75 "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
76 "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
77 "braceleft", "bar", "braceright", "asciitilde", _notdef, _notdef,
78 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
79 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
80 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
81 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
82 "exclamdown", "cent", "sterling", "fraction", "yen", "florin",
83 "section", "currency", "quotesingle", "quotedblleft", "guillemotleft",
84 "guilsinglleft", "guilsinglright", "fi", "fl", _notdef, "endash",
85 "dagger", "daggerdbl", "periodcentered", _notdef, "paragraph",
86 "bullet", "quotesinglbase", "quotedblbase", "quotedblright",
87 "guillemotright", "ellipsis", "perthousand", _notdef, "questiondown",
88 _notdef, "grave", "acute", "circumflex", "tilde", "macron", "breve",
89 "dotaccent", "dieresis", _notdef, "ring", "cedilla", _notdef,
90 "hungarumlaut", "ogonek", "caron", "emdash", _notdef, _notdef, _notdef,
91 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
92 _notdef, _notdef, _notdef, _notdef, _notdef, "AE", _notdef,
93 "ordfeminine", _notdef, _notdef, _notdef, _notdef, "Lslash", "Oslash",
94 "OE", "ordmasculine", _notdef, _notdef, _notdef, _notdef, _notdef,
95 "ae", _notdef, _notdef, _notdef, "dotlessi", _notdef, _notdef,
96 "lslash", "oslash", "oe", "germandbls", _notdef, _notdef, _notdef,
97 _notdef
98 };
99
100 const char *fz_glyph_name_from_mac_roman[256] = {
101 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
102 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
103 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
104 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
105 "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
106 "ampersand", "quotesingle", "parenleft", "parenright", "asterisk",
107 "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
108 "three", "four", "five", "six", "seven", "eight", "nine", "colon",
109 "semicolon", "less", "equal", "greater", "question", "at", "A", "B",
110 "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
111 "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
112 "backslash", "bracketright", "asciicircum", "underscore", "grave", "a",
113 "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
114 "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft",
115 "bar", "braceright", "asciitilde", _notdef, "Adieresis", "Aring",
116 "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute",
117 "agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla",
118 "eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave",
119 "icircumflex", "idieresis", "ntilde", "oacute", "ograve",
120 "ocircumflex", "odieresis", "otilde", "uacute", "ugrave",
121 "ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling",
122 "section", "bullet", "paragraph", "germandbls", "registered",
123 "copyright", "trademark", "acute", "dieresis", _notdef, "AE", "Oslash",
124 _notdef, "plusminus", _notdef, _notdef, "yen", "mu", _notdef, _notdef,
125 _notdef, _notdef, _notdef, "ordfeminine", "ordmasculine", _notdef,
126 "ae", "oslash", "questiondown", "exclamdown", "logicalnot", _notdef,
127 "florin", _notdef, _notdef, "guillemotleft", "guillemotright",
128 "ellipsis", "space", "Agrave", "Atilde", "Otilde", "OE", "oe",
129 "endash", "emdash", "quotedblleft", "quotedblright", "quoteleft",
130 "quoteright", "divide", _notdef, "ydieresis", "Ydieresis", "fraction",
131 "currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
132 "periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
133 "Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave",
134 "Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute",
135 "Ocircumflex", _notdef, "Ograve", "Uacute", "Ucircumflex", "Ugrave",
136 "dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent",
137 "ring", "cedilla", "hungarumlaut", "ogonek", "caron"
138 };
139
140 const char *fz_glyph_name_from_mac_expert[256] = {
141 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
142 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
143 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
144 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
145 "space", "exclamsmall", "Hungarumlautsmall", "centoldstyle",
146 "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall",
147 "parenleftsuperior", "parenrightsuperior", "twodotenleader",
148 "onedotenleader", "comma", "hyphen", "period", "fraction",
149 "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle",
150 "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle",
151 "eightoldstyle", "nineoldstyle", "colon", "semicolon", _notdef,
152 "threequartersemdash", _notdef, "questionsmall", _notdef, _notdef,
153 _notdef, _notdef, "Ethsmall", _notdef, _notdef, "onequarter",
154 "onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths",
155 "seveneighths", "onethird", "twothirds", _notdef, _notdef, _notdef,
156 _notdef, _notdef, _notdef, "ff", "fi", "fl", "ffi", "ffl",
157 "parenleftinferior", _notdef, "parenrightinferior", "Circumflexsmall",
158 "hypheninferior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall",
159 "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
160 "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall",
161 "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall",
162 "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall",
163 _notdef, _notdef, "asuperior", "centsuperior", _notdef, _notdef,
164 _notdef, _notdef, "Aacutesmall", "Agravesmall", "Acircumflexsmall",
165 "Adieresissmall", "Atildesmall", "Aringsmall", "Ccedillasmall",
166 "Eacutesmall", "Egravesmall", "Ecircumflexsmall", "Edieresissmall",
167 "Iacutesmall", "Igravesmall", "Icircumflexsmall", "Idieresissmall",
168 "Ntildesmall", "Oacutesmall", "Ogravesmall", "Ocircumflexsmall",
169 "Odieresissmall", "Otildesmall", "Uacutesmall", "Ugravesmall",
170 "Ucircumflexsmall", "Udieresissmall", _notdef, "eightsuperior",
171 "fourinferior", "threeinferior", "sixinferior", "eightinferior",
172 "seveninferior", "Scaronsmall", _notdef, "centinferior", "twoinferior",
173 _notdef, "Dieresissmall", _notdef, "Caronsmall", "osuperior",
174 "fiveinferior", _notdef, "commainferior", "periodinferior",
175 "Yacutesmall", _notdef, "dollarinferior", _notdef, _notdef,
176 "Thornsmall", _notdef, "nineinferior", "zeroinferior", "Zcaronsmall",
177 "AEsmall", "Oslashsmall", "questiondownsmall", "oneinferior",
178 "Lslashsmall", _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
179 "Cedillasmall", _notdef, _notdef, _notdef, _notdef, _notdef, "OEsmall",
180 "figuredash", "hyphensuperior", _notdef, _notdef, _notdef, _notdef,
181 "exclamdownsmall", _notdef, "Ydieresissmall", _notdef, "onesuperior",
182 "twosuperior", "threesuperior", "foursuperior", "fivesuperior",
183 "sixsuperior", "sevensuperior", "ninesuperior", "zerosuperior",
184 _notdef, "esuperior", "rsuperior", "tsuperior", _notdef, _notdef,
185 "isuperior", "ssuperior", "dsuperior", _notdef, _notdef, _notdef,
186 _notdef, _notdef, "lsuperior", "Ogoneksmall", "Brevesmall",
187 "Macronsmall", "bsuperior", "nsuperior", "msuperior", "commasuperior",
188 "periodsuperior", "Dotaccentsmall", "Ringsmall", _notdef, _notdef,
189 _notdef, _notdef
190 };
191
192 /* All unused codes > 32 map to 'bullet' */
193 const char *fz_glyph_name_from_win_ansi[256] = {
194 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
195 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
196 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
197 _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
198 "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
199 "ampersand", "quotesingle", "parenleft", "parenright", "asterisk",
200 "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
201 "three", "four", "five", "six", "seven", "eight", "nine", "colon",
202 "semicolon", "less", "equal", "greater", "question", "at", "A", "B",
203 "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
204 "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
205 "backslash", "bracketright", "asciicircum", "underscore", "grave", "a",
206 "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
207 "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft",
208 "bar", "braceright", "asciitilde", "bullet", "Euro", "bullet",
209 "quotesinglbase", "florin", "quotedblbase", "ellipsis", "dagger",
210 "daggerdbl", "circumflex", "perthousand", "Scaron", "guilsinglleft",
211 "OE", "bullet", "Zcaron", "bullet", "bullet", "quoteleft",
212 "quoteright", "quotedblleft", "quotedblright", "bullet", "endash",
213 "emdash", "tilde", "trademark", "scaron", "guilsinglright", "oe",
214 "bullet", "zcaron", "Ydieresis", "space", "exclamdown", "cent",
215 "sterling", "currency", "yen", "brokenbar", "section", "dieresis",
216 "copyright", "ordfeminine", "guillemotleft", "logicalnot", "hyphen",
217 "registered", "macron", "degree", "plusminus", "twosuperior",
218 "threesuperior", "acute", "mu", "paragraph", "periodcentered",
219 "cedilla", "onesuperior", "ordmasculine", "guillemotright",
220 "onequarter", "onehalf", "threequarters", "questiondown", "Agrave",
221 "Aacute", "Acircumflex", "Atilde", "Adieresis", "Aring", "AE",
222 "Ccedilla", "Egrave", "Eacute", "Ecircumflex", "Edieresis", "Igrave",
223 "Iacute", "Icircumflex", "Idieresis", "Eth", "Ntilde", "Ograve",
224 "Oacute", "Ocircumflex", "Otilde", "Odieresis", "multiply", "Oslash",
225 "Ugrave", "Uacute", "Ucircumflex", "Udieresis", "Yacute", "Thorn",
226 "germandbls", "agrave", "aacute", "acircumflex", "atilde", "adieresis",
227 "aring", "ae", "ccedilla", "egrave", "eacute", "ecircumflex",
228 "edieresis", "igrave", "iacute", "icircumflex", "idieresis", "eth",
229 "ntilde", "ograve", "oacute", "ocircumflex", "otilde", "odieresis",
230 "divide", "oslash", "ugrave", "uacute", "ucircumflex", "udieresis",
231 "yacute", "thorn", "ydieresis"
232 };
233
234 const unsigned short fz_unicode_from_iso8859_1[256] = {
235 0,
236 1,
237 2,
238 3,
239 4,
240 5,
241 6,
242 7,
243 8,
244 9,
245 10,
246 11,
247 12,
248 13,
249 14,
250 15,
251 16,
252 17,
253 18,
254 19,
255 20,
256 21,
257 22,
258 23,
259 24,
260 25,
261 26,
262 27,
263 28,
264 29,
265 30,
266 31,
267 32,
268 33,
269 34,
270 35,
271 36,
272 37,
273 38,
274 39,
275 40,
276 41,
277 42,
278 43,
279 44,
280 45,
281 46,
282 47,
283 48,
284 49,
285 50,
286 51,
287 52,
288 53,
289 54,
290 55,
291 56,
292 57,
293 58,
294 59,
295 60,
296 61,
297 62,
298 63,
299 64,
300 65,
301 66,
302 67,
303 68,
304 69,
305 70,
306 71,
307 72,
308 73,
309 74,
310 75,
311 76,
312 77,
313 78,
314 79,
315 80,
316 81,
317 82,
318 83,
319 84,
320 85,
321 86,
322 87,
323 88,
324 89,
325 90,
326 91,
327 92,
328 93,
329 94,
330 95,
331 96,
332 97,
333 98,
334 99,
335 100,
336 101,
337 102,
338 103,
339 104,
340 105,
341 106,
342 107,
343 108,
344 109,
345 110,
346 111,
347 112,
348 113,
349 114,
350 115,
351 116,
352 117,
353 118,
354 119,
355 120,
356 121,
357 122,
358 123,
359 124,
360 125,
361 126,
362 127,
363 128,
364 129,
365 130,
366 131,
367 132,
368 133,
369 134,
370 135,
371 136,
372 137,
373 138,
374 139,
375 140,
376 141,
377 142,
378 143,
379 144,
380 145,
381 146,
382 147,
383 148,
384 149,
385 150,
386 151,
387 152,
388 153,
389 154,
390 155,
391 156,
392 157,
393 158,
394 159,
395 160,
396 161,
397 162,
398 163,
399 164,
400 165,
401 166,
402 167,
403 168,
404 169,
405 170,
406 171,
407 172,
408 173,
409 174,
410 175,
411 176,
412 177,
413 178,
414 179,
415 180,
416 181,
417 182,
418 183,
419 184,
420 185,
421 186,
422 187,
423 188,
424 189,
425 190,
426 191,
427 192,
428 193,
429 194,
430 195,
431 196,
432 197,
433 198,
434 199,
435 200,
436 201,
437 202,
438 203,
439 204,
440 205,
441 206,
442 207,
443 208,
444 209,
445 210,
446 211,
447 212,
448 213,
449 214,
450 215,
451 216,
452 217,
453 218,
454 219,
455 220,
456 221,
457 222,
458 223,
459 224,
460 225,
461 226,
462 227,
463 228,
464 229,
465 230,
466 231,
467 232,
468 233,
469 234,
470 235,
471 236,
472 237,
473 238,
474 239,
475 240,
476 241,
477 242,
478 243,
479 244,
480 245,
481 246,
482 247,
483 248,
484 249,
485 250,
486 251,
487 252,
488 253,
489 254,
490 255,
491 };
492
493 const char *fz_glyph_name_from_iso8859_1[256] = {
494 _notdef,
495 _notdef,
496 _notdef,
497 _notdef,
498 _notdef,
499 _notdef,
500 _notdef,
501 _notdef,
502 _notdef,
503 _notdef,
504 _notdef,
505 _notdef,
506 _notdef,
507 _notdef,
508 _notdef,
509 _notdef,
510 _notdef,
511 _notdef,
512 _notdef,
513 _notdef,
514 _notdef,
515 _notdef,
516 _notdef,
517 _notdef,
518 _notdef,
519 _notdef,
520 _notdef,
521 _notdef,
522 _notdef,
523 _notdef,
524 _notdef,
525 _notdef,
526 "space",
527 "exclam",
528 "quotedbl",
529 "numbersign",
530 "dollar",
531 "percent",
532 "ampersand",
533 "quotesingle",
534 "parenleft",
535 "parenright",
536 "asterisk",
537 "plus",
538 "comma",
539 "hyphen",
540 "period",
541 "slash",
542 "zero",
543 "one",
544 "two",
545 "three",
546 "four",
547 "five",
548 "six",
549 "seven",
550 "eight",
551 "nine",
552 "colon",
553 "semicolon",
554 "less",
555 "equal",
556 "greater",
557 "question",
558 "at",
559 "A",
560 "B",
561 "C",
562 "D",
563 "E",
564 "F",
565 "G",
566 "H",
567 "I",
568 "J",
569 "K",
570 "L",
571 "M",
572 "N",
573 "O",
574 "P",
575 "Q",
576 "R",
577 "S",
578 "T",
579 "U",
580 "V",
581 "W",
582 "X",
583 "Y",
584 "Z",
585 "bracketleft",
586 "backslash",
587 "bracketright",
588 "asciicircum",
589 "underscore",
590 "grave",
591 "a",
592 "b",
593 "c",
594 "d",
595 "e",
596 "f",
597 "g",
598 "h",
599 "i",
600 "j",
601 "k",
602 "l",
603 "m",
604 "n",
605 "o",
606 "p",
607 "q",
608 "r",
609 "s",
610 "t",
611 "u",
612 "v",
613 "w",
614 "x",
615 "y",
616 "z",
617 "braceleft",
618 "bar",
619 "braceright",
620 "asciitilde",
621 "controlDEL",
622 _notdef,
623 _notdef,
624 _notdef,
625 _notdef,
626 _notdef,
627 _notdef,
628 _notdef,
629 _notdef,
630 _notdef,
631 _notdef,
632 _notdef,
633 _notdef,
634 _notdef,
635 _notdef,
636 _notdef,
637 _notdef,
638 _notdef,
639 _notdef,
640 _notdef,
641 _notdef,
642 _notdef,
643 _notdef,
644 _notdef,
645 _notdef,
646 _notdef,
647 _notdef,
648 _notdef,
649 _notdef,
650 _notdef,
651 _notdef,
652 _notdef,
653 _notdef,
654 "nbspace",
655 "exclamdown",
656 "cent",
657 "sterling",
658 "currency",
659 "yen",
660 "brokenbar",
661 "section",
662 "dieresis",
663 "copyright",
664 "ordfeminine",
665 "guillemotleft",
666 "logicalnot",
667 "sfthyphen",
668 "registered",
669 "macron",
670 "degree",
671 "plusminus",
672 "twosuperior",
673 "threesuperior",
674 "acute",
675 "mu",
676 "paragraph",
677 "periodcentered",
678 "cedilla",
679 "onesuperior",
680 "ordmasculine",
681 "guillemotright",
682 "onequarter",
683 "onehalf",
684 "threequarters",
685 "questiondown",
686 "Agrave",
687 "Aacute",
688 "Acircumflex",
689 "Atilde",
690 "Adieresis",
691 "Aring",
692 "AE",
693 "Ccedilla",
694 "Egrave",
695 "Eacute",
696 "Ecircumflex",
697 "Edieresis",
698 "Igrave",
699 "Iacute",
700 "Icircumflex",
701 "Idieresis",
702 "Eth",
703 "Ntilde",
704 "Ograve",
705 "Oacute",
706 "Ocircumflex",
707 "Otilde",
708 "Odieresis",
709 "multiply",
710 "Oslash",
711 "Ugrave",
712 "Uacute",
713 "Ucircumflex",
714 "Udieresis",
715 "Yacute",
716 "Thorn",
717 "germandbls",
718 "agrave",
719 "aacute",
720 "acircumflex",
721 "atilde",
722 "adieresis",
723 "aring",
724 "ae",
725 "ccedilla",
726 "egrave",
727 "eacute",
728 "ecircumflex",
729 "edieresis",
730 "igrave",
731 "iacute",
732 "icircumflex",
733 "idieresis",
734 "eth",
735 "ntilde",
736 "ograve",
737 "oacute",
738 "ocircumflex",
739 "otilde",
740 "odieresis",
741 "divide",
742 "oslash",
743 "ugrave",
744 "uacute",
745 "ucircumflex",
746 "udieresis",
747 "yacute",
748 "thorn",
749 "ydieresis",
750 };
751
752 static const struct { unsigned short u, c; } iso8859_1_from_unicode[] = {
753 {0x00a0,160},
754 {0x00a1,161},
755 {0x00a2,162},
756 {0x00a3,163},
757 {0x00a4,164},
758 {0x00a5,165},
759 {0x00a6,166},
760 {0x00a7,167},
761 {0x00a8,168},
762 {0x00a9,169},
763 {0x00aa,170},
764 {0x00ab,171},
765 {0x00ac,172},
766 {0x00ad,173},
767 {0x00ae,174},
768 {0x00af,175},
769 {0x00b0,176},
770 {0x00b1,177},
771 {0x00b2,178},
772 {0x00b3,179},
773 {0x00b4,180},
774 {0x00b5,181},
775 {0x00b6,182},
776 {0x00b7,183},
777 {0x00b8,184},
778 {0x00b9,185},
779 {0x00ba,186},
780 {0x00bb,187},
781 {0x00bc,188},
782 {0x00bd,189},
783 {0x00be,190},
784 {0x00bf,191},
785 {0x00c0,192},
786 {0x00c1,193},
787 {0x00c2,194},
788 {0x00c3,195},
789 {0x00c4,196},
790 {0x00c5,197},
791 {0x00c6,198},
792 {0x00c7,199},
793 {0x00c8,200},
794 {0x00c9,201},
795 {0x00ca,202},
796 {0x00cb,203},
797 {0x00cc,204},
798 {0x00cd,205},
799 {0x00ce,206},
800 {0x00cf,207},
801 {0x00d0,208},
802 {0x00d1,209},
803 {0x00d2,210},
804 {0x00d3,211},
805 {0x00d4,212},
806 {0x00d5,213},
807 {0x00d6,214},
808 {0x00d7,215},
809 {0x00d8,216},
810 {0x00d9,217},
811 {0x00da,218},
812 {0x00db,219},
813 {0x00dc,220},
814 {0x00dd,221},
815 {0x00de,222},
816 {0x00df,223},
817 {0x00e0,224},
818 {0x00e1,225},
819 {0x00e2,226},
820 {0x00e3,227},
821 {0x00e4,228},
822 {0x00e5,229},
823 {0x00e6,230},
824 {0x00e7,231},
825 {0x00e8,232},
826 {0x00e9,233},
827 {0x00ea,234},
828 {0x00eb,235},
829 {0x00ec,236},
830 {0x00ed,237},
831 {0x00ee,238},
832 {0x00ef,239},
833 {0x00f0,240},
834 {0x00f1,241},
835 {0x00f2,242},
836 {0x00f3,243},
837 {0x00f4,244},
838 {0x00f5,245},
839 {0x00f6,246},
840 {0x00f7,247},
841 {0x00f8,248},
842 {0x00f9,249},
843 {0x00fa,250},
844 {0x00fb,251},
845 {0x00fc,252},
846 {0x00fd,253},
847 {0x00fe,254},
848 {0x00ff,255},
849 };
850
851 const unsigned short fz_unicode_from_iso8859_7[256] = {
852 0,
853 1,
854 2,
855 3,
856 4,
857 5,
858 6,
859 7,
860 8,
861 9,
862 10,
863 11,
864 12,
865 13,
866 14,
867 15,
868 16,
869 17,
870 18,
871 19,
872 20,
873 21,
874 22,
875 23,
876 24,
877 25,
878 26,
879 27,
880 28,
881 29,
882 30,
883 31,
884 32,
885 33,
886 34,
887 35,
888 36,
889 37,
890 38,
891 39,
892 40,
893 41,
894 42,
895 43,
896 44,
897 45,
898 46,
899 47,
900 48,
901 49,
902 50,
903 51,
904 52,
905 53,
906 54,
907 55,
908 56,
909 57,
910 58,
911 59,
912 60,
913 61,
914 62,
915 63,
916 64,
917 65,
918 66,
919 67,
920 68,
921 69,
922 70,
923 71,
924 72,
925 73,
926 74,
927 75,
928 76,
929 77,
930 78,
931 79,
932 80,
933 81,
934 82,
935 83,
936 84,
937 85,
938 86,
939 87,
940 88,
941 89,
942 90,
943 91,
944 92,
945 93,
946 94,
947 95,
948 96,
949 97,
950 98,
951 99,
952 100,
953 101,
954 102,
955 103,
956 104,
957 105,
958 106,
959 107,
960 108,
961 109,
962 110,
963 111,
964 112,
965 113,
966 114,
967 115,
968 116,
969 117,
970 118,
971 119,
972 120,
973 121,
974 122,
975 123,
976 124,
977 125,
978 126,
979 127,
980 128,
981 129,
982 130,
983 131,
984 132,
985 133,
986 134,
987 135,
988 136,
989 137,
990 138,
991 139,
992 140,
993 141,
994 142,
995 143,
996 144,
997 145,
998 146,
999 147,
1000 148,
1001 149,
1002 150,
1003 151,
1004 152,
1005 153,
1006 154,
1007 155,
1008 156,
1009 157,
1010 158,
1011 159,
1012 160,
1013 8216,
1014 8217,
1015 163,
1016 8364,
1017 8367,
1018 166,
1019 167,
1020 168,
1021 169,
1022 890,
1023 171,
1024 172,
1025 173,
1026 0,
1027 8213,
1028 176,
1029 177,
1030 178,
1031 179,
1032 900,
1033 901,
1034 902,
1035 183,
1036 904,
1037 905,
1038 906,
1039 187,
1040 908,
1041 189,
1042 910,
1043 911,
1044 912,
1045 913,
1046 914,
1047 915,
1048 916,
1049 917,
1050 918,
1051 919,
1052 920,
1053 921,
1054 922,
1055 923,
1056 924,
1057 925,
1058 926,
1059 927,
1060 928,
1061 929,
1062 0,
1063 931,
1064 932,
1065 933,
1066 934,
1067 935,
1068 936,
1069 937,
1070 938,
1071 939,
1072 940,
1073 941,
1074 942,
1075 943,
1076 944,
1077 945,
1078 946,
1079 947,
1080 948,
1081 949,
1082 950,
1083 951,
1084 952,
1085 953,
1086 954,
1087 955,
1088 956,
1089 957,
1090 958,
1091 959,
1092 960,
1093 961,
1094 962,
1095 963,
1096 964,
1097 965,
1098 966,
1099 967,
1100 968,
1101 969,
1102 970,
1103 971,
1104 972,
1105 973,
1106 974,
1107 0,
1108 };
1109
1110 const char *fz_glyph_name_from_iso8859_7[256] = {
1111 _notdef,
1112 _notdef,
1113 _notdef,
1114 _notdef,
1115 _notdef,
1116 _notdef,
1117 _notdef,
1118 _notdef,
1119 _notdef,
1120 _notdef,
1121 _notdef,
1122 _notdef,
1123 _notdef,
1124 _notdef,
1125 _notdef,
1126 _notdef,
1127 _notdef,
1128 _notdef,
1129 _notdef,
1130 _notdef,
1131 _notdef,
1132 _notdef,
1133 _notdef,
1134 _notdef,
1135 _notdef,
1136 _notdef,
1137 _notdef,
1138 _notdef,
1139 _notdef,
1140 _notdef,
1141 _notdef,
1142 _notdef,
1143 "space",
1144 "exclam",
1145 "quotedbl",
1146 "numbersign",
1147 "dollar",
1148 "percent",
1149 "ampersand",
1150 "quotesingle",
1151 "parenleft",
1152 "parenright",
1153 "asterisk",
1154 "plus",
1155 "comma",
1156 "hyphen",
1157 "period",
1158 "slash",
1159 "zero",
1160 "one",
1161 "two",
1162 "three",
1163 "four",
1164 "five",
1165 "six",
1166 "seven",
1167 "eight",
1168 "nine",
1169 "colon",
1170 "semicolon",
1171 "less",
1172 "equal",
1173 "greater",
1174 "question",
1175 "at",
1176 "A",
1177 "B",
1178 "C",
1179 "D",
1180 "E",
1181 "F",
1182 "G",
1183 "H",
1184 "I",
1185 "J",
1186 "K",
1187 "L",
1188 "M",
1189 "N",
1190 "O",
1191 "P",
1192 "Q",
1193 "R",
1194 "S",
1195 "T",
1196 "U",
1197 "V",
1198 "W",
1199 "X",
1200 "Y",
1201 "Z",
1202 "bracketleft",
1203 "backslash",
1204 "bracketright",
1205 "asciicircum",
1206 "underscore",
1207 "grave",
1208 "a",
1209 "b",
1210 "c",
1211 "d",
1212 "e",
1213 "f",
1214 "g",
1215 "h",
1216 "i",
1217 "j",
1218 "k",
1219 "l",
1220 "m",
1221 "n",
1222 "o",
1223 "p",
1224 "q",
1225 "r",
1226 "s",
1227 "t",
1228 "u",
1229 "v",
1230 "w",
1231 "x",
1232 "y",
1233 "z",
1234 "braceleft",
1235 "bar",
1236 "braceright",
1237 "asciitilde",
1238 "controlDEL",
1239 _notdef,
1240 _notdef,
1241 _notdef,
1242 _notdef,
1243 _notdef,
1244 _notdef,
1245 _notdef,
1246 _notdef,
1247 _notdef,
1248 _notdef,
1249 _notdef,
1250 _notdef,
1251 _notdef,
1252 _notdef,
1253 _notdef,
1254 _notdef,
1255 _notdef,
1256 _notdef,
1257 _notdef,
1258 _notdef,
1259 _notdef,
1260 _notdef,
1261 _notdef,
1262 _notdef,
1263 _notdef,
1264 _notdef,
1265 _notdef,
1266 _notdef,
1267 _notdef,
1268 _notdef,
1269 _notdef,
1270 _notdef,
1271 "nbspace",
1272 "quoteleft",
1273 "quoteright",
1274 "sterling",
1275 "Euro",
1276 _notdef,
1277 "brokenbar",
1278 "section",
1279 "dieresis",
1280 "copyright",
1281 "ypogegrammeni",
1282 "guillemotleft",
1283 "logicalnot",
1284 "sfthyphen",
1285 _notdef,
1286 "afii00208",
1287 "degree",
1288 "plusminus",
1289 "twosuperior",
1290 "threesuperior",
1291 "tonos",
1292 "dialytikatonos",
1293 "Alphatonos",
1294 "periodcentered",
1295 "Epsilontonos",
1296 "Etatonos",
1297 "Iotatonos",
1298 "guillemotright",
1299 "Omicrontonos",
1300 "onehalf",
1301 "Upsilontonos",
1302 "Omegatonos",
1303 "iotadieresistonos",
1304 "Alpha",
1305 "Beta",
1306 "Gamma",
1307 "Deltagreek",
1308 "Epsilon",
1309 "Zeta",
1310 "Eta",
1311 "Theta",
1312 "Iota",
1313 "Kappa",
1314 "Lambda",
1315 "Mu",
1316 "Nu",
1317 "Xi",
1318 "Omicron",
1319 "Pi",
1320 "Rho",
1321 _notdef,
1322 "Sigma",
1323 "Tau",
1324 "Upsilon",
1325 "Phi",
1326 "Chi",
1327 "Psi",
1328 "Omegagreek",
1329 "Iotadieresis",
1330 "Upsilondieresis",
1331 "alphatonos",
1332 "epsilontonos",
1333 "etatonos",
1334 "iotatonos",
1335 "upsilondieresistonos",
1336 "alpha",
1337 "beta",
1338 "gamma",
1339 "delta",
1340 "epsilon",
1341 "zeta",
1342 "eta",
1343 "theta",
1344 "iota",
1345 "kappa",
1346 "lambda",
1347 "mugreek",
1348 "nu",
1349 "xi",
1350 "omicron",
1351 "pi",
1352 "rho",
1353 "sigma1",
1354 "sigma",
1355 "tau",
1356 "upsilon",
1357 "phi",
1358 "chi",
1359 "psi",
1360 "omega",
1361 "iotadieresis",
1362 "upsilondieresis",
1363 "omicrontonos",
1364 "upsilontonos",
1365 "omegatonos",
1366 _notdef,
1367 };
1368
1369 static const struct { unsigned short u, c; } iso8859_7_from_unicode[] = {
1370 {0x00a0,160},
1371 {0x00a3,163},
1372 {0x00a6,166},
1373 {0x00a7,167},
1374 {0x00a8,168},
1375 {0x00a9,169},
1376 {0x00ab,171},
1377 {0x00ac,172},
1378 {0x00ad,173},
1379 {0x00b0,176},
1380 {0x00b1,177},
1381 {0x00b2,178},
1382 {0x00b3,179},
1383 {0x00b7,183},
1384 {0x00bb,187},
1385 {0x00bd,189},
1386 {0x037a,170},
1387 {0x0384,180},
1388 {0x0385,181},
1389 {0x0386,182},
1390 {0x0388,184},
1391 {0x0389,185},
1392 {0x038a,186},
1393 {0x038c,188},
1394 {0x038e,190},
1395 {0x038f,191},
1396 {0x0390,192},
1397 {0x0391,193},
1398 {0x0392,194},
1399 {0x0393,195},
1400 {0x0394,196},
1401 {0x0395,197},
1402 {0x0396,198},
1403 {0x0397,199},
1404 {0x0398,200},
1405 {0x0399,201},
1406 {0x039a,202},
1407 {0x039b,203},
1408 {0x039c,204},
1409 {0x039d,205},
1410 {0x039e,206},
1411 {0x039f,207},
1412 {0x03a0,208},
1413 {0x03a1,209},
1414 {0x03a3,211},
1415 {0x03a4,212},
1416 {0x03a5,213},
1417 {0x03a6,214},
1418 {0x03a7,215},
1419 {0x03a8,216},
1420 {0x03a9,217},
1421 {0x03aa,218},
1422 {0x03ab,219},
1423 {0x03ac,220},
1424 {0x03ad,221},
1425 {0x03ae,222},
1426 {0x03af,223},
1427 {0x03b0,224},
1428 {0x03b1,225},
1429 {0x03b2,226},
1430 {0x03b3,227},
1431 {0x03b4,228},
1432 {0x03b5,229},
1433 {0x03b6,230},
1434 {0x03b7,231},
1435 {0x03b8,232},
1436 {0x03b9,233},
1437 {0x03ba,234},
1438 {0x03bb,235},
1439 {0x03bc,236},
1440 {0x03bd,237},
1441 {0x03be,238},
1442 {0x03bf,239},
1443 {0x03c0,240},
1444 {0x03c1,241},
1445 {0x03c2,242},
1446 {0x03c3,243},
1447 {0x03c4,244},
1448 {0x03c5,245},
1449 {0x03c6,246},
1450 {0x03c7,247},
1451 {0x03c8,248},
1452 {0x03c9,249},
1453 {0x03ca,250},
1454 {0x03cb,251},
1455 {0x03cc,252},
1456 {0x03cd,253},
1457 {0x03ce,254},
1458 {0x2015,175},
1459 {0x2018,161},
1460 {0x2019,162},
1461 {0x20ac,164},
1462 };
1463
1464 const unsigned short fz_unicode_from_koi8u[256] = {
1465 0,
1466 1,
1467 2,
1468 3,
1469 4,
1470 5,
1471 6,
1472 7,
1473 8,
1474 9,
1475 10,
1476 11,
1477 12,
1478 13,
1479 14,
1480 15,
1481 16,
1482 17,
1483 18,
1484 19,
1485 20,
1486 21,
1487 22,
1488 23,
1489 24,
1490 25,
1491 26,
1492 27,
1493 28,
1494 29,
1495 30,
1496 31,
1497 32,
1498 33,
1499 34,
1500 35,
1501 36,
1502 37,
1503 38,
1504 39,
1505 40,
1506 41,
1507 42,
1508 43,
1509 44,
1510 45,
1511 46,
1512 47,
1513 48,
1514 49,
1515 50,
1516 51,
1517 52,
1518 53,
1519 54,
1520 55,
1521 56,
1522 57,
1523 58,
1524 59,
1525 60,
1526 61,
1527 62,
1528 63,
1529 64,
1530 65,
1531 66,
1532 67,
1533 68,
1534 69,
1535 70,
1536 71,
1537 72,
1538 73,
1539 74,
1540 75,
1541 76,
1542 77,
1543 78,
1544 79,
1545 80,
1546 81,
1547 82,
1548 83,
1549 84,
1550 85,
1551 86,
1552 87,
1553 88,
1554 89,
1555 90,
1556 91,
1557 92,
1558 93,
1559 94,
1560 95,
1561 96,
1562 97,
1563 98,
1564 99,
1565 100,
1566 101,
1567 102,
1568 103,
1569 104,
1570 105,
1571 106,
1572 107,
1573 108,
1574 109,
1575 110,
1576 111,
1577 112,
1578 113,
1579 114,
1580 115,
1581 116,
1582 117,
1583 118,
1584 119,
1585 120,
1586 121,
1587 122,
1588 123,
1589 124,
1590 125,
1591 126,
1592 127,
1593 9472,
1594 9474,
1595 9484,
1596 9488,
1597 9492,
1598 9496,
1599 9500,
1600 9508,
1601 9516,
1602 9524,
1603 9532,
1604 9600,
1605 9604,
1606 9608,
1607 9612,
1608 9616,
1609 9617,
1610 9618,
1611 9619,
1612 8992,
1613 9632,
1614 8729,
1615 8730,
1616 8776,
1617 8804,
1618 8805,
1619 160,
1620 8993,
1621 176,
1622 178,
1623 183,
1624 247,
1625 9552,
1626 9553,
1627 9554,
1628 1105,
1629 1108,
1630 9556,
1631 1110,
1632 1111,
1633 9559,
1634 9560,
1635 9561,
1636 9562,
1637 9563,
1638 1169,
1639 9565,
1640 9566,
1641 9567,
1642 9568,
1643 9569,
1644 1025,
1645 1028,
1646 9571,
1647 1030,
1648 1031,
1649 9574,
1650 9575,
1651 9576,
1652 9577,
1653 9578,
1654 1168,
1655 9580,
1656 169,
1657 1102,
1658 1072,
1659 1073,
1660 1094,
1661 1076,
1662 1077,
1663 1092,
1664 1075,
1665 1093,
1666 1080,
1667 1081,
1668 1082,
1669 1083,
1670 1084,
1671 1085,
1672 1086,
1673 1087,
1674 1103,
1675 1088,
1676 1089,
1677 1090,
1678 1091,
1679 1078,
1680 1074,
1681 1100,
1682 1099,
1683 1079,
1684 1096,
1685 1101,
1686 1097,
1687 1095,
1688 1098,
1689 1070,
1690 1040,
1691 1041,
1692 1062,
1693 1044,
1694 1045,
1695 1060,
1696 1043,
1697 1061,
1698 1048,
1699 1049,
1700 1050,
1701 1051,
1702 1052,
1703 1053,
1704 1054,
1705 1055,
1706 1071,
1707 1056,
1708 1057,
1709 1058,
1710 1059,
1711 1046,
1712 1042,
1713 1068,
1714 1067,
1715 1047,
1716 1064,
1717 1069,
1718 1065,
1719 1063,
1720 1066,
1721 };
1722
1723 const char *fz_glyph_name_from_koi8u[256] = {
1724 _notdef,
1725 _notdef,
1726 _notdef,
1727 _notdef,
1728 _notdef,
1729 _notdef,
1730 _notdef,
1731 _notdef,
1732 _notdef,
1733 _notdef,
1734 _notdef,
1735 _notdef,
1736 _notdef,
1737 _notdef,
1738 _notdef,
1739 _notdef,
1740 _notdef,
1741 _notdef,
1742 _notdef,
1743 _notdef,
1744 _notdef,
1745 _notdef,
1746 _notdef,
1747 _notdef,
1748 _notdef,
1749 _notdef,
1750 _notdef,
1751 _notdef,
1752 _notdef,
1753 _notdef,
1754 _notdef,
1755 _notdef,
1756 "space",
1757 "exclam",
1758 "quotedbl",
1759 "numbersign",
1760 "dollar",
1761 "percent",
1762 "ampersand",
1763 "quotesingle",
1764 "parenleft",
1765 "parenright",
1766 "asterisk",
1767 "plus",
1768 "comma",
1769 "hyphen",
1770 "period",
1771 "slash",
1772 "zero",
1773 "one",
1774 "two",
1775 "three",
1776 "four",
1777 "five",
1778 "six",
1779 "seven",
1780 "eight",
1781 "nine",
1782 "colon",
1783 "semicolon",
1784 "less",
1785 "equal",
1786 "greater",
1787 "question",
1788 "at",
1789 "A",
1790 "B",
1791 "C",
1792 "D",
1793 "E",
1794 "F",
1795 "G",
1796 "H",
1797 "I",
1798 "J",
1799 "K",
1800 "L",
1801 "M",
1802 "N",
1803 "O",
1804 "P",
1805 "Q",
1806 "R",
1807 "S",
1808 "T",
1809 "U",
1810 "V",
1811 "W",
1812 "X",
1813 "Y",
1814 "Z",
1815 "bracketleft",
1816 "backslash",
1817 "bracketright",
1818 "asciicircum",
1819 "underscore",
1820 "grave",
1821 "a",
1822 "b",
1823 "c",
1824 "d",
1825 "e",
1826 "f",
1827 "g",
1828 "h",
1829 "i",
1830 "j",
1831 "k",
1832 "l",
1833 "m",
1834 "n",
1835 "o",
1836 "p",
1837 "q",
1838 "r",
1839 "s",
1840 "t",
1841 "u",
1842 "v",
1843 "w",
1844 "x",
1845 "y",
1846 "z",
1847 "braceleft",
1848 "bar",
1849 "braceright",
1850 "asciitilde",
1851 "controlDEL",
1852 _notdef,
1853 _notdef,
1854 _notdef,
1855 _notdef,
1856 _notdef,
1857 _notdef,
1858 _notdef,
1859 _notdef,
1860 _notdef,
1861 _notdef,
1862 _notdef,
1863 "upblock",
1864 "dnblock",
1865 "block",
1866 "lfblock",
1867 "rtblock",
1868 "ltshade",
1869 "shade",
1870 "dkshade",
1871 "integraltop",
1872 "blacksquare",
1873 "bulletoperator",
1874 "radical",
1875 "approxequal",
1876 "lessequal",
1877 "greaterequal",
1878 "nbspace",
1879 "integralbottom",
1880 "degree",
1881 "twosuperior",
1882 "periodcentered",
1883 "divide",
1884 _notdef,
1885 _notdef,
1886 _notdef,
1887 "afii10071",
1888 "afii10101",
1889 _notdef,
1890 "afii10103",
1891 "afii10104",
1892 _notdef,
1893 _notdef,
1894 _notdef,
1895 _notdef,
1896 _notdef,
1897 "afii10098",
1898 _notdef,
1899 _notdef,
1900 _notdef,
1901 _notdef,
1902 _notdef,
1903 "Iocyrillic",
1904 "Ecyrillic",
1905 _notdef,
1906 "Icyrillic",
1907 "Yicyrillic",
1908 _notdef,
1909 _notdef,
1910 _notdef,
1911 _notdef,
1912 _notdef,
1913 "Gheupturncyrillic",
1914 _notdef,
1915 "copyright",
1916 "afii10096",
1917 "acyrillic",
1918 "afii10066",
1919 "afii10088",
1920 "afii10069",
1921 "afii10070",
1922 "afii10086",
1923 "afii10068",
1924 "afii10087",
1925 "afii10074",
1926 "afii10075",
1927 "afii10076",
1928 "afii10077",
1929 "afii10078",
1930 "afii10079",
1931 "afii10080",
1932 "afii10081",
1933 "afii10097",
1934 "afii10082",
1935 "afii10083",
1936 "afii10084",
1937 "afii10085",
1938 "afii10072",
1939 "afii10067",
1940 "afii10094",
1941 "afii10093",
1942 "afii10073",
1943 "afii10090",
1944 "afii10095",
1945 "afii10091",
1946 "afii10089",
1947 "afii10092",
1948 "IUcyrillic",
1949 "Acyrillic",
1950 "Becyrillic",
1951 "Tsecyrillic",
1952 "Decyrillic",
1953 "Iecyrillic",
1954 "Efcyrillic",
1955 "Gecyrillic",
1956 "Khacyrillic",
1957 "Iicyrillic",
1958 "Iishortcyrillic",
1959 "Kacyrillic",
1960 "Elcyrillic",
1961 "Emcyrillic",
1962 "Encyrillic",
1963 "Ocyrillic",
1964 "Pecyrillic",
1965 "IAcyrillic",
1966 "Ercyrillic",
1967 "Escyrillic",
1968 "Tecyrillic",
1969 "Ucyrillic",
1970 "Zhecyrillic",
1971 "Vecyrillic",
1972 "Softsigncyrillic",
1973 "Yericyrillic",
1974 "Zecyrillic",
1975 "Shacyrillic",
1976 "Ereversedcyrillic",
1977 "Shchacyrillic",
1978 "Checyrillic",
1979 "Hardsigncyrillic",
1980 };
1981
1982 static const struct { unsigned short u, c; } koi8u_from_unicode[] = {
1983 {0x00a0,154},
1984 {0x00a9,191},
1985 {0x00b0,156},
1986 {0x00b2,157},
1987 {0x00b7,158},
1988 {0x00f7,159},
1989 {0x0401,179},
1990 {0x0404,180},
1991 {0x0406,182},
1992 {0x0407,183},
1993 {0x0410,225},
1994 {0x0411,226},
1995 {0x0412,247},
1996 {0x0413,231},
1997 {0x0414,228},
1998 {0x0415,229},
1999 {0x0416,246},
2000 {0x0417,250},
2001 {0x0418,233},
2002 {0x0419,234},
2003 {0x041a,235},
2004 {0x041b,236},
2005 {0x041c,237},
2006 {0x041d,238},
2007 {0x041e,239},
2008 {0x041f,240},
2009 {0x0420,242},
2010 {0x0421,243},
2011 {0x0422,244},
2012 {0x0423,245},
2013 {0x0424,230},
2014 {0x0425,232},
2015 {0x0426,227},
2016 {0x0427,254},
2017 {0x0428,251},
2018 {0x0429,253},
2019 {0x042a,255},
2020 {0x042b,249},
2021 {0x042c,248},
2022 {0x042d,252},
2023 {0x042e,224},
2024 {0x042f,241},
2025 {0x0430,193},
2026 {0x0431,194},
2027 {0x0432,215},
2028 {0x0433,199},
2029 {0x0434,196},
2030 {0x0435,197},
2031 {0x0436,214},
2032 {0x0437,218},
2033 {0x0438,201},
2034 {0x0439,202},
2035 {0x043a,203},
2036 {0x043b,204},
2037 {0x043c,205},
2038 {0x043d,206},
2039 {0x043e,207},
2040 {0x043f,208},
2041 {0x0440,210},
2042 {0x0441,211},
2043 {0x0442,212},
2044 {0x0443,213},
2045 {0x0444,198},
2046 {0x0445,200},
2047 {0x0446,195},
2048 {0x0447,222},
2049 {0x0448,219},
2050 {0x0449,221},
2051 {0x044a,223},
2052 {0x044b,217},
2053 {0x044c,216},
2054 {0x044d,220},
2055 {0x044e,192},
2056 {0x044f,209},
2057 {0x0451,163},
2058 {0x0454,164},
2059 {0x0456,166},
2060 {0x0457,167},
2061 {0x0490,189},
2062 {0x0491,173},
2063 {0x2219,149},
2064 {0x221a,150},
2065 {0x2248,151},
2066 {0x2264,152},
2067 {0x2265,153},
2068 {0x2320,147},
2069 {0x2321,155},
2070 {0x2580,139},
2071 {0x2584,140},
2072 {0x2588,141},
2073 {0x258c,142},
2074 {0x2590,143},
2075 {0x2591,144},
2076 {0x2592,145},
2077 {0x2593,146},
2078 {0x25a0,148},
2079 };
2080
2081 const unsigned short fz_unicode_from_windows_1250[256] = {
2082 0,
2083 1,
2084 2,
2085 3,
2086 4,
2087 5,
2088 6,
2089 7,
2090 8,
2091 9,
2092 10,
2093 11,
2094 12,
2095 13,
2096 14,
2097 15,
2098 16,
2099 17,
2100 18,
2101 19,
2102 20,
2103 21,
2104 22,
2105 23,
2106 24,
2107 25,
2108 26,
2109 27,
2110 28,
2111 29,
2112 30,
2113 31,
2114 32,
2115 33,
2116 34,
2117 35,
2118 36,
2119 37,
2120 38,
2121 39,
2122 40,
2123 41,
2124 42,
2125 43,
2126 44,
2127 45,
2128 46,
2129 47,
2130 48,
2131 49,
2132 50,
2133 51,
2134 52,
2135 53,
2136 54,
2137 55,
2138 56,
2139 57,
2140 58,
2141 59,
2142 60,
2143 61,
2144 62,
2145 63,
2146 64,
2147 65,
2148 66,
2149 67,
2150 68,
2151 69,
2152 70,
2153 71,
2154 72,
2155 73,
2156 74,
2157 75,
2158 76,
2159 77,
2160 78,
2161 79,
2162 80,
2163 81,
2164 82,
2165 83,
2166 84,
2167 85,
2168 86,
2169 87,
2170 88,
2171 89,
2172 90,
2173 91,
2174 92,
2175 93,
2176 94,
2177 95,
2178 96,
2179 97,
2180 98,
2181 99,
2182 100,
2183 101,
2184 102,
2185 103,
2186 104,
2187 105,
2188 106,
2189 107,
2190 108,
2191 109,
2192 110,
2193 111,
2194 112,
2195 113,
2196 114,
2197 115,
2198 116,
2199 117,
2200 118,
2201 119,
2202 120,
2203 121,
2204 122,
2205 123,
2206 124,
2207 125,
2208 126,
2209 127,
2210 8364,
2211 0,
2212 8218,
2213 0,
2214 8222,
2215 8230,
2216 8224,
2217 8225,
2218 0,
2219 8240,
2220 352,
2221 8249,
2222 346,
2223 356,
2224 381,
2225 377,
2226 0,
2227 8216,
2228 8217,
2229 8220,
2230 8221,
2231 8226,
2232 8211,
2233 8212,
2234 0,
2235 8482,
2236 353,
2237 8250,
2238 347,
2239 357,
2240 382,
2241 378,
2242 160,
2243 711,
2244 728,
2245 321,
2246 164,
2247 260,
2248 166,
2249 167,
2250 168,
2251 169,
2252 350,
2253 171,
2254 172,
2255 173,
2256 174,
2257 379,
2258 176,
2259 177,
2260 731,
2261 322,
2262 180,
2263 181,
2264 182,
2265 183,
2266 184,
2267 261,
2268 351,
2269 187,
2270 317,
2271 733,
2272 318,
2273 380,
2274 340,
2275 193,
2276 194,
2277 258,
2278 196,
2279 313,
2280 262,
2281 199,
2282 268,
2283 201,
2284 280,
2285 203,
2286 282,
2287 205,
2288 206,
2289 270,
2290 272,
2291 323,
2292 327,
2293 211,
2294 212,
2295 336,
2296 214,
2297 215,
2298 344,
2299 366,
2300 218,
2301 368,
2302 220,
2303 221,
2304 354,
2305 223,
2306 341,
2307 225,
2308 226,
2309 259,
2310 228,
2311 314,
2312 263,
2313 231,
2314 269,
2315 233,
2316 281,
2317 235,
2318 283,
2319 237,
2320 238,
2321 271,
2322 273,
2323 324,
2324 328,
2325 243,
2326 244,
2327 337,
2328 246,
2329 247,
2330 345,
2331 367,
2332 250,
2333 369,
2334 252,
2335 253,
2336 355,
2337 729,
2338 };
2339
2340 const char *fz_glyph_name_from_windows_1250[256] = {
2341 _notdef,
2342 _notdef,
2343 _notdef,
2344 _notdef,
2345 _notdef,
2346 _notdef,
2347 _notdef,
2348 _notdef,
2349 _notdef,
2350 _notdef,
2351 _notdef,
2352 _notdef,
2353 _notdef,
2354 _notdef,
2355 _notdef,
2356 _notdef,
2357 _notdef,
2358 _notdef,
2359 _notdef,
2360 _notdef,
2361 _notdef,
2362 _notdef,
2363 _notdef,
2364 _notdef,
2365 _notdef,
2366 _notdef,
2367 _notdef,
2368 _notdef,
2369 _notdef,
2370 _notdef,
2371 _notdef,
2372 _notdef,
2373 "space",
2374 "exclam",
2375 "quotedbl",
2376 "numbersign",
2377 "dollar",
2378 "percent",
2379 "ampersand",
2380 "quotesingle",
2381 "parenleft",
2382 "parenright",
2383 "asterisk",
2384 "plus",
2385 "comma",
2386 "hyphen",
2387 "period",
2388 "slash",
2389 "zero",
2390 "one",
2391 "two",
2392 "three",
2393 "four",
2394 "five",
2395 "six",
2396 "seven",
2397 "eight",
2398 "nine",
2399 "colon",
2400 "semicolon",
2401 "less",
2402 "equal",
2403 "greater",
2404 "question",
2405 "at",
2406 "A",
2407 "B",
2408 "C",
2409 "D",
2410 "E",
2411 "F",
2412 "G",
2413 "H",
2414 "I",
2415 "J",
2416 "K",
2417 "L",
2418 "M",
2419 "N",
2420 "O",
2421 "P",
2422 "Q",
2423 "R",
2424 "S",
2425 "T",
2426 "U",
2427 "V",
2428 "W",
2429 "X",
2430 "Y",
2431 "Z",
2432 "bracketleft",
2433 "backslash",
2434 "bracketright",
2435 "asciicircum",
2436 "underscore",
2437 "grave",
2438 "a",
2439 "b",
2440 "c",
2441 "d",
2442 "e",
2443 "f",
2444 "g",
2445 "h",
2446 "i",
2447 "j",
2448 "k",
2449 "l",
2450 "m",
2451 "n",
2452 "o",
2453 "p",
2454 "q",
2455 "r",
2456 "s",
2457 "t",
2458 "u",
2459 "v",
2460 "w",
2461 "x",
2462 "y",
2463 "z",
2464 "braceleft",
2465 "bar",
2466 "braceright",
2467 "asciitilde",
2468 "controlDEL",
2469 "Euro",
2470 _notdef,
2471 "quotesinglbase",
2472 _notdef,
2473 "quotedblbase",
2474 "ellipsis",
2475 "dagger",
2476 "daggerdbl",
2477 _notdef,
2478 "perthousand",
2479 "Scaron",
2480 "guilsinglleft",
2481 "Sacute",
2482 "Tcaron",
2483 "Zcaron",
2484 "Zacute",
2485 _notdef,
2486 "quoteleft",
2487 "quoteright",
2488 "quotedblleft",
2489 "quotedblright",
2490 "bullet",
2491 "endash",
2492 "emdash",
2493 _notdef,
2494 "trademark",
2495 "scaron",
2496 "guilsinglright",
2497 "sacute",
2498 "tcaron",
2499 "zcaron",
2500 "zacute",
2501 "nbspace",
2502 "caron",
2503 "breve",
2504 "Lslash",
2505 "currency",
2506 "Aogonek",
2507 "brokenbar",
2508 "section",
2509 "dieresis",
2510 "copyright",
2511 "Scedilla",
2512 "guillemotleft",
2513 "logicalnot",
2514 "sfthyphen",
2515 "registered",
2516 "Zdot",
2517 "degree",
2518 "plusminus",
2519 "ogonek",
2520 "lslash",
2521 "acute",
2522 "mu",
2523 "paragraph",
2524 "periodcentered",
2525 "cedilla",
2526 "aogonek",
2527 "scedilla",
2528 "guillemotright",
2529 "Lcaron",
2530 "hungarumlaut",
2531 "lcaron",
2532 "zdot",
2533 "Racute",
2534 "Aacute",
2535 "Acircumflex",
2536 "Abreve",
2537 "Adieresis",
2538 "Lacute",
2539 "Cacute",
2540 "Ccedilla",
2541 "Ccaron",
2542 "Eacute",
2543 "Eogonek",
2544 "Edieresis",
2545 "Ecaron",
2546 "Iacute",
2547 "Icircumflex",
2548 "Dcaron",
2549 "Dcroat",
2550 "Nacute",
2551 "Ncaron",
2552 "Oacute",
2553 "Ocircumflex",
2554 "Odblacute",
2555 "Odieresis",
2556 "multiply",
2557 "Rcaron",
2558 "Uring",
2559 "Uacute",
2560 "Udblacute",
2561 "Udieresis",
2562 "Yacute",
2563 "Tcedilla",
2564 "germandbls",
2565 "racute",
2566 "aacute",
2567 "acircumflex",
2568 "abreve",
2569 "adieresis",
2570 "lacute",
2571 "cacute",
2572 "ccedilla",
2573 "ccaron",
2574 "eacute",
2575 "eogonek",
2576 "edieresis",
2577 "ecaron",
2578 "iacute",
2579 "icircumflex",
2580 "dcaron",
2581 "dcroat",
2582 "nacute",
2583 "ncaron",
2584 "oacute",
2585 "ocircumflex",
2586 "odblacute",
2587 "odieresis",
2588 "divide",
2589 "rcaron",
2590 "uring",
2591 "uacute",
2592 "udblacute",
2593 "udieresis",
2594 "yacute",
2595 "tcedilla",
2596 "dotaccent",
2597 };
2598
2599 static const struct { unsigned short u, c; } windows_1250_from_unicode[] = {
2600 {0x00a0,160},
2601 {0x00a4,164},
2602 {0x00a6,166},
2603 {0x00a7,167},
2604 {0x00a8,168},
2605 {0x00a9,169},
2606 {0x00ab,171},
2607 {0x00ac,172},
2608 {0x00ad,173},
2609 {0x00ae,174},
2610 {0x00b0,176},
2611 {0x00b1,177},
2612 {0x00b4,180},
2613 {0x00b5,181},
2614 {0x00b6,182},
2615 {0x00b7,183},
2616 {0x00b8,184},
2617 {0x00bb,187},
2618 {0x00c1,193},
2619 {0x00c2,194},
2620 {0x00c4,196},
2621 {0x00c7,199},
2622 {0x00c9,201},
2623 {0x00cb,203},
2624 {0x00cd,205},
2625 {0x00ce,206},
2626 {0x00d3,211},
2627 {0x00d4,212},
2628 {0x00d6,214},
2629 {0x00d7,215},
2630 {0x00da,218},
2631 {0x00dc,220},
2632 {0x00dd,221},
2633 {0x00df,223},
2634 {0x00e1,225},
2635 {0x00e2,226},
2636 {0x00e4,228},
2637 {0x00e7,231},
2638 {0x00e9,233},
2639 {0x00eb,235},
2640 {0x00ed,237},
2641 {0x00ee,238},
2642 {0x00f3,243},
2643 {0x00f4,244},
2644 {0x00f6,246},
2645 {0x00f7,247},
2646 {0x00fa,250},
2647 {0x00fc,252},
2648 {0x00fd,253},
2649 {0x0102,195},
2650 {0x0103,227},
2651 {0x0104,165},
2652 {0x0105,185},
2653 {0x0106,198},
2654 {0x0107,230},
2655 {0x010c,200},
2656 {0x010d,232},
2657 {0x010e,207},
2658 {0x010f,239},
2659 {0x0110,208},
2660 {0x0111,240},
2661 {0x0118,202},
2662 {0x0119,234},
2663 {0x011a,204},
2664 {0x011b,236},
2665 {0x0139,197},
2666 {0x013a,229},
2667 {0x013d,188},
2668 {0x013e,190},
2669 {0x0141,163},
2670 {0x0142,179},
2671 {0x0143,209},
2672 {0x0144,241},
2673 {0x0147,210},
2674 {0x0148,242},
2675 {0x0150,213},
2676 {0x0151,245},
2677 {0x0154,192},
2678 {0x0155,224},
2679 {0x0158,216},
2680 {0x0159,248},
2681 {0x015a,140},
2682 {0x015b,156},
2683 {0x015e,170},
2684 {0x015f,186},
2685 {0x0160,138},
2686 {0x0161,154},
2687 {0x0162,222},
2688 {0x0163,254},
2689 {0x0164,141},
2690 {0x0165,157},
2691 {0x016e,217},
2692 {0x016f,249},
2693 {0x0170,219},
2694 {0x0171,251},
2695 {0x0179,143},
2696 {0x017a,159},
2697 {0x017b,175},
2698 {0x017c,191},
2699 {0x017d,142},
2700 {0x017e,158},
2701 {0x02c7,161},
2702 {0x02d8,162},
2703 {0x02d9,255},
2704 {0x02db,178},
2705 {0x02dd,189},
2706 {0x2013,150},
2707 {0x2014,151},
2708 {0x2018,145},
2709 {0x2019,146},
2710 {0x201a,130},
2711 {0x201c,147},
2712 {0x201d,148},
2713 {0x201e,132},
2714 {0x2020,134},
2715 {0x2021,135},
2716 {0x2022,149},
2717 {0x2026,133},
2718 {0x2030,137},
2719 {0x2039,139},
2720 {0x203a,155},
2721 {0x20ac,128},
2722 {0x2122,153},
2723 };
2724
2725 const unsigned short fz_unicode_from_windows_1251[256] = {
2726 0,
2727 1,
2728 2,
2729 3,
2730 4,
2731 5,
2732 6,
2733 7,
2734 8,
2735 9,
2736 10,
2737 11,
2738 12,
2739 13,
2740 14,
2741 15,
2742 16,
2743 17,
2744 18,
2745 19,
2746 20,
2747 21,
2748 22,
2749 23,
2750 24,
2751 25,
2752 26,
2753 27,
2754 28,
2755 29,
2756 30,
2757 31,
2758 32,
2759 33,
2760 34,
2761 35,
2762 36,
2763 37,
2764 38,
2765 39,
2766 40,
2767 41,
2768 42,
2769 43,
2770 44,
2771 45,
2772 46,
2773 47,
2774 48,
2775 49,
2776 50,
2777 51,
2778 52,
2779 53,
2780 54,
2781 55,
2782 56,
2783 57,
2784 58,
2785 59,
2786 60,
2787 61,
2788 62,
2789 63,
2790 64,
2791 65,
2792 66,
2793 67,
2794 68,
2795 69,
2796 70,
2797 71,
2798 72,
2799 73,
2800 74,
2801 75,
2802 76,
2803 77,
2804 78,
2805 79,
2806 80,
2807 81,
2808 82,
2809 83,
2810 84,
2811 85,
2812 86,
2813 87,
2814 88,
2815 89,
2816 90,
2817 91,
2818 92,
2819 93,
2820 94,
2821 95,
2822 96,
2823 97,
2824 98,
2825 99,
2826 100,
2827 101,
2828 102,
2829 103,
2830 104,
2831 105,
2832 106,
2833 107,
2834 108,
2835 109,
2836 110,
2837 111,
2838 112,
2839 113,
2840 114,
2841 115,
2842 116,
2843 117,
2844 118,
2845 119,
2846 120,
2847 121,
2848 122,
2849 123,
2850 124,
2851 125,
2852 126,
2853 127,
2854 1026,
2855 1027,
2856 8218,
2857 1107,
2858 8222,
2859 8230,
2860 8224,
2861 8225,
2862 8364,
2863 8240,
2864 1033,
2865 8249,
2866 1034,
2867 1036,
2868 1035,
2869 1039,
2870 1106,
2871 8216,
2872 8217,
2873 8220,
2874 8221,
2875 8226,
2876 8211,
2877 8212,
2878 0,
2879 8482,
2880 1113,
2881 8250,
2882 1114,
2883 1116,
2884 1115,
2885 1119,
2886 160,
2887 1038,
2888 1118,
2889 1032,
2890 164,
2891 1168,
2892 166,
2893 167,
2894 1025,
2895 169,
2896 1028,
2897 171,
2898 172,
2899 173,
2900 174,
2901 1031,
2902 176,
2903 177,
2904 1030,
2905 1110,
2906 1169,
2907 181,
2908 182,
2909 183,
2910 1105,
2911 8470,
2912 1108,
2913 187,
2914 1112,
2915 1029,
2916 1109,
2917 1111,
2918 1040,
2919 1041,
2920 1042,
2921 1043,
2922 1044,
2923 1045,
2924 1046,
2925 1047,
2926 1048,
2927 1049,
2928 1050,
2929 1051,
2930 1052,
2931 1053,
2932 1054,
2933 1055,
2934 1056,
2935 1057,
2936 1058,
2937 1059,
2938 1060,
2939 1061,
2940 1062,
2941 1063,
2942 1064,
2943 1065,
2944 1066,
2945 1067,
2946 1068,
2947 1069,
2948 1070,
2949 1071,
2950 1072,
2951 1073,
2952 1074,
2953 1075,
2954 1076,
2955 1077,
2956 1078,
2957 1079,
2958 1080,
2959 1081,
2960 1082,
2961 1083,
2962 1084,
2963 1085,
2964 1086,
2965 1087,
2966 1088,
2967 1089,
2968 1090,
2969 1091,
2970 1092,
2971 1093,
2972 1094,
2973 1095,
2974 1096,
2975 1097,
2976 1098,
2977 1099,
2978 1100,
2979 1101,
2980 1102,
2981 1103,
2982 };
2983
2984 const char *fz_glyph_name_from_windows_1251[256] = {
2985 _notdef,
2986 _notdef,
2987 _notdef,
2988 _notdef,
2989 _notdef,
2990 _notdef,
2991 _notdef,
2992 _notdef,
2993 _notdef,
2994 _notdef,
2995 _notdef,
2996 _notdef,
2997 _notdef,
2998 _notdef,
2999 _notdef,
3000 _notdef,
3001 _notdef,
3002 _notdef,
3003 _notdef,
3004 _notdef,
3005 _notdef,
3006 _notdef,
3007 _notdef,
3008 _notdef,
3009 _notdef,
3010 _notdef,
3011 _notdef,
3012 _notdef,
3013 _notdef,
3014 _notdef,
3015 _notdef,
3016 _notdef,
3017 "space",
3018 "exclam",
3019 "quotedbl",
3020 "numbersign",
3021 "dollar",
3022 "percent",
3023 "ampersand",
3024 "quotesingle",
3025 "parenleft",
3026 "parenright",
3027 "asterisk",
3028 "plus",
3029 "comma",
3030 "hyphen",
3031 "period",
3032 "slash",
3033 "zero",
3034 "one",
3035 "two",
3036 "three",
3037 "four",
3038 "five",
3039 "six",
3040 "seven",
3041 "eight",
3042 "nine",
3043 "colon",
3044 "semicolon",
3045 "less",
3046 "equal",
3047 "greater",
3048 "question",
3049 "at",
3050 "A",
3051 "B",
3052 "C",
3053 "D",
3054 "E",
3055 "F",
3056 "G",
3057 "H",
3058 "I",
3059 "J",
3060 "K",
3061 "L",
3062 "M",
3063 "N",
3064 "O",
3065 "P",
3066 "Q",
3067 "R",
3068 "S",
3069 "T",
3070 "U",
3071 "V",
3072 "W",
3073 "X",
3074 "Y",
3075 "Z",
3076 "bracketleft",
3077 "backslash",
3078 "bracketright",
3079 "asciicircum",
3080 "underscore",
3081 "grave",
3082 "a",
3083 "b",
3084 "c",
3085 "d",
3086 "e",
3087 "f",
3088 "g",
3089 "h",
3090 "i",
3091 "j",
3092 "k",
3093 "l",
3094 "m",
3095 "n",
3096 "o",
3097 "p",
3098 "q",
3099 "r",
3100 "s",
3101 "t",
3102 "u",
3103 "v",
3104 "w",
3105 "x",
3106 "y",
3107 "z",
3108 "braceleft",
3109 "bar",
3110 "braceright",
3111 "asciitilde",
3112 "controlDEL",
3113 "Djecyrillic",
3114 "Gjecyrillic",
3115 "quotesinglbase",
3116 "afii10100",
3117 "quotedblbase",
3118 "ellipsis",
3119 "dagger",
3120 "daggerdbl",
3121 "Euro",
3122 "perthousand",
3123 "Ljecyrillic",
3124 "guilsinglleft",
3125 "Njecyrillic",
3126 "Kjecyrillic",
3127 "Tshecyrillic",
3128 "Dzhecyrillic",
3129 "afii10099",
3130 "quoteleft",
3131 "quoteright",
3132 "quotedblleft",
3133 "quotedblright",
3134 "bullet",
3135 "endash",
3136 "emdash",
3137 _notdef,
3138 "trademark",
3139 "afii10106",
3140 "guilsinglright",
3141 "afii10107",
3142 "afii10109",
3143 "afii10108",
3144 "afii10193",
3145 "nbspace",
3146 "Ushortcyrillic",
3147 "afii10110",
3148 "Jecyrillic",
3149 "currency",
3150 "Gheupturncyrillic",
3151 "brokenbar",
3152 "section",
3153 "Iocyrillic",
3154 "copyright",
3155 "Ecyrillic",
3156 "guillemotleft",
3157 "logicalnot",
3158 "sfthyphen",
3159 "registered",
3160 "Yicyrillic",
3161 "degree",
3162 "plusminus",
3163 "Icyrillic",
3164 "afii10103",
3165 "afii10098",
3166 "mu",
3167 "paragraph",
3168 "periodcentered",
3169 "afii10071",
3170 "afii61352",
3171 "afii10101",
3172 "guillemotright",
3173 "afii10105",
3174 "Dzecyrillic",
3175 "afii10102",
3176 "afii10104",
3177 "Acyrillic",
3178 "Becyrillic",
3179 "Vecyrillic",
3180 "Gecyrillic",
3181 "Decyrillic",
3182 "Iecyrillic",
3183 "Zhecyrillic",
3184 "Zecyrillic",
3185 "Iicyrillic",
3186 "Iishortcyrillic",
3187 "Kacyrillic",
3188 "Elcyrillic",
3189 "Emcyrillic",
3190 "Encyrillic",
3191 "Ocyrillic",
3192 "Pecyrillic",
3193 "Ercyrillic",
3194 "Escyrillic",
3195 "Tecyrillic",
3196 "Ucyrillic",
3197 "Efcyrillic",
3198 "Khacyrillic",
3199 "Tsecyrillic",
3200 "Checyrillic",
3201 "Shacyrillic",
3202 "Shchacyrillic",
3203 "Hardsigncyrillic",
3204 "Yericyrillic",
3205 "Softsigncyrillic",
3206 "Ereversedcyrillic",
3207 "IUcyrillic",
3208 "IAcyrillic",
3209 "acyrillic",
3210 "afii10066",
3211 "afii10067",
3212 "afii10068",
3213 "afii10069",
3214 "afii10070",
3215 "afii10072",
3216 "afii10073",
3217 "afii10074",
3218 "afii10075",
3219 "afii10076",
3220 "afii10077",
3221 "afii10078",
3222 "afii10079",
3223 "afii10080",
3224 "afii10081",
3225 "afii10082",
3226 "afii10083",
3227 "afii10084",
3228 "afii10085",
3229 "afii10086",
3230 "afii10087",
3231 "afii10088",
3232 "afii10089",
3233 "afii10090",
3234 "afii10091",
3235 "afii10092",
3236 "afii10093",
3237 "afii10094",
3238 "afii10095",
3239 "afii10096",
3240 "afii10097",
3241 };
3242
3243 static const struct { unsigned short u, c; } windows_1251_from_unicode[] = {
3244 {0x00a0,160},
3245 {0x00a4,164},
3246 {0x00a6,166},
3247 {0x00a7,167},
3248 {0x00a9,169},
3249 {0x00ab,171},
3250 {0x00ac,172},
3251 {0x00ad,173},
3252 {0x00ae,174},
3253 {0x00b0,176},
3254 {0x00b1,177},
3255 {0x00b5,181},
3256 {0x00b6,182},
3257 {0x00b7,183},
3258 {0x00bb,187},
3259 {0x0401,168},
3260 {0x0402,128},
3261 {0x0403,129},
3262 {0x0404,170},
3263 {0x0405,189},
3264 {0x0406,178},
3265 {0x0407,175},
3266 {0x0408,163},
3267 {0x0409,138},
3268 {0x040a,140},
3269 {0x040b,142},
3270 {0x040c,141},
3271 {0x040e,161},
3272 {0x040f,143},
3273 {0x0410,192},
3274 {0x0411,193},
3275 {0x0412,194},
3276 {0x0413,195},
3277 {0x0414,196},
3278 {0x0415,197},
3279 {0x0416,198},
3280 {0x0417,199},
3281 {0x0418,200},
3282 {0x0419,201},
3283 {0x041a,202},
3284 {0x041b,203},
3285 {0x041c,204},
3286 {0x041d,205},
3287 {0x041e,206},
3288 {0x041f,207},
3289 {0x0420,208},
3290 {0x0421,209},
3291 {0x0422,210},
3292 {0x0423,211},
3293 {0x0424,212},
3294 {0x0425,213},
3295 {0x0426,214},
3296 {0x0427,215},
3297 {0x0428,216},
3298 {0x0429,217},
3299 {0x042a,218},
3300 {0x042b,219},
3301 {0x042c,220},
3302 {0x042d,221},
3303 {0x042e,222},
3304 {0x042f,223},
3305 {0x0430,224},
3306 {0x0431,225},
3307 {0x0432,226},
3308 {0x0433,227},
3309 {0x0434,228},
3310 {0x0435,229},
3311 {0x0436,230},
3312 {0x0437,231},
3313 {0x0438,232},
3314 {0x0439,233},
3315 {0x043a,234},
3316 {0x043b,235},
3317 {0x043c,236},
3318 {0x043d,237},
3319 {0x043e,238},
3320 {0x043f,239},
3321 {0x0440,240},
3322 {0x0441,241},
3323 {0x0442,242},
3324 {0x0443,243},
3325 {0x0444,244},
3326 {0x0445,245},
3327 {0x0446,246},
3328 {0x0447,247},
3329 {0x0448,248},
3330 {0x0449,249},
3331 {0x044a,250},
3332 {0x044b,251},
3333 {0x044c,252},
3334 {0x044d,253},
3335 {0x044e,254},
3336 {0x044f,255},
3337 {0x0451,184},
3338 {0x0452,144},
3339 {0x0453,131},
3340 {0x0454,186},
3341 {0x0455,190},
3342 {0x0456,179},
3343 {0x0457,191},
3344 {0x0458,188},
3345 {0x0459,154},
3346 {0x045a,156},
3347 {0x045b,158},
3348 {0x045c,157},
3349 {0x045e,162},
3350 {0x045f,159},
3351 {0x0490,165},
3352 {0x0491,180},
3353 {0x2013,150},
3354 {0x2014,151},
3355 {0x2018,145},
3356 {0x2019,146},
3357 {0x201a,130},
3358 {0x201c,147},
3359 {0x201d,148},
3360 {0x201e,132},
3361 {0x2020,134},
3362 {0x2021,135},
3363 {0x2022,149},
3364 {0x2026,133},
3365 {0x2030,137},
3366 {0x2039,139},
3367 {0x203a,155},
3368 {0x20ac,136},
3369 {0x2116,185},
3370 {0x2122,153},
3371 };
3372
3373 const unsigned short fz_unicode_from_windows_1252[256] = {
3374 0,
3375 1,
3376 2,
3377 3,
3378 4,
3379 5,
3380 6,
3381 7,
3382 8,
3383 9,
3384 10,
3385 11,
3386 12,
3387 13,
3388 14,
3389 15,
3390 16,
3391 17,
3392 18,
3393 19,
3394 20,
3395 21,
3396 22,
3397 23,
3398 24,
3399 25,
3400 26,
3401 27,
3402 28,
3403 29,
3404 30,
3405 31,
3406 32,
3407 33,
3408 34,
3409 35,
3410 36,
3411 37,
3412 38,
3413 39,
3414 40,
3415 41,
3416 42,
3417 43,
3418 44,
3419 45,
3420 46,
3421 47,
3422 48,
3423 49,
3424 50,
3425 51,
3426 52,
3427 53,
3428 54,
3429 55,
3430 56,
3431 57,
3432 58,
3433 59,
3434 60,
3435 61,
3436 62,
3437 63,
3438 64,
3439 65,
3440 66,
3441 67,
3442 68,
3443 69,
3444 70,
3445 71,
3446 72,
3447 73,
3448 74,
3449 75,
3450 76,
3451 77,
3452 78,
3453 79,
3454 80,
3455 81,
3456 82,
3457 83,
3458 84,
3459 85,
3460 86,
3461 87,
3462 88,
3463 89,
3464 90,
3465 91,
3466 92,
3467 93,
3468 94,
3469 95,
3470 96,
3471 97,
3472 98,
3473 99,
3474 100,
3475 101,
3476 102,
3477 103,
3478 104,
3479 105,
3480 106,
3481 107,
3482 108,
3483 109,
3484 110,
3485 111,
3486 112,
3487 113,
3488 114,
3489 115,
3490 116,
3491 117,
3492 118,
3493 119,
3494 120,
3495 121,
3496 122,
3497 123,
3498 124,
3499 125,
3500 126,
3501 127,
3502 8364,
3503 0,
3504 8218,
3505 402,
3506 8222,
3507 8230,
3508 8224,
3509 8225,
3510 710,
3511 8240,
3512 352,
3513 8249,
3514 338,
3515 0,
3516 381,
3517 0,
3518 0,
3519 8216,
3520 8217,
3521 8220,
3522 8221,
3523 8226,
3524 8211,
3525 8212,
3526 732,
3527 8482,
3528 353,
3529 8250,
3530 339,
3531 0,
3532 382,
3533 376,
3534 160,
3535 161,
3536 162,
3537 163,
3538 164,
3539 165,
3540 166,
3541 167,
3542 168,
3543 169,
3544 170,
3545 171,
3546 172,
3547 173,
3548 174,
3549 175,
3550 176,
3551 177,
3552 178,
3553 179,
3554 180,
3555 181,
3556 182,
3557 183,
3558 184,
3559 185,
3560 186,
3561 187,
3562 188,
3563 189,
3564 190,
3565 191,
3566 192,
3567 193,
3568 194,
3569 195,
3570 196,
3571 197,
3572 198,
3573 199,
3574 200,
3575 201,
3576 202,
3577 203,
3578 204,
3579 205,
3580 206,
3581 207,
3582 208,
3583 209,
3584 210,
3585 211,
3586 212,
3587 213,
3588 214,
3589 215,
3590 216,
3591 217,
3592 218,
3593 219,
3594 220,
3595 221,
3596 222,
3597 223,
3598 224,
3599 225,
3600 226,
3601 227,
3602 228,
3603 229,
3604 230,
3605 231,
3606 232,
3607 233,
3608 234,
3609 235,
3610 236,
3611 237,
3612 238,
3613 239,
3614 240,
3615 241,
3616 242,
3617 243,
3618 244,
3619 245,
3620 246,
3621 247,
3622 248,
3623 249,
3624 250,
3625 251,
3626 252,
3627 253,
3628 254,
3629 255,
3630 };
3631
3632 const char *fz_glyph_name_from_windows_1252[256] = {
3633 _notdef,
3634 _notdef,
3635 _notdef,
3636 _notdef,
3637 _notdef,
3638 _notdef,
3639 _notdef,
3640 _notdef,
3641 _notdef,
3642 _notdef,
3643 _notdef,
3644 _notdef,
3645 _notdef,
3646 _notdef,
3647 _notdef,
3648 _notdef,
3649 _notdef,
3650 _notdef,
3651 _notdef,
3652 _notdef,
3653 _notdef,
3654 _notdef,
3655 _notdef,
3656 _notdef,
3657 _notdef,
3658 _notdef,
3659 _notdef,
3660 _notdef,
3661 _notdef,
3662 _notdef,
3663 _notdef,
3664 _notdef,
3665 "space",
3666 "exclam",
3667 "quotedbl",
3668 "numbersign",
3669 "dollar",
3670 "percent",
3671 "ampersand",
3672 "quotesingle",
3673 "parenleft",
3674 "parenright",
3675 "asterisk",
3676 "plus",
3677 "comma",
3678 "hyphen",
3679 "period",
3680 "slash",
3681 "zero",
3682 "one",
3683 "two",
3684 "three",
3685 "four",
3686 "five",
3687 "six",
3688 "seven",
3689 "eight",
3690 "nine",
3691 "colon",
3692 "semicolon",
3693 "less",
3694 "equal",
3695 "greater",
3696 "question",
3697 "at",
3698 "A",
3699 "B",
3700 "C",
3701 "D",
3702 "E",
3703 "F",
3704 "G",
3705 "H",
3706 "I",
3707 "J",
3708 "K",
3709 "L",
3710 "M",
3711 "N",
3712 "O",
3713 "P",
3714 "Q",
3715 "R",
3716 "S",
3717 "T",
3718 "U",
3719 "V",
3720 "W",
3721 "X",
3722 "Y",
3723 "Z",
3724 "bracketleft",
3725 "backslash",
3726 "bracketright",
3727 "asciicircum",
3728 "underscore",
3729 "grave",
3730 "a",
3731 "b",
3732 "c",
3733 "d",
3734 "e",
3735 "f",
3736 "g",
3737 "h",
3738 "i",
3739 "j",
3740 "k",
3741 "l",
3742 "m",
3743 "n",
3744 "o",
3745 "p",
3746 "q",
3747 "r",
3748 "s",
3749 "t",
3750 "u",
3751 "v",
3752 "w",
3753 "x",
3754 "y",
3755 "z",
3756 "braceleft",
3757 "bar",
3758 "braceright",
3759 "asciitilde",
3760 "controlDEL",
3761 "Euro",
3762 _notdef,
3763 "quotesinglbase",
3764 "florin",
3765 "quotedblbase",
3766 "ellipsis",
3767 "dagger",
3768 "daggerdbl",
3769 "circumflex",
3770 "perthousand",
3771 "Scaron",
3772 "guilsinglleft",
3773 "OE",
3774 _notdef,
3775 "Zcaron",
3776 _notdef,
3777 _notdef,
3778 "quoteleft",
3779 "quoteright",
3780 "quotedblleft",
3781 "quotedblright",
3782 "bullet",
3783 "endash",
3784 "emdash",
3785 "tilde",
3786 "trademark",
3787 "scaron",
3788 "guilsinglright",
3789 "oe",
3790 _notdef,
3791 "zcaron",
3792 "Ydieresis",
3793 "nbspace",
3794 "exclamdown",
3795 "cent",
3796 "sterling",
3797 "currency",
3798 "yen",
3799 "brokenbar",
3800 "section",
3801 "dieresis",
3802 "copyright",
3803 "ordfeminine",
3804 "guillemotleft",
3805 "logicalnot",
3806 "sfthyphen",
3807 "registered",
3808 "macron",
3809 "degree",
3810 "plusminus",
3811 "twosuperior",
3812 "threesuperior",
3813 "acute",
3814 "mu",
3815 "paragraph",
3816 "periodcentered",
3817 "cedilla",
3818 "onesuperior",
3819 "ordmasculine",
3820 "guillemotright",
3821 "onequarter",
3822 "onehalf",
3823 "threequarters",
3824 "questiondown",
3825 "Agrave",
3826 "Aacute",
3827 "Acircumflex",
3828 "Atilde",
3829 "Adieresis",
3830 "Aring",
3831 "AE",
3832 "Ccedilla",
3833 "Egrave",
3834 "Eacute",
3835 "Ecircumflex",
3836 "Edieresis",
3837 "Igrave",
3838 "Iacute",
3839 "Icircumflex",
3840 "Idieresis",
3841 "Eth",
3842 "Ntilde",
3843 "Ograve",
3844 "Oacute",
3845 "Ocircumflex",
3846 "Otilde",
3847 "Odieresis",
3848 "multiply",
3849 "Oslash",
3850 "Ugrave",
3851 "Uacute",
3852 "Ucircumflex",
3853 "Udieresis",
3854 "Yacute",
3855 "Thorn",
3856 "germandbls",
3857 "agrave",
3858 "aacute",
3859 "acircumflex",
3860 "atilde",
3861 "adieresis",
3862 "aring",
3863 "ae",
3864 "ccedilla",
3865 "egrave",
3866 "eacute",
3867 "ecircumflex",
3868 "edieresis",
3869 "igrave",
3870 "iacute",
3871 "icircumflex",
3872 "idieresis",
3873 "eth",
3874 "ntilde",
3875 "ograve",
3876 "oacute",
3877 "ocircumflex",
3878 "otilde",
3879 "odieresis",
3880 "divide",
3881 "oslash",
3882 "ugrave",
3883 "uacute",
3884 "ucircumflex",
3885 "udieresis",
3886 "yacute",
3887 "thorn",
3888 "ydieresis",
3889 };
3890
3891 static const struct { unsigned short u, c; } windows_1252_from_unicode[] = {
3892 {0x00a0,160},
3893 {0x00a1,161},
3894 {0x00a2,162},
3895 {0x00a3,163},
3896 {0x00a4,164},
3897 {0x00a5,165},
3898 {0x00a6,166},
3899 {0x00a7,167},
3900 {0x00a8,168},
3901 {0x00a9,169},
3902 {0x00aa,170},
3903 {0x00ab,171},
3904 {0x00ac,172},
3905 {0x00ad,173},
3906 {0x00ae,174},
3907 {0x00af,175},
3908 {0x00b0,176},
3909 {0x00b1,177},
3910 {0x00b2,178},
3911 {0x00b3,179},
3912 {0x00b4,180},
3913 {0x00b5,181},
3914 {0x00b6,182},
3915 {0x00b7,183},
3916 {0x00b8,184},
3917 {0x00b9,185},
3918 {0x00ba,186},
3919 {0x00bb,187},
3920 {0x00bc,188},
3921 {0x00bd,189},
3922 {0x00be,190},
3923 {0x00bf,191},
3924 {0x00c0,192},
3925 {0x00c1,193},
3926 {0x00c2,194},
3927 {0x00c3,195},
3928 {0x00c4,196},
3929 {0x00c5,197},
3930 {0x00c6,198},
3931 {0x00c7,199},
3932 {0x00c8,200},
3933 {0x00c9,201},
3934 {0x00ca,202},
3935 {0x00cb,203},
3936 {0x00cc,204},
3937 {0x00cd,205},
3938 {0x00ce,206},
3939 {0x00cf,207},
3940 {0x00d0,208},
3941 {0x00d1,209},
3942 {0x00d2,210},
3943 {0x00d3,211},
3944 {0x00d4,212},
3945 {0x00d5,213},
3946 {0x00d6,214},
3947 {0x00d7,215},
3948 {0x00d8,216},
3949 {0x00d9,217},
3950 {0x00da,218},
3951 {0x00db,219},
3952 {0x00dc,220},
3953 {0x00dd,221},
3954 {0x00de,222},
3955 {0x00df,223},
3956 {0x00e0,224},
3957 {0x00e1,225},
3958 {0x00e2,226},
3959 {0x00e3,227},
3960 {0x00e4,228},
3961 {0x00e5,229},
3962 {0x00e6,230},
3963 {0x00e7,231},
3964 {0x00e8,232},
3965 {0x00e9,233},
3966 {0x00ea,234},
3967 {0x00eb,235},
3968 {0x00ec,236},
3969 {0x00ed,237},
3970 {0x00ee,238},
3971 {0x00ef,239},
3972 {0x00f0,240},
3973 {0x00f1,241},
3974 {0x00f2,242},
3975 {0x00f3,243},
3976 {0x00f4,244},
3977 {0x00f5,245},
3978 {0x00f6,246},
3979 {0x00f7,247},
3980 {0x00f8,248},
3981 {0x00f9,249},
3982 {0x00fa,250},
3983 {0x00fb,251},
3984 {0x00fc,252},
3985 {0x00fd,253},
3986 {0x00fe,254},
3987 {0x00ff,255},
3988 {0x0152,140},
3989 {0x0153,156},
3990 {0x0160,138},
3991 {0x0161,154},
3992 {0x0178,159},
3993 {0x017d,142},
3994 {0x017e,158},
3995 {0x0192,131},
3996 {0x02c6,136},
3997 {0x02dc,152},
3998 {0x2013,150},
3999 {0x2014,151},
4000 {0x2018,145},
4001 {0x2019,146},
4002 {0x201a,130},
4003 {0x201c,147},
4004 {0x201d,148},
4005 {0x201e,132},
4006 {0x2020,134},
4007 {0x2021,135},
4008 {0x2022,149},
4009 {0x2026,133},
4010 {0x2030,137},
4011 {0x2039,139},
4012 {0x203a,155},
4013 {0x20ac,128},
4014 {0x2122,153},
4015 };