eBookReaderSwitch/source/fitz/encodings.h

3994 lines
49 KiB
C
Raw Normal View History

#define _notdef NULL
const unsigned short fz_unicode_from_pdf_doc_encoding[256] =
{
/* 0x0 to 0x17 except \t, \n and \r are really undefined */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x02d8, 0x02c7, 0x02c6, 0x02d9, 0x02dd, 0x02db, 0x02da, 0x02dc,
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x0000,
0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x0192, 0x2044,
0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,
0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x0141, 0x0152, 0x0160,
0x0178, 0x017d, 0x0131, 0x0142, 0x0153, 0x0161, 0x017e, 0x0000,
0x20ac, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x0000, 0x00ae, 0x00af,
0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
};
const char *fz_glyph_name_from_adobe_standard[256] = {
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
"space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
"ampersand", "quoteright", "parenleft", "parenright", "asterisk",
"plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
"three", "four", "five", "six", "seven", "eight", "nine", "colon",
"semicolon", "less", "equal", "greater", "question", "at", "A", "B",
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
"backslash", "bracketright", "asciicircum", "underscore", "quoteleft",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
"braceleft", "bar", "braceright", "asciitilde", _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
"exclamdown", "cent", "sterling", "fraction", "yen", "florin",
"section", "currency", "quotesingle", "quotedblleft", "guillemotleft",
"guilsinglleft", "guilsinglright", "fi", "fl", _notdef, "endash",
"dagger", "daggerdbl", "periodcentered", _notdef, "paragraph",
"bullet", "quotesinglbase", "quotedblbase", "quotedblright",
"guillemotright", "ellipsis", "perthousand", _notdef, "questiondown",
_notdef, "grave", "acute", "circumflex", "tilde", "macron", "breve",
"dotaccent", "dieresis", _notdef, "ring", "cedilla", _notdef,
"hungarumlaut", "ogonek", "caron", "emdash", _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, "AE", _notdef,
"ordfeminine", _notdef, _notdef, _notdef, _notdef, "Lslash", "Oslash",
"OE", "ordmasculine", _notdef, _notdef, _notdef, _notdef, _notdef,
"ae", _notdef, _notdef, _notdef, "dotlessi", _notdef, _notdef,
"lslash", "oslash", "oe", "germandbls", _notdef, _notdef, _notdef,
_notdef
};
const char *fz_glyph_name_from_mac_roman[256] = {
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
"space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
"ampersand", "quotesingle", "parenleft", "parenright", "asterisk",
"plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
"three", "four", "five", "six", "seven", "eight", "nine", "colon",
"semicolon", "less", "equal", "greater", "question", "at", "A", "B",
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
"backslash", "bracketright", "asciicircum", "underscore", "grave", "a",
"b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft",
"bar", "braceright", "asciitilde", _notdef, "Adieresis", "Aring",
"Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute",
"agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla",
"eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave",
"icircumflex", "idieresis", "ntilde", "oacute", "ograve",
"ocircumflex", "odieresis", "otilde", "uacute", "ugrave",
"ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling",
"section", "bullet", "paragraph", "germandbls", "registered",
"copyright", "trademark", "acute", "dieresis", _notdef, "AE", "Oslash",
_notdef, "plusminus", _notdef, _notdef, "yen", "mu", _notdef, _notdef,
_notdef, _notdef, _notdef, "ordfeminine", "ordmasculine", _notdef,
"ae", "oslash", "questiondown", "exclamdown", "logicalnot", _notdef,
"florin", _notdef, _notdef, "guillemotleft", "guillemotright",
"ellipsis", "space", "Agrave", "Atilde", "Otilde", "OE", "oe",
"endash", "emdash", "quotedblleft", "quotedblright", "quoteleft",
"quoteright", "divide", _notdef, "ydieresis", "Ydieresis", "fraction",
"currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
"periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
"Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave",
"Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute",
"Ocircumflex", _notdef, "Ograve", "Uacute", "Ucircumflex", "Ugrave",
"dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent",
"ring", "cedilla", "hungarumlaut", "ogonek", "caron"
};
const char *fz_glyph_name_from_mac_expert[256] = {
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
"space", "exclamsmall", "Hungarumlautsmall", "centoldstyle",
"dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall",
"parenleftsuperior", "parenrightsuperior", "twodotenleader",
"onedotenleader", "comma", "hyphen", "period", "fraction",
"zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle",
"fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle",
"eightoldstyle", "nineoldstyle", "colon", "semicolon", _notdef,
"threequartersemdash", _notdef, "questionsmall", _notdef, _notdef,
_notdef, _notdef, "Ethsmall", _notdef, _notdef, "onequarter",
"onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths",
"seveneighths", "onethird", "twothirds", _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, "ff", "fi", "fl", "ffi", "ffl",
"parenleftinferior", _notdef, "parenrightinferior", "Circumflexsmall",
"hypheninferior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall",
"Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
"Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall",
"Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall",
"Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall",
_notdef, _notdef, "asuperior", "centsuperior", _notdef, _notdef,
_notdef, _notdef, "Aacutesmall", "Agravesmall", "Acircumflexsmall",
"Adieresissmall", "Atildesmall", "Aringsmall", "Ccedillasmall",
"Eacutesmall", "Egravesmall", "Ecircumflexsmall", "Edieresissmall",
"Iacutesmall", "Igravesmall", "Icircumflexsmall", "Idieresissmall",
"Ntildesmall", "Oacutesmall", "Ogravesmall", "Ocircumflexsmall",
"Odieresissmall", "Otildesmall", "Uacutesmall", "Ugravesmall",
"Ucircumflexsmall", "Udieresissmall", _notdef, "eightsuperior",
"fourinferior", "threeinferior", "sixinferior", "eightinferior",
"seveninferior", "Scaronsmall", _notdef, "centinferior", "twoinferior",
_notdef, "Dieresissmall", _notdef, "Caronsmall", "osuperior",
"fiveinferior", _notdef, "commainferior", "periodinferior",
"Yacutesmall", _notdef, "dollarinferior", _notdef, _notdef,
"Thornsmall", _notdef, "nineinferior", "zeroinferior", "Zcaronsmall",
"AEsmall", "Oslashsmall", "questiondownsmall", "oneinferior",
"Lslashsmall", _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
"Cedillasmall", _notdef, _notdef, _notdef, _notdef, _notdef, "OEsmall",
"figuredash", "hyphensuperior", _notdef, _notdef, _notdef, _notdef,
"exclamdownsmall", _notdef, "Ydieresissmall", _notdef, "onesuperior",
"twosuperior", "threesuperior", "foursuperior", "fivesuperior",
"sixsuperior", "sevensuperior", "ninesuperior", "zerosuperior",
_notdef, "esuperior", "rsuperior", "tsuperior", _notdef, _notdef,
"isuperior", "ssuperior", "dsuperior", _notdef, _notdef, _notdef,
_notdef, _notdef, "lsuperior", "Ogoneksmall", "Brevesmall",
"Macronsmall", "bsuperior", "nsuperior", "msuperior", "commasuperior",
"periodsuperior", "Dotaccentsmall", "Ringsmall", _notdef, _notdef,
_notdef, _notdef
};
/* All unused codes > 32 map to 'bullet' */
const char *fz_glyph_name_from_win_ansi[256] = {
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
"space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
"ampersand", "quotesingle", "parenleft", "parenright", "asterisk",
"plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
"three", "four", "five", "six", "seven", "eight", "nine", "colon",
"semicolon", "less", "equal", "greater", "question", "at", "A", "B",
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
"backslash", "bracketright", "asciicircum", "underscore", "grave", "a",
"b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft",
"bar", "braceright", "asciitilde", "bullet", "Euro", "bullet",
"quotesinglbase", "florin", "quotedblbase", "ellipsis", "dagger",
"daggerdbl", "circumflex", "perthousand", "Scaron", "guilsinglleft",
"OE", "bullet", "Zcaron", "bullet", "bullet", "quoteleft",
"quoteright", "quotedblleft", "quotedblright", "bullet", "endash",
"emdash", "tilde", "trademark", "scaron", "guilsinglright", "oe",
"bullet", "zcaron", "Ydieresis", "space", "exclamdown", "cent",
"sterling", "currency", "yen", "brokenbar", "section", "dieresis",
"copyright", "ordfeminine", "guillemotleft", "logicalnot", "hyphen",
"registered", "macron", "degree", "plusminus", "twosuperior",
"threesuperior", "acute", "mu", "paragraph", "periodcentered",
"cedilla", "onesuperior", "ordmasculine", "guillemotright",
"onequarter", "onehalf", "threequarters", "questiondown", "Agrave",
"Aacute", "Acircumflex", "Atilde", "Adieresis", "Aring", "AE",
"Ccedilla", "Egrave", "Eacute", "Ecircumflex", "Edieresis", "Igrave",
"Iacute", "Icircumflex", "Idieresis", "Eth", "Ntilde", "Ograve",
"Oacute", "Ocircumflex", "Otilde", "Odieresis", "multiply", "Oslash",
"Ugrave", "Uacute", "Ucircumflex", "Udieresis", "Yacute", "Thorn",
"germandbls", "agrave", "aacute", "acircumflex", "atilde", "adieresis",
"aring", "ae", "ccedilla", "egrave", "eacute", "ecircumflex",
"edieresis", "igrave", "iacute", "icircumflex", "idieresis", "eth",
"ntilde", "ograve", "oacute", "ocircumflex", "otilde", "odieresis",
"divide", "oslash", "ugrave", "uacute", "ucircumflex", "udieresis",
"yacute", "thorn", "ydieresis"
};
const unsigned short fz_unicode_from_iso8859_1[256] = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
};
const char *fz_glyph_name_from_iso8859_1[256] = {
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"space",
"exclam",
"quotedbl",
"numbersign",
"dollar",
"percent",
"ampersand",
"quotesingle",
"parenleft",
"parenright",
"asterisk",
"plus",
"comma",
"hyphen",
"period",
"slash",
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"colon",
"semicolon",
"less",
"equal",
"greater",
"question",
"at",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"bracketleft",
"backslash",
"bracketright",
"asciicircum",
"underscore",
"grave",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"braceleft",
"bar",
"braceright",
"asciitilde",
"controlDEL",
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"nbspace",
"exclamdown",
"cent",
"sterling",
"currency",
"yen",
"brokenbar",
"section",
"dieresis",
"copyright",
"ordfeminine",
"guillemotleft",
"logicalnot",
"sfthyphen",
"registered",
"macron",
"degree",
"plusminus",
"twosuperior",
"threesuperior",
"acute",
"mu",
"paragraph",
"periodcentered",
"cedilla",
"onesuperior",
"ordmasculine",
"guillemotright",
"onequarter",
"onehalf",
"threequarters",
"questiondown",
"Agrave",
"Aacute",
"Acircumflex",
"Atilde",
"Adieresis",
"Aring",
"AE",
"Ccedilla",
"Egrave",
"Eacute",
"Ecircumflex",
"Edieresis",
"Igrave",
"Iacute",
"Icircumflex",
"Idieresis",
"Eth",
"Ntilde",
"Ograve",
"Oacute",
"Ocircumflex",
"Otilde",
"Odieresis",
"multiply",
"Oslash",
"Ugrave",
"Uacute",
"Ucircumflex",
"Udieresis",
"Yacute",
"Thorn",
"germandbls",
"agrave",
"aacute",
"acircumflex",
"atilde",
"adieresis",
"aring",
"ae",
"ccedilla",
"egrave",
"eacute",
"ecircumflex",
"edieresis",
"igrave",
"iacute",
"icircumflex",
"idieresis",
"eth",
"ntilde",
"ograve",
"oacute",
"ocircumflex",
"otilde",
"odieresis",
"divide",
"oslash",
"ugrave",
"uacute",
"ucircumflex",
"udieresis",
"yacute",
"thorn",
"ydieresis",
};
static const struct { unsigned short u, c; } iso8859_1_from_unicode[] = {
{0x00a0,160},
{0x00a1,161},
{0x00a2,162},
{0x00a3,163},
{0x00a4,164},
{0x00a5,165},
{0x00a6,166},
{0x00a7,167},
{0x00a8,168},
{0x00a9,169},
{0x00aa,170},
{0x00ab,171},
{0x00ac,172},
{0x00ad,173},
{0x00ae,174},
{0x00af,175},
{0x00b0,176},
{0x00b1,177},
{0x00b2,178},
{0x00b3,179},
{0x00b4,180},
{0x00b5,181},
{0x00b6,182},
{0x00b7,183},
{0x00b8,184},
{0x00b9,185},
{0x00ba,186},
{0x00bb,187},
{0x00bc,188},
{0x00bd,189},
{0x00be,190},
{0x00bf,191},
{0x00c0,192},
{0x00c1,193},
{0x00c2,194},
{0x00c3,195},
{0x00c4,196},
{0x00c5,197},
{0x00c6,198},
{0x00c7,199},
{0x00c8,200},
{0x00c9,201},
{0x00ca,202},
{0x00cb,203},
{0x00cc,204},
{0x00cd,205},
{0x00ce,206},
{0x00cf,207},
{0x00d0,208},
{0x00d1,209},
{0x00d2,210},
{0x00d3,211},
{0x00d4,212},
{0x00d5,213},
{0x00d6,214},
{0x00d7,215},
{0x00d8,216},
{0x00d9,217},
{0x00da,218},
{0x00db,219},
{0x00dc,220},
{0x00dd,221},
{0x00de,222},
{0x00df,223},
{0x00e0,224},
{0x00e1,225},
{0x00e2,226},
{0x00e3,227},
{0x00e4,228},
{0x00e5,229},
{0x00e6,230},
{0x00e7,231},
{0x00e8,232},
{0x00e9,233},
{0x00ea,234},
{0x00eb,235},
{0x00ec,236},
{0x00ed,237},
{0x00ee,238},
{0x00ef,239},
{0x00f0,240},
{0x00f1,241},
{0x00f2,242},
{0x00f3,243},
{0x00f4,244},
{0x00f5,245},
{0x00f6,246},
{0x00f7,247},
{0x00f8,248},
{0x00f9,249},
{0x00fa,250},
{0x00fb,251},
{0x00fc,252},
{0x00fd,253},
{0x00fe,254},
{0x00ff,255},
};
const unsigned short fz_unicode_from_iso8859_7[256] = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
8216,
8217,
163,
8364,
8367,
166,
167,
168,
169,
890,
171,
172,
173,
0,
8213,
176,
177,
178,
179,
900,
901,
902,
183,
904,
905,
906,
187,
908,
189,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
0,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
0,
};
const char *fz_glyph_name_from_iso8859_7[256] = {
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"space",
"exclam",
"quotedbl",
"numbersign",
"dollar",
"percent",
"ampersand",
"quotesingle",
"parenleft",
"parenright",
"asterisk",
"plus",
"comma",
"hyphen",
"period",
"slash",
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"colon",
"semicolon",
"less",
"equal",
"greater",
"question",
"at",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"bracketleft",
"backslash",
"bracketright",
"asciicircum",
"underscore",
"grave",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"braceleft",
"bar",
"braceright",
"asciitilde",
"controlDEL",
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"nbspace",
"quoteleft",
"quoteright",
"sterling",
"Euro",
_notdef,
"brokenbar",
"section",
"dieresis",
"copyright",
"ypogegrammeni",
"guillemotleft",
"logicalnot",
"sfthyphen",
_notdef,
"afii00208",
"degree",
"plusminus",
"twosuperior",
"threesuperior",
"tonos",
"dialytikatonos",
"Alphatonos",
"periodcentered",
"Epsilontonos",
"Etatonos",
"Iotatonos",
"guillemotright",
"Omicrontonos",
"onehalf",
"Upsilontonos",
"Omegatonos",
"iotadieresistonos",
"Alpha",
"Beta",
"Gamma",
"Deltagreek",
"Epsilon",
"Zeta",
"Eta",
"Theta",
"Iota",
"Kappa",
"Lambda",
"Mu",
"Nu",
"Xi",
"Omicron",
"Pi",
"Rho",
_notdef,
"Sigma",
"Tau",
"Upsilon",
"Phi",
"Chi",
"Psi",
"Omegagreek",
"Iotadieresis",
"Upsilondieresis",
"alphatonos",
"epsilontonos",
"etatonos",
"iotatonos",
"upsilondieresistonos",
"alpha",
"beta",
"gamma",
"delta",
"epsilon",
"zeta",
"eta",
"theta",
"iota",
"kappa",
"lambda",
"mugreek",
"nu",
"xi",
"omicron",
"pi",
"rho",
"sigma1",
"sigma",
"tau",
"upsilon",
"phi",
"chi",
"psi",
"omega",
"iotadieresis",
"upsilondieresis",
"omicrontonos",
"upsilontonos",
"omegatonos",
_notdef,
};
static const struct { unsigned short u, c; } iso8859_7_from_unicode[] = {
{0x00a0,160},
{0x00a3,163},
{0x00a6,166},
{0x00a7,167},
{0x00a8,168},
{0x00a9,169},
{0x00ab,171},
{0x00ac,172},
{0x00ad,173},
{0x00b0,176},
{0x00b1,177},
{0x00b2,178},
{0x00b3,179},
{0x00b7,183},
{0x00bb,187},
{0x00bd,189},
{0x037a,170},
{0x0384,180},
{0x0385,181},
{0x0386,182},
{0x0388,184},
{0x0389,185},
{0x038a,186},
{0x038c,188},
{0x038e,190},
{0x038f,191},
{0x0390,192},
{0x0391,193},
{0x0392,194},
{0x0393,195},
{0x0394,196},
{0x0395,197},
{0x0396,198},
{0x0397,199},
{0x0398,200},
{0x0399,201},
{0x039a,202},
{0x039b,203},
{0x039c,204},
{0x039d,205},
{0x039e,206},
{0x039f,207},
{0x03a0,208},
{0x03a1,209},
{0x03a3,211},
{0x03a4,212},
{0x03a5,213},
{0x03a6,214},
{0x03a7,215},
{0x03a8,216},
{0x03a9,217},
{0x03aa,218},
{0x03ab,219},
{0x03ac,220},
{0x03ad,221},
{0x03ae,222},
{0x03af,223},
{0x03b0,224},
{0x03b1,225},
{0x03b2,226},
{0x03b3,227},
{0x03b4,228},
{0x03b5,229},
{0x03b6,230},
{0x03b7,231},
{0x03b8,232},
{0x03b9,233},
{0x03ba,234},
{0x03bb,235},
{0x03bc,236},
{0x03bd,237},
{0x03be,238},
{0x03bf,239},
{0x03c0,240},
{0x03c1,241},
{0x03c2,242},
{0x03c3,243},
{0x03c4,244},
{0x03c5,245},
{0x03c6,246},
{0x03c7,247},
{0x03c8,248},
{0x03c9,249},
{0x03ca,250},
{0x03cb,251},
{0x03cc,252},
{0x03cd,253},
{0x03ce,254},
{0x2015,175},
{0x2018,161},
{0x2019,162},
{0x20ac,164},
};
const unsigned short fz_unicode_from_koi8u[256] = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
9472,
9474,
9484,
9488,
9492,
9496,
9500,
9508,
9516,
9524,
9532,
9600,
9604,
9608,
9612,
9616,
9617,
9618,
9619,
8992,
9632,
8729,
8730,
8776,
8804,
8805,
160,
8993,
176,
178,
183,
247,
9552,
9553,
9554,
1105,
1108,
9556,
1110,
1111,
9559,
9560,
9561,
9562,
9563,
1169,
9565,
9566,
9567,
9568,
9569,
1025,
1028,
9571,
1030,
1031,
9574,
9575,
9576,
9577,
9578,
1168,
9580,
169,
1102,
1072,
1073,
1094,
1076,
1077,
1092,
1075,
1093,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1103,
1088,
1089,
1090,
1091,
1078,
1074,
1100,
1099,
1079,
1096,
1101,
1097,
1095,
1098,
1070,
1040,
1041,
1062,
1044,
1045,
1060,
1043,
1061,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1071,
1056,
1057,
1058,
1059,
1046,
1042,
1068,
1067,
1047,
1064,
1069,
1065,
1063,
1066,
};
const char *fz_glyph_name_from_koi8u[256] = {
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"space",
"exclam",
"quotedbl",
"numbersign",
"dollar",
"percent",
"ampersand",
"quotesingle",
"parenleft",
"parenright",
"asterisk",
"plus",
"comma",
"hyphen",
"period",
"slash",
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"colon",
"semicolon",
"less",
"equal",
"greater",
"question",
"at",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"bracketleft",
"backslash",
"bracketright",
"asciicircum",
"underscore",
"grave",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"braceleft",
"bar",
"braceright",
"asciitilde",
"controlDEL",
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"upblock",
"dnblock",
"block",
"lfblock",
"rtblock",
"ltshade",
"shade",
"dkshade",
"integraltop",
"blacksquare",
"bulletoperator",
"radical",
"approxequal",
"lessequal",
"greaterequal",
"nbspace",
"integralbottom",
"degree",
"twosuperior",
"periodcentered",
"divide",
_notdef,
_notdef,
_notdef,
"afii10071",
"afii10101",
_notdef,
"afii10103",
"afii10104",
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"afii10098",
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"Iocyrillic",
"Ecyrillic",
_notdef,
"Icyrillic",
"Yicyrillic",
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"Gheupturncyrillic",
_notdef,
"copyright",
"afii10096",
"acyrillic",
"afii10066",
"afii10088",
"afii10069",
"afii10070",
"afii10086",
"afii10068",
"afii10087",
"afii10074",
"afii10075",
"afii10076",
"afii10077",
"afii10078",
"afii10079",
"afii10080",
"afii10081",
"afii10097",
"afii10082",
"afii10083",
"afii10084",
"afii10085",
"afii10072",
"afii10067",
"afii10094",
"afii10093",
"afii10073",
"afii10090",
"afii10095",
"afii10091",
"afii10089",
"afii10092",
"IUcyrillic",
"Acyrillic",
"Becyrillic",
"Tsecyrillic",
"Decyrillic",
"Iecyrillic",
"Efcyrillic",
"Gecyrillic",
"Khacyrillic",
"Iicyrillic",
"Iishortcyrillic",
"Kacyrillic",
"Elcyrillic",
"Emcyrillic",
"Encyrillic",
"Ocyrillic",
"Pecyrillic",
"IAcyrillic",
"Ercyrillic",
"Escyrillic",
"Tecyrillic",
"Ucyrillic",
"Zhecyrillic",
"Vecyrillic",
"Softsigncyrillic",
"Yericyrillic",
"Zecyrillic",
"Shacyrillic",
"Ereversedcyrillic",
"Shchacyrillic",
"Checyrillic",
"Hardsigncyrillic",
};
static const struct { unsigned short u, c; } koi8u_from_unicode[] = {
{0x00a0,154},
{0x00a9,191},
{0x00b0,156},
{0x00b2,157},
{0x00b7,158},
{0x00f7,159},
{0x0401,179},
{0x0404,180},
{0x0406,182},
{0x0407,183},
{0x0410,225},
{0x0411,226},
{0x0412,247},
{0x0413,231},
{0x0414,228},
{0x0415,229},
{0x0416,246},
{0x0417,250},
{0x0418,233},
{0x0419,234},
{0x041a,235},
{0x041b,236},
{0x041c,237},
{0x041d,238},
{0x041e,239},
{0x041f,240},
{0x0420,242},
{0x0421,243},
{0x0422,244},
{0x0423,245},
{0x0424,230},
{0x0425,232},
{0x0426,227},
{0x0427,254},
{0x0428,251},
{0x0429,253},
{0x042a,255},
{0x042b,249},
{0x042c,248},
{0x042d,252},
{0x042e,224},
{0x042f,241},
{0x0430,193},
{0x0431,194},
{0x0432,215},
{0x0433,199},
{0x0434,196},
{0x0435,197},
{0x0436,214},
{0x0437,218},
{0x0438,201},
{0x0439,202},
{0x043a,203},
{0x043b,204},
{0x043c,205},
{0x043d,206},
{0x043e,207},
{0x043f,208},
{0x0440,210},
{0x0441,211},
{0x0442,212},
{0x0443,213},
{0x0444,198},
{0x0445,200},
{0x0446,195},
{0x0447,222},
{0x0448,219},
{0x0449,221},
{0x044a,223},
{0x044b,217},
{0x044c,216},
{0x044d,220},
{0x044e,192},
{0x044f,209},
{0x0451,163},
{0x0454,164},
{0x0456,166},
{0x0457,167},
{0x0490,189},
{0x0491,173},
{0x2219,149},
{0x221a,150},
{0x2248,151},
{0x2264,152},
{0x2265,153},
{0x2320,147},
{0x2321,155},
{0x2580,139},
{0x2584,140},
{0x2588,141},
{0x258c,142},
{0x2590,143},
{0x2591,144},
{0x2592,145},
{0x2593,146},
{0x25a0,148},
};
const unsigned short fz_unicode_from_windows_1250[256] = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
8364,
0,
8218,
0,
8222,
8230,
8224,
8225,
0,
8240,
352,
8249,
346,
356,
381,
377,
0,
8216,
8217,
8220,
8221,
8226,
8211,
8212,
0,
8482,
353,
8250,
347,
357,
382,
378,
160,
711,
728,
321,
164,
260,
166,
167,
168,
169,
350,
171,
172,
173,
174,
379,
176,
177,
731,
322,
180,
181,
182,
183,
184,
261,
351,
187,
317,
733,
318,
380,
340,
193,
194,
258,
196,
313,
262,
199,
268,
201,
280,
203,
282,
205,
206,
270,
272,
323,
327,
211,
212,
336,
214,
215,
344,
366,
218,
368,
220,
221,
354,
223,
341,
225,
226,
259,
228,
314,
263,
231,
269,
233,
281,
235,
283,
237,
238,
271,
273,
324,
328,
243,
244,
337,
246,
247,
345,
367,
250,
369,
252,
253,
355,
729,
};
const char *fz_glyph_name_from_windows_1250[256] = {
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"space",
"exclam",
"quotedbl",
"numbersign",
"dollar",
"percent",
"ampersand",
"quotesingle",
"parenleft",
"parenright",
"asterisk",
"plus",
"comma",
"hyphen",
"period",
"slash",
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"colon",
"semicolon",
"less",
"equal",
"greater",
"question",
"at",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"bracketleft",
"backslash",
"bracketright",
"asciicircum",
"underscore",
"grave",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"braceleft",
"bar",
"braceright",
"asciitilde",
"controlDEL",
"Euro",
_notdef,
"quotesinglbase",
_notdef,
"quotedblbase",
"ellipsis",
"dagger",
"daggerdbl",
_notdef,
"perthousand",
"Scaron",
"guilsinglleft",
"Sacute",
"Tcaron",
"Zcaron",
"Zacute",
_notdef,
"quoteleft",
"quoteright",
"quotedblleft",
"quotedblright",
"bullet",
"endash",
"emdash",
_notdef,
"trademark",
"scaron",
"guilsinglright",
"sacute",
"tcaron",
"zcaron",
"zacute",
"nbspace",
"caron",
"breve",
"Lslash",
"currency",
"Aogonek",
"brokenbar",
"section",
"dieresis",
"copyright",
"Scedilla",
"guillemotleft",
"logicalnot",
"sfthyphen",
"registered",
"Zdot",
"degree",
"plusminus",
"ogonek",
"lslash",
"acute",
"mu",
"paragraph",
"periodcentered",
"cedilla",
"aogonek",
"scedilla",
"guillemotright",
"Lcaron",
"hungarumlaut",
"lcaron",
"zdot",
"Racute",
"Aacute",
"Acircumflex",
"Abreve",
"Adieresis",
"Lacute",
"Cacute",
"Ccedilla",
"Ccaron",
"Eacute",
"Eogonek",
"Edieresis",
"Ecaron",
"Iacute",
"Icircumflex",
"Dcaron",
"Dcroat",
"Nacute",
"Ncaron",
"Oacute",
"Ocircumflex",
"Odblacute",
"Odieresis",
"multiply",
"Rcaron",
"Uring",
"Uacute",
"Udblacute",
"Udieresis",
"Yacute",
"Tcedilla",
"germandbls",
"racute",
"aacute",
"acircumflex",
"abreve",
"adieresis",
"lacute",
"cacute",
"ccedilla",
"ccaron",
"eacute",
"eogonek",
"edieresis",
"ecaron",
"iacute",
"icircumflex",
"dcaron",
"dcroat",
"nacute",
"ncaron",
"oacute",
"ocircumflex",
"odblacute",
"odieresis",
"divide",
"rcaron",
"uring",
"uacute",
"udblacute",
"udieresis",
"yacute",
"tcedilla",
"dotaccent",
};
static const struct { unsigned short u, c; } windows_1250_from_unicode[] = {
{0x00a0,160},
{0x00a4,164},
{0x00a6,166},
{0x00a7,167},
{0x00a8,168},
{0x00a9,169},
{0x00ab,171},
{0x00ac,172},
{0x00ad,173},
{0x00ae,174},
{0x00b0,176},
{0x00b1,177},
{0x00b4,180},
{0x00b5,181},
{0x00b6,182},
{0x00b7,183},
{0x00b8,184},
{0x00bb,187},
{0x00c1,193},
{0x00c2,194},
{0x00c4,196},
{0x00c7,199},
{0x00c9,201},
{0x00cb,203},
{0x00cd,205},
{0x00ce,206},
{0x00d3,211},
{0x00d4,212},
{0x00d6,214},
{0x00d7,215},
{0x00da,218},
{0x00dc,220},
{0x00dd,221},
{0x00df,223},
{0x00e1,225},
{0x00e2,226},
{0x00e4,228},
{0x00e7,231},
{0x00e9,233},
{0x00eb,235},
{0x00ed,237},
{0x00ee,238},
{0x00f3,243},
{0x00f4,244},
{0x00f6,246},
{0x00f7,247},
{0x00fa,250},
{0x00fc,252},
{0x00fd,253},
{0x0102,195},
{0x0103,227},
{0x0104,165},
{0x0105,185},
{0x0106,198},
{0x0107,230},
{0x010c,200},
{0x010d,232},
{0x010e,207},
{0x010f,239},
{0x0110,208},
{0x0111,240},
{0x0118,202},
{0x0119,234},
{0x011a,204},
{0x011b,236},
{0x0139,197},
{0x013a,229},
{0x013d,188},
{0x013e,190},
{0x0141,163},
{0x0142,179},
{0x0143,209},
{0x0144,241},
{0x0147,210},
{0x0148,242},
{0x0150,213},
{0x0151,245},
{0x0154,192},
{0x0155,224},
{0x0158,216},
{0x0159,248},
{0x015a,140},
{0x015b,156},
{0x015e,170},
{0x015f,186},
{0x0160,138},
{0x0161,154},
{0x0162,222},
{0x0163,254},
{0x0164,141},
{0x0165,157},
{0x016e,217},
{0x016f,249},
{0x0170,219},
{0x0171,251},
{0x0179,143},
{0x017a,159},
{0x017b,175},
{0x017c,191},
{0x017d,142},
{0x017e,158},
{0x02c7,161},
{0x02d8,162},
{0x02d9,255},
{0x02db,178},
{0x02dd,189},
{0x2013,150},
{0x2014,151},
{0x2018,145},
{0x2019,146},
{0x201a,130},
{0x201c,147},
{0x201d,148},
{0x201e,132},
{0x2020,134},
{0x2021,135},
{0x2022,149},
{0x2026,133},
{0x2030,137},
{0x2039,139},
{0x203a,155},
{0x20ac,128},
{0x2122,153},
};
const unsigned short fz_unicode_from_windows_1251[256] = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
1026,
1027,
8218,
1107,
8222,
8230,
8224,
8225,
8364,
8240,
1033,
8249,
1034,
1036,
1035,
1039,
1106,
8216,
8217,
8220,
8221,
8226,
8211,
8212,
0,
8482,
1113,
8250,
1114,
1116,
1115,
1119,
160,
1038,
1118,
1032,
164,
1168,
166,
167,
1025,
169,
1028,
171,
172,
173,
174,
1031,
176,
177,
1030,
1110,
1169,
181,
182,
183,
1105,
8470,
1108,
187,
1112,
1029,
1109,
1111,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
};
const char *fz_glyph_name_from_windows_1251[256] = {
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"space",
"exclam",
"quotedbl",
"numbersign",
"dollar",
"percent",
"ampersand",
"quotesingle",
"parenleft",
"parenright",
"asterisk",
"plus",
"comma",
"hyphen",
"period",
"slash",
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"colon",
"semicolon",
"less",
"equal",
"greater",
"question",
"at",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"bracketleft",
"backslash",
"bracketright",
"asciicircum",
"underscore",
"grave",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"braceleft",
"bar",
"braceright",
"asciitilde",
"controlDEL",
"Djecyrillic",
"Gjecyrillic",
"quotesinglbase",
"afii10100",
"quotedblbase",
"ellipsis",
"dagger",
"daggerdbl",
"Euro",
"perthousand",
"Ljecyrillic",
"guilsinglleft",
"Njecyrillic",
"Kjecyrillic",
"Tshecyrillic",
"Dzhecyrillic",
"afii10099",
"quoteleft",
"quoteright",
"quotedblleft",
"quotedblright",
"bullet",
"endash",
"emdash",
_notdef,
"trademark",
"afii10106",
"guilsinglright",
"afii10107",
"afii10109",
"afii10108",
"afii10193",
"nbspace",
"Ushortcyrillic",
"afii10110",
"Jecyrillic",
"currency",
"Gheupturncyrillic",
"brokenbar",
"section",
"Iocyrillic",
"copyright",
"Ecyrillic",
"guillemotleft",
"logicalnot",
"sfthyphen",
"registered",
"Yicyrillic",
"degree",
"plusminus",
"Icyrillic",
"afii10103",
"afii10098",
"mu",
"paragraph",
"periodcentered",
"afii10071",
"afii61352",
"afii10101",
"guillemotright",
"afii10105",
"Dzecyrillic",
"afii10102",
"afii10104",
"Acyrillic",
"Becyrillic",
"Vecyrillic",
"Gecyrillic",
"Decyrillic",
"Iecyrillic",
"Zhecyrillic",
"Zecyrillic",
"Iicyrillic",
"Iishortcyrillic",
"Kacyrillic",
"Elcyrillic",
"Emcyrillic",
"Encyrillic",
"Ocyrillic",
"Pecyrillic",
"Ercyrillic",
"Escyrillic",
"Tecyrillic",
"Ucyrillic",
"Efcyrillic",
"Khacyrillic",
"Tsecyrillic",
"Checyrillic",
"Shacyrillic",
"Shchacyrillic",
"Hardsigncyrillic",
"Yericyrillic",
"Softsigncyrillic",
"Ereversedcyrillic",
"IUcyrillic",
"IAcyrillic",
"acyrillic",
"afii10066",
"afii10067",
"afii10068",
"afii10069",
"afii10070",
"afii10072",
"afii10073",
"afii10074",
"afii10075",
"afii10076",
"afii10077",
"afii10078",
"afii10079",
"afii10080",
"afii10081",
"afii10082",
"afii10083",
"afii10084",
"afii10085",
"afii10086",
"afii10087",
"afii10088",
"afii10089",
"afii10090",
"afii10091",
"afii10092",
"afii10093",
"afii10094",
"afii10095",
"afii10096",
"afii10097",
};
static const struct { unsigned short u, c; } windows_1251_from_unicode[] = {
{0x00a0,160},
{0x00a4,164},
{0x00a6,166},
{0x00a7,167},
{0x00a9,169},
{0x00ab,171},
{0x00ac,172},
{0x00ad,173},
{0x00ae,174},
{0x00b0,176},
{0x00b1,177},
{0x00b5,181},
{0x00b6,182},
{0x00b7,183},
{0x00bb,187},
{0x0401,168},
{0x0402,128},
{0x0403,129},
{0x0404,170},
{0x0405,189},
{0x0406,178},
{0x0407,175},
{0x0408,163},
{0x0409,138},
{0x040a,140},
{0x040b,142},
{0x040c,141},
{0x040e,161},
{0x040f,143},
{0x0410,192},
{0x0411,193},
{0x0412,194},
{0x0413,195},
{0x0414,196},
{0x0415,197},
{0x0416,198},
{0x0417,199},
{0x0418,200},
{0x0419,201},
{0x041a,202},
{0x041b,203},
{0x041c,204},
{0x041d,205},
{0x041e,206},
{0x041f,207},
{0x0420,208},
{0x0421,209},
{0x0422,210},
{0x0423,211},
{0x0424,212},
{0x0425,213},
{0x0426,214},
{0x0427,215},
{0x0428,216},
{0x0429,217},
{0x042a,218},
{0x042b,219},
{0x042c,220},
{0x042d,221},
{0x042e,222},
{0x042f,223},
{0x0430,224},
{0x0431,225},
{0x0432,226},
{0x0433,227},
{0x0434,228},
{0x0435,229},
{0x0436,230},
{0x0437,231},
{0x0438,232},
{0x0439,233},
{0x043a,234},
{0x043b,235},
{0x043c,236},
{0x043d,237},
{0x043e,238},
{0x043f,239},
{0x0440,240},
{0x0441,241},
{0x0442,242},
{0x0443,243},
{0x0444,244},
{0x0445,245},
{0x0446,246},
{0x0447,247},
{0x0448,248},
{0x0449,249},
{0x044a,250},
{0x044b,251},
{0x044c,252},
{0x044d,253},
{0x044e,254},
{0x044f,255},
{0x0451,184},
{0x0452,144},
{0x0453,131},
{0x0454,186},
{0x0455,190},
{0x0456,179},
{0x0457,191},
{0x0458,188},
{0x0459,154},
{0x045a,156},
{0x045b,158},
{0x045c,157},
{0x045e,162},
{0x045f,159},
{0x0490,165},
{0x0491,180},
{0x2013,150},
{0x2014,151},
{0x2018,145},
{0x2019,146},
{0x201a,130},
{0x201c,147},
{0x201d,148},
{0x201e,132},
{0x2020,134},
{0x2021,135},
{0x2022,149},
{0x2026,133},
{0x2030,137},
{0x2039,139},
{0x203a,155},
{0x20ac,136},
{0x2116,185},
{0x2122,153},
};
const unsigned short fz_unicode_from_windows_1252[256] = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
8364,
0,
8218,
402,
8222,
8230,
8224,
8225,
710,
8240,
352,
8249,
338,
0,
381,
0,
0,
8216,
8217,
8220,
8221,
8226,
8211,
8212,
732,
8482,
353,
8250,
339,
0,
382,
376,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
};
const char *fz_glyph_name_from_windows_1252[256] = {
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
_notdef,
"space",
"exclam",
"quotedbl",
"numbersign",
"dollar",
"percent",
"ampersand",
"quotesingle",
"parenleft",
"parenright",
"asterisk",
"plus",
"comma",
"hyphen",
"period",
"slash",
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"colon",
"semicolon",
"less",
"equal",
"greater",
"question",
"at",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"bracketleft",
"backslash",
"bracketright",
"asciicircum",
"underscore",
"grave",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"braceleft",
"bar",
"braceright",
"asciitilde",
"controlDEL",
"Euro",
_notdef,
"quotesinglbase",
"florin",
"quotedblbase",
"ellipsis",
"dagger",
"daggerdbl",
"circumflex",
"perthousand",
"Scaron",
"guilsinglleft",
"OE",
_notdef,
"Zcaron",
_notdef,
_notdef,
"quoteleft",
"quoteright",
"quotedblleft",
"quotedblright",
"bullet",
"endash",
"emdash",
"tilde",
"trademark",
"scaron",
"guilsinglright",
"oe",
_notdef,
"zcaron",
"Ydieresis",
"nbspace",
"exclamdown",
"cent",
"sterling",
"currency",
"yen",
"brokenbar",
"section",
"dieresis",
"copyright",
"ordfeminine",
"guillemotleft",
"logicalnot",
"sfthyphen",
"registered",
"macron",
"degree",
"plusminus",
"twosuperior",
"threesuperior",
"acute",
"mu",
"paragraph",
"periodcentered",
"cedilla",
"onesuperior",
"ordmasculine",
"guillemotright",
"onequarter",
"onehalf",
"threequarters",
"questiondown",
"Agrave",
"Aacute",
"Acircumflex",
"Atilde",
"Adieresis",
"Aring",
"AE",
"Ccedilla",
"Egrave",
"Eacute",
"Ecircumflex",
"Edieresis",
"Igrave",
"Iacute",
"Icircumflex",
"Idieresis",
"Eth",
"Ntilde",
"Ograve",
"Oacute",
"Ocircumflex",
"Otilde",
"Odieresis",
"multiply",
"Oslash",
"Ugrave",
"Uacute",
"Ucircumflex",
"Udieresis",
"Yacute",
"Thorn",
"germandbls",
"agrave",
"aacute",
"acircumflex",
"atilde",
"adieresis",
"aring",
"ae",
"ccedilla",
"egrave",
"eacute",
"ecircumflex",
"edieresis",
"igrave",
"iacute",
"icircumflex",
"idieresis",
"eth",
"ntilde",
"ograve",
"oacute",
"ocircumflex",
"otilde",
"odieresis",
"divide",
"oslash",
"ugrave",
"uacute",
"ucircumflex",
"udieresis",
"yacute",
"thorn",
"ydieresis",
};
static const struct { unsigned short u, c; } windows_1252_from_unicode[] = {
{0x00a0,160},
{0x00a1,161},
{0x00a2,162},
{0x00a3,163},
{0x00a4,164},
{0x00a5,165},
{0x00a6,166},
{0x00a7,167},
{0x00a8,168},
{0x00a9,169},
{0x00aa,170},
{0x00ab,171},
{0x00ac,172},
{0x00ad,173},
{0x00ae,174},
{0x00af,175},
{0x00b0,176},
{0x00b1,177},
{0x00b2,178},
{0x00b3,179},
{0x00b4,180},
{0x00b5,181},
{0x00b6,182},
{0x00b7,183},
{0x00b8,184},
{0x00b9,185},
{0x00ba,186},
{0x00bb,187},
{0x00bc,188},
{0x00bd,189},
{0x00be,190},
{0x00bf,191},
{0x00c0,192},
{0x00c1,193},
{0x00c2,194},
{0x00c3,195},
{0x00c4,196},
{0x00c5,197},
{0x00c6,198},
{0x00c7,199},
{0x00c8,200},
{0x00c9,201},
{0x00ca,202},
{0x00cb,203},
{0x00cc,204},
{0x00cd,205},
{0x00ce,206},
{0x00cf,207},
{0x00d0,208},
{0x00d1,209},
{0x00d2,210},
{0x00d3,211},
{0x00d4,212},
{0x00d5,213},
{0x00d6,214},
{0x00d7,215},
{0x00d8,216},
{0x00d9,217},
{0x00da,218},
{0x00db,219},
{0x00dc,220},
{0x00dd,221},
{0x00de,222},
{0x00df,223},
{0x00e0,224},
{0x00e1,225},
{0x00e2,226},
{0x00e3,227},
{0x00e4,228},
{0x00e5,229},
{0x00e6,230},
{0x00e7,231},
{0x00e8,232},
{0x00e9,233},
{0x00ea,234},
{0x00eb,235},
{0x00ec,236},
{0x00ed,237},
{0x00ee,238},
{0x00ef,239},
{0x00f0,240},
{0x00f1,241},
{0x00f2,242},
{0x00f3,243},
{0x00f4,244},
{0x00f5,245},
{0x00f6,246},
{0x00f7,247},
{0x00f8,248},
{0x00f9,249},
{0x00fa,250},
{0x00fb,251},
{0x00fc,252},
{0x00fd,253},
{0x00fe,254},
{0x00ff,255},
{0x0152,140},
{0x0153,156},
{0x0160,138},
{0x0161,154},
{0x0178,159},
{0x017d,142},
{0x017e,158},
{0x0192,131},
{0x02c6,136},
{0x02dc,152},
{0x2013,150},
{0x2014,151},
{0x2018,145},
{0x2019,146},
{0x201a,130},
{0x201c,147},
{0x201d,148},
{0x201e,132},
{0x2020,134},
{0x2021,135},
{0x2022,149},
{0x2026,133},
{0x2030,137},
{0x2039,139},
{0x203a,155},
{0x20ac,128},
{0x2122,153},
};