5 # FreeType 2 glyph name builder
9 # Copyright 1996-2000, 2003, 2005, 2007, 2008, 2011 by
10 # David Turner, Robert Wilhelm, and Werner Lemberg.
12 # This file is part of the FreeType project, and may only be used, modified,
13 # and distributed under the terms of the FreeType project license,
14 # LICENSE.TXT. By continuing to use, modify, or distribute this file you
15 # indicate that you have read the license and understand and accept it
21 usage: %s <output-file>
23 This python script generates the glyph names tables defined in the
26 Its single argument is the name of the header file to be created.
30 import sys, string, struct, re, os.path
33 # This table lists the glyphs according to the Macintosh specification.
34 # It is used by the TrueType Postscript names table.
38 # http://fonts.apple.com/TTRefMan/RM06/Chap6post.html
40 # for the official list.
42 mac_standard_names = \
45 ".notdef", ".null", "nonmarkingreturn", "space", "exclam",
46 "quotedbl", "numbersign", "dollar", "percent", "ampersand",
49 "quotesingle", "parenleft", "parenright", "asterisk", "plus",
50 "comma", "hyphen", "period", "slash", "zero",
53 "one", "two", "three", "four", "five",
54 "six", "seven", "eight", "nine", "colon",
57 "semicolon", "less", "equal", "greater", "question",
58 "at", "A", "B", "C", "D",
61 "E", "F", "G", "H", "I",
62 "J", "K", "L", "M", "N",
65 "O", "P", "Q", "R", "S",
66 "T", "U", "V", "W", "X",
69 "Y", "Z", "bracketleft", "backslash", "bracketright",
70 "asciicircum", "underscore", "grave", "a", "b",
73 "c", "d", "e", "f", "g",
74 "h", "i", "j", "k", "l",
77 "m", "n", "o", "p", "q",
78 "r", "s", "t", "u", "v",
81 "w", "x", "y", "z", "braceleft",
82 "bar", "braceright", "asciitilde", "Adieresis", "Aring",
85 "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis",
86 "aacute", "agrave", "acircumflex", "adieresis", "atilde",
89 "aring", "ccedilla", "eacute", "egrave", "ecircumflex",
90 "edieresis", "iacute", "igrave", "icircumflex", "idieresis",
93 "ntilde", "oacute", "ograve", "ocircumflex", "odieresis",
94 "otilde", "uacute", "ugrave", "ucircumflex", "udieresis",
97 "dagger", "degree", "cent", "sterling", "section",
98 "bullet", "paragraph", "germandbls", "registered", "copyright",
101 "trademark", "acute", "dieresis", "notequal", "AE",
102 "Oslash", "infinity", "plusminus", "lessequal", "greaterequal",
105 "yen", "mu", "partialdiff", "summation", "product",
106 "pi", "integral", "ordfeminine", "ordmasculine", "Omega",
109 "ae", "oslash", "questiondown", "exclamdown", "logicalnot",
110 "radical", "florin", "approxequal", "Delta", "guillemotleft",
113 "guillemotright", "ellipsis", "nonbreakingspace", "Agrave", "Atilde",
114 "Otilde", "OE", "oe", "endash", "emdash",
117 "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide",
118 "lozenge", "ydieresis", "Ydieresis", "fraction", "currency",
121 "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
122 "periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
126 "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute",
127 "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex",
130 "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave",
131 "dotlessi", "circumflex", "tilde", "macron", "breve",
134 "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek",
135 "caron", "Lslash", "lslash", "Scaron", "scaron",
138 "Zcaron", "zcaron", "brokenbar", "Eth", "eth",
139 "Yacute", "yacute", "Thorn", "thorn", "minus",
142 "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf",
143 "onequarter", "threequarters", "franc", "Gbreve", "gbreve",
146 "Idotaccent", "Scedilla", "scedilla", "Cacute", "cacute",
147 "Ccaron", "ccaron", "dcroat"
151 # The list of standard `SID' glyph names. For the official list,
152 # see Annex A of document at
154 # http://partners.adobe.com/public/developer/en/font/5176.CFF.pdf .
156 sid_standard_names = \
159 ".notdef", "space", "exclam", "quotedbl", "numbersign",
160 "dollar", "percent", "ampersand", "quoteright", "parenleft",
163 "parenright", "asterisk", "plus", "comma", "hyphen",
164 "period", "slash", "zero", "one", "two",
167 "three", "four", "five", "six", "seven",
168 "eight", "nine", "colon", "semicolon", "less",
171 "equal", "greater", "question", "at", "A",
172 "B", "C", "D", "E", "F",
175 "G", "H", "I", "J", "K",
176 "L", "M", "N", "O", "P",
179 "Q", "R", "S", "T", "U",
180 "V", "W", "X", "Y", "Z",
183 "bracketleft", "backslash", "bracketright", "asciicircum", "underscore",
184 "quoteleft", "a", "b", "c", "d",
187 "e", "f", "g", "h", "i",
188 "j", "k", "l", "m", "n",
191 "o", "p", "q", "r", "s",
192 "t", "u", "v", "w", "x",
195 "y", "z", "braceleft", "bar", "braceright",
196 "asciitilde", "exclamdown", "cent", "sterling", "fraction",
199 "yen", "florin", "section", "currency", "quotesingle",
200 "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi",
203 "fl", "endash", "dagger", "daggerdbl", "periodcentered",
204 "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright",
207 "guillemotright", "ellipsis", "perthousand", "questiondown", "grave",
208 "acute", "circumflex", "tilde", "macron", "breve",
211 "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut",
212 "ogonek", "caron", "emdash", "AE", "ordfeminine",
215 "Lslash", "Oslash", "OE", "ordmasculine", "ae",
216 "dotlessi", "lslash", "oslash", "oe", "germandbls",
219 "onesuperior", "logicalnot", "mu", "trademark", "Eth",
220 "onehalf", "plusminus", "Thorn", "onequarter", "divide",
223 "brokenbar", "degree", "thorn", "threequarters", "twosuperior",
224 "registered", "minus", "eth", "multiply", "threesuperior",
227 "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave",
228 "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex",
231 "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis",
232 "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis",
235 "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex",
236 "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron",
239 "aacute", "acircumflex", "adieresis", "agrave", "aring",
240 "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis",
243 "egrave", "iacute", "icircumflex", "idieresis", "igrave",
244 "ntilde", "oacute", "ocircumflex", "odieresis", "ograve",
247 "otilde", "scaron", "uacute", "ucircumflex", "udieresis",
248 "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall",
251 "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall",
253 "parenleftsuperior", "parenrightsuperior", "twodotenleader",
254 "onedotenleader", "zerooldstyle",
257 "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle",
259 "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle",
263 "threequartersemdash", "periodsuperior", "questionsmall", "asuperior",
265 "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior",
268 "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior",
269 "tsuperior", "ff", "ffi", "ffl", "parenleftinferior",
272 "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall",
274 "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall",
277 "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
278 "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall",
281 "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall",
282 "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall",
285 "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall",
286 "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall",
290 "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash",
291 "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall",
295 "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird",
296 "twothirds", "zerosuperior", "foursuperior", "fivesuperior",
300 "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior",
302 "twoinferior", "threeinferior", "fourinferior", "fiveinferior",
306 "seveninferior", "eightinferior", "nineinferior", "centinferior",
308 "periodinferior", "commainferior", "Agravesmall", "Aacutesmall",
312 "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall",
313 "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall",
317 "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall",
319 "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall",
323 "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall",
325 "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall",
329 "001.001", "001.002", "001.003", "Black", "Bold",
330 "Book", "Light", "Medium", "Regular", "Roman",
337 # This table maps character codes of the Adobe Standard Type 1
338 # encoding to glyph indices in the sid_standard_names table.
340 t1_standard_encoding = \
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
345 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
346 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
348 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
349 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
350 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
351 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
352 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
354 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
355 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
356 89, 90, 91, 92, 93, 94, 95, 0, 0, 0,
357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
361 0, 96, 97, 98, 99, 100, 101, 102, 103, 104,
362 105, 106, 107, 108, 109, 110, 0, 111, 112, 113,
363 114, 0, 115, 116, 117, 118, 119, 120, 121, 122,
364 0, 123, 0, 124, 125, 126, 127, 128, 129, 130,
366 131, 0, 132, 133, 0, 134, 135, 136, 137, 0,
367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368 0, 0, 0, 0, 0, 138, 0, 139, 0, 0,
369 0, 0, 140, 141, 142, 143, 0, 0, 0, 0,
370 0, 144, 0, 0, 0, 145, 0, 0, 146, 147,
376 # This table maps character codes of the Adobe Expert Type 1
377 # encoding to glyph indices in the sid_standard_names table.
379 t1_expert_encoding = \
381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384 0, 0, 1, 229, 230, 0, 231, 232, 233, 234,
385 235, 236, 237, 238, 13, 14, 15, 99, 239, 240,
387 241, 242, 243, 244, 245, 246, 247, 248, 27, 28,
388 249, 250, 251, 252, 0, 253, 254, 255, 256, 257,
389 0, 0, 0, 258, 0, 0, 259, 260, 261, 262,
390 0, 0, 263, 264, 265, 0, 266, 109, 110, 267,
391 268, 269, 0, 270, 271, 272, 273, 274, 275, 276,
393 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
394 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
395 297, 298, 299, 300, 301, 302, 303, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 304, 305, 306, 0, 0, 307, 308, 309, 310,
401 311, 0, 312, 0, 0, 313, 0, 0, 314, 315,
402 0, 0, 316, 317, 318, 0, 0, 0, 158, 155,
403 163, 319, 320, 321, 322, 323, 324, 325, 0, 0,
405 326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
406 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
407 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
408 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
409 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
411 373, 374, 375, 376, 377, 378
415 # This data has been taken literally from the files `glyphlist.txt'
416 # and `zapfdingbats.txt' version 2.0, Sept 2002. It is available from
418 # http://sourceforge.net/adobe/aglfn/
420 adobe_glyph_list = """\
438 Acircumflexacute;1EA4
439 Acircumflexdotbelow;1EAC
440 Acircumflexgrave;1EA6
441 Acircumflexhookabove;1EA8
442 Acircumflexsmall;F7E2
443 Acircumflextilde;1EAA
449 Adieresiscyrillic;04D2
500 Cheabkhasiancyrillic;04BC
502 Chedescenderabkhasiancyrillic;04BE
503 Chedescendercyrillic;04B6
504 Chedieresiscyrillic;04F4
506 Chekhakassiancyrillic;04CB
507 Cheverticalstrokecyrillic;04B8
522 Dcircumflexbelow;1E12
545 Dzeabkhasiancyrillic;04E0
557 Ecircumflexacute;1EBE
558 Ecircumflexbelow;1E18
559 Ecircumflexdotbelow;1EC6
560 Ecircumflexgrave;1EC0
561 Ecircumflexhookabove;1EC2
562 Ecircumflexsmall;F7EA
563 Ecircumflextilde;1EC4
578 Eiotifiedcyrillic;0464
587 Endescendercyrillic;04A2
597 Ereversedcyrillic;042D
599 Esdescendercyrillic;04AA
640 Ghemiddlehookcyrillic;0494
641 Ghestrokecyrillic;0492
642 Gheupturncyrillic;0490
659 Haabkhasiancyrillic;04A8
660 Hadescendercyrillic;04B2
661 Hardsigncyrillic;042A
675 Hungarumlautsmall;F6F8
687 Icircumflexsmall;F7EE
692 Idieresiscyrillic;04E4
721 Izhitsadblgravecyrillic;0476
733 Kabashkircyrillic;04A0
736 Kadescendercyrillic;049A
739 Kastrokecyrillic;049E
740 Kaverticalstrokecyrillic;049C
766 Lcircumflexbelow;1E3C
799 Ncircumflexbelow;1E4A
820 Obarreddieresiscyrillic;04EA
826 Ocircumflexacute;1ED0
827 Ocircumflexdotbelow;1ED8
828 Ocircumflexgrave;1ED2
829 Ocircumflexhookabove;1ED4
830 Ocircumflexsmall;F7F4
831 Ocircumflextilde;1ED6
836 Odieresiscyrillic;04E6
860 Omegaroundcyrillic;047A
861 Omegatitlocyrillic;047C
886 Pemiddlehookcyrillic;04A6
919 Rsmallinvertedsuperior;02B6
970 Schwadieresiscyrillic;04DA
976 Sdotbelowdotaccent;1E68
988 Softsigncyrillic;042C
997 Tcircumflexbelow;1E70
1002 Tedescendercyrillic;04AC
1031 Ucircumflexbelow;1E76
1032 Ucircumflexsmall;F7FB
1040 Udieresiscyrillic;04F0
1042 Udieresismacron;01D5
1055 Uhungarumlautcyrillic;04F2
1059 Umacroncyrillic;04EE
1060 Umacrondieresis;1E7A
1065 Upsilonacutehooksymbolgreek;03D3
1067 Upsilondieresis;03AB
1068 Upsilondieresishooksymbolgreek;03D4
1069 Upsilonhooksymbol;03D2
1074 Ustraightcyrillic;04AE
1075 Ustraightstrokecyrillic;04B0
1118 Yerudieresiscyrillic;04F8
1129 Yusbigiotifiedcyrillic;046C
1130 Yuslittlecyrillic;0466
1131 Yuslittleiotifiedcyrillic;0468
1143 Zedescendercyrillic;0498
1144 Zedieresiscyrillic;04DE
1147 Zhebrevecyrillic;04C1
1149 Zhedescendercyrillic;0496
1150 Zhedieresiscyrillic;04DC
1161 aamatragurmukhi;0A3E
1163 aavowelsignbengali;09BE
1164 aavowelsigndeva;093E
1165 aavowelsigngujarati;0ABE
1166 abbreviationmarkarmenian;055F
1167 abbreviationsigndeva;0970
1175 abrevehookabove;1EB3
1180 acircumflexacute;1EA5
1181 acircumflexdotbelow;1EAD
1182 acircumflexgrave;1EA7
1183 acircumflexhookabove;1EA9
1184 acircumflextilde;1EAB
1197 adieresiscyrillic;04D3
1198 adieresismacron;01DF
1462 aimatragurmukhi;0A48
1465 aininitialarabic;FECB
1466 ainmedialarabic;FECC
1468 aivowelsignbengali;09C8
1469 aivowelsigndeva;0948
1470 aivowelsigngujarati;0AC8
1472 akatakanahalfwidth;FF71
1476 alefdageshhebrew;FB30
1477 aleffinalarabic;FE8E
1478 alefhamzaabovearabic;0623
1479 alefhamzaabovefinalarabic;FE84
1480 alefhamzabelowarabic;0625
1481 alefhamzabelowfinalarabic;FE88
1483 aleflamedhebrew;FB4F
1484 alefmaddaabovearabic;0622
1485 alefmaddaabovefinalarabic;FE82
1486 alefmaksuraarabic;0649
1487 alefmaksurafinalarabic;FEF0
1488 alefmaksurainitialarabic;FEF3
1489 alefmaksuramedialarabic;FEF4
1490 alefpatahhebrew;FB2E
1491 alefqamatshebrew;FB2F
1499 ampersandmonospace;FF06
1506 anglebracketleft;3008
1507 anglebracketleftvertical;FE3F
1508 anglebracketright;3009
1509 anglebracketrightvertical;FE40
1515 anusvarabengali;0982
1517 anusvaragujarati;0A82
1521 apostrophearmenian;055A
1526 approxequalorimage;2252
1527 approximatelyequal;2245
1549 arrowheaddownmod;02C5
1550 arrowheadleftmod;02C2
1551 arrowheadrightmod;02C3
1556 arrowleftdblstroke;21CD
1557 arrowleftoverright;21C6
1560 arrowrightdblstroke;21CF
1561 arrowrightheavy;279E
1562 arrowrightoverleft;21C4
1563 arrowrightwhite;21E8
1569 arrowupdownbase;21A8
1571 arrowupleftofdown;21C5
1576 asciicircummonospace;FF3E
1578 asciitildemonospace;FF5E
1583 asmallkatakanahalfwidth;FF67
1585 asteriskaltonearabic;066D
1588 asteriskmonospace;FF0A
1592 asymptoticallyequal;2243
1603 aulengthmarkbengali;09D7
1604 aumatragurmukhi;0A4C
1605 auvowelsignbengali;09CC
1606 auvowelsigndeva;094C
1607 auvowelsigngujarati;0ACC
1611 ayinaltonehebrew;FB20
1616 backslashmonospace;FF3C
1629 beamedsixteenthnotes;266C
1634 behinitialarabic;FE91
1636 behmedialarabic;FE92
1637 behmeeminitialarabic;FC9F
1638 behmeemisolatedarabic;FC08
1639 behnoonfinalarabic;FC6D
1644 betasymbolgreek;03D0
1646 betdageshhebrew;FB31
1661 blackdownpointingtriangle;25BC
1662 blackleftpointingpointer;25C4
1663 blackleftpointingtriangle;25C0
1664 blacklenticularbracketleft;3010
1665 blacklenticularbracketleftvertical;FE3B
1666 blacklenticularbracketright;3011
1667 blacklenticularbracketrightvertical;FE3C
1668 blacklowerlefttriangle;25E3
1669 blacklowerrighttriangle;25E2
1671 blackrightpointingpointer;25BA
1672 blackrightpointingtriangle;25B6
1673 blacksmallsquare;25AA
1674 blacksmilingface;263B
1677 blackupperlefttriangle;25E4
1678 blackupperrighttriangle;25E5
1679 blackuppointingsmalltriangle;25B4
1680 blackuppointingtriangle;25B2
1694 braceleftmonospace;FF5B
1697 braceleftvertical;FE37
1701 bracerightmonospace;FF5D
1702 bracerightsmall;FE5C
1704 bracerightvertical;FE38
1708 bracketleftmonospace;FF3B
1713 bracketrightmonospace;FF3D
1718 breveinvertedbelowcmb;032F
1719 breveinvertedcmb;0311
1720 breveinverteddoublecmb;0361
1722 bridgeinvertedbelowcmb;033A
1741 candrabindubengali;0981
1743 candrabindudeva;0901
1744 candrabindugujarati;0A81
1775 cheabkhasiancyrillic;04BD
1778 chedescenderabkhasiancyrillic;04BF
1779 chedescendercyrillic;04B7
1780 chedieresiscyrillic;04F5
1782 chekhakassiancyrillic;04CC
1783 cheverticalstrokecyrillic;04B9
1785 chieuchacirclekorean;3277
1786 chieuchaparenkorean;3217
1787 chieuchcirclekorean;3269
1789 chieuchparenkorean;3209
1795 cieucacirclekorean;3276
1796 cieucaparenkorean;3216
1797 cieuccirclekorean;3268
1799 cieucparenkorean;3208
1800 cieucuparenkorean;321C
1805 circlepostalmark;3036
1806 circlewithlefthalfblack;25D0
1807 circlewithrighthalfblack;25D1
1809 circumflexbelowcmb;032D
1821 cmsquaredsquare;33A0
1828 colontriangularhalfmod;02D1
1829 colontriangularmod;02D0
1832 commaaboverightcmb;0315
1838 commareversedabovecmb;0314
1839 commareversedmod;02BD
1842 commaturnedabovecmb;0312
1846 contourintegral;222E
1883 cornerbracketleft;300C
1884 cornerbracketlefthalfwidth;FF62
1885 cornerbracketleftvertical;FE41
1886 cornerbracketright;300D
1887 cornerbracketrighthalfwidth;FF63
1888 cornerbracketrightvertical;FE42
1889 corporationsquare;337F
1908 dadinitialarabic;FEBF
1909 dadmedialarabic;FEC0
1921 daletdageshhebrew;FB33
1922 dalethatafpatah;05D3 05B2
1923 dalethatafpatahhebrew;05D3 05B2
1924 dalethatafsegol;05D3 05B1
1925 dalethatafsegolhebrew;05D3 05B1
1927 dalethiriq;05D3 05B4
1928 dalethiriqhebrew;05D3 05B4
1929 daletholam;05D3 05B9
1930 daletholamhebrew;05D3 05B9
1931 daletpatah;05D3 05B7
1932 daletpatahhebrew;05D3 05B7
1933 daletqamats;05D3 05B8
1934 daletqamatshebrew;05D3 05B8
1935 daletqubuts;05D3 05BB
1936 daletqubutshebrew;05D3 05BB
1937 daletsegol;05D3 05B6
1938 daletsegolhebrew;05D3 05B6
1939 daletsheva;05D3 05B0
1940 daletshevahebrew;05D3 05B0
1941 dalettsere;05D3 05B5
1942 dalettserehebrew;05D3 05B5
1946 dammatanaltonearabic;064C
1950 dargalefthebrew;05A7
1951 dasiapneumatacyrilliccmb;0485
1953 dblanglebracketleft;300A
1954 dblanglebracketleftvertical;FE3D
1955 dblanglebracketright;300B
1956 dblanglebracketrightvertical;FE3E
1957 dblarchinvertedbelowcmb;032B
1969 dblverticallineabovecmb;030E
1975 dcircumflexbelow;1E13
1982 ddalfinalarabic;FB89
1990 decimalseparatorarabic;066B
1991 decimalseparatorpersian;066B
2002 denominatorminusonenumeratorbengali;09F8
2010 dialytikatonoscmb;0344
2012 diamondsuitwhite;2662
2015 dieresisbelowcmb;0324
2038 dollarmonospace;FF04
2051 dotlessjstrokehook;0284
2055 doubleyodpatahhebrew;FB1F
2056 downtackbelowcmb;031E
2068 dzeabkhasiancyrillic;04E1
2078 ecandragujarati;0A8D
2079 ecandravowelsigndeva;0945
2080 ecandravowelsigngujarati;0AC5
2084 echyiwnarmenian;0587
2087 ecircumflexacute;1EBF
2088 ecircumflexbelow;1E19
2089 ecircumflexdotbelow;1EC7
2090 ecircumflexgrave;1EC1
2091 ecircumflexhookabove;1EC3
2092 ecircumflextilde;1EC5
2101 eematragurmukhi;0A47
2114 eightcircleinversesansserif;2791
2121 eighthackarabic;0668
2123 eighthnotebeamed;266B
2124 eightideographicparen;3227
2135 eiotifiedcyrillic;0465
2137 ekatakanahalfwidth;FF74
2138 ekonkargurmukhi;0A74
2147 ellipsisvertical;22EE
2155 emphasismarkarmenian;055B
2161 endescendercyrillic;04A3
2172 eopenreversedclosed;025E
2173 eopenreversedhook;025D
2185 ereversedcyrillic;044D
2187 esdescendercyrillic;04AB
2191 eshortvowelsigndeva;0946
2192 eshreversedloop;01AA
2193 eshsquatreversed;0285
2196 esmallkatakanahalfwidth;FF6A
2205 etnahtafoukhhebrew;0591
2206 etnahtafoukhlefthebrew;0591
2208 etnahtalefthebrew;0591
2212 evowelsignbengali;09C7
2214 evowelsigngujarati;0AC7
2219 exclamdownsmall;F7A1
2220 exclammonospace;FF01
2241 fehinitialarabic;FED3
2242 fehmedialarabic;FED4
2257 finalkafdageshhebrew;FB3A
2259 finalkafqamats;05DA 05B8
2260 finalkafqamatshebrew;05DA 05B8
2261 finalkafsheva;05DA 05B0
2262 finalkafshevahebrew;05DA 05B0
2270 finaltsadihebrew;05E5
2271 firsttonechinese;02C9
2278 fivecircleinversesansserif;278E
2285 fiveideographicparen;3224
2307 fourcircleinversesansserif;278D
2313 fourideographicparen;3223
2316 fournumeratorbengali;09F7
2327 fourthtonechinese;02CB
2337 gafinitialarabic;FB94
2338 gafmedialarabic;FB95
2344 gammalatinsmall;0263
2359 geometricallyequal;2251
2360 gereshaccenthebrew;059C
2362 gereshmuqdamhebrew;059D
2364 gershayimaccenthebrew;059E
2365 gershayimhebrew;05F4
2373 ghainfinalarabic;FECE
2374 ghaininitialarabic;FECF
2375 ghainmedialarabic;FED0
2376 ghemiddlehookcyrillic;0495
2377 ghestrokecyrillic;0493
2378 gheupturncyrillic;0491
2388 gimeldageshhebrew;FB32
2391 glottalinvertedstroke;01BE
2393 glottalstopinverted;0296
2395 glottalstopreversed;0295
2396 glottalstopreversedmod;02C1
2397 glottalstopreversedsuperior;02E4
2398 glottalstopstroke;02A1
2399 glottalstopstrokereversed;02A2
2417 greaterequalorless;22DB
2418 greatermonospace;FF1E
2419 greaterorequivalent;2273
2421 greateroverequal;2267
2434 haabkhasiancyrillic;04A9
2437 hadescendercyrillic;04B3
2443 hahinitialarabic;FEA3
2445 hahmedialarabic;FEA4
2448 hakatakanahalfwidth;FF8A
2451 hamzadammaarabic;0621 064F
2452 hamzadammatanarabic;0621 064C
2453 hamzafathaarabic;0621 064E
2454 hamzafathatanarabic;0621 064B
2456 hamzalowkasraarabic;0621 0650
2457 hamzalowkasratanarabic;0621 064D
2458 hamzasukunarabic;0621 0652
2460 hardsigncyrillic;044A
2461 harpoonleftbarbup;21BC
2462 harpoonrightbarbup;21C0
2468 hatafpatahhebrew;05B2
2469 hatafpatahnarrowhebrew;05B2
2470 hatafpatahquarterhebrew;05B2
2471 hatafpatahwidehebrew;05B2
2476 hatafqamatshebrew;05B3
2477 hatafqamatsnarrowhebrew;05B3
2478 hatafqamatsquarterhebrew;05B3
2479 hatafqamatswidehebrew;05B3
2484 hatafsegolhebrew;05B1
2485 hatafsegolnarrowhebrew;05B1
2486 hatafsegolquarterhebrew;05B1
2487 hatafsegolwidehebrew;05B1
2503 hehaltonearabic;06C1
2506 hehfinalaltonearabic;FBA7
2507 hehfinalalttwoarabic;FEEA
2509 hehhamzaabovefinalarabic;FBA5
2510 hehhamzaaboveisolatedarabic;FBA4
2511 hehinitialaltonearabic;FBA8
2512 hehinitialarabic;FEEB
2514 hehmedialaltonearabic;FBA9
2515 hehmedialarabic;FEEC
2516 heiseierasquare;337B
2518 hekatakanahalfwidth;FF8D
2519 hekutaarusquare;3336
2526 hieuhacirclekorean;327B
2527 hieuhaparenkorean;321B
2528 hieuhcirclekorean;326D
2530 hieuhparenkorean;320D
2533 hikatakanahalfwidth;FF8B
2539 hiriqnarrowhebrew;05B4
2540 hiriqquarterhebrew;05B4
2541 hiriqwidehebrew;05B4
2548 hokatakanahalfwidth;FF8E
2554 holamnarrowhebrew;05B9
2555 holamquarterhebrew;05B9
2556 holamwidehebrew;05B9
2560 hookpalatalizedbelowcmb;0321
2561 hookretroflexbelowcmb;0322
2574 hukatakanahalfwidth;FF8C
2576 hungarumlautcmb;030B
2580 hyphenmonospace;FF0D
2595 ideographearthcircle;328F
2596 ideographfirecircle;328B
2597 ideographicallianceparen;323F
2598 ideographiccallparen;323A
2599 ideographiccentrecircle;32A5
2600 ideographicclose;3006
2601 ideographiccomma;3001
2602 ideographiccommaleft;FF64
2603 ideographiccongratulationparen;3237
2604 ideographiccorrectcircle;32A3
2605 ideographicearthparen;322F
2606 ideographicenterpriseparen;323D
2607 ideographicexcellentcircle;329D
2608 ideographicfestivalparen;3240
2609 ideographicfinancialcircle;3296
2610 ideographicfinancialparen;3236
2611 ideographicfireparen;322B
2612 ideographichaveparen;3232
2613 ideographichighcircle;32A4
2614 ideographiciterationmark;3005
2615 ideographiclaborcircle;3298
2616 ideographiclaborparen;3238
2617 ideographicleftcircle;32A7
2618 ideographiclowcircle;32A6
2619 ideographicmedicinecircle;32A9
2620 ideographicmetalparen;322E
2621 ideographicmoonparen;322A
2622 ideographicnameparen;3234
2623 ideographicperiod;3002
2624 ideographicprintcircle;329E
2625 ideographicreachparen;3243
2626 ideographicrepresentparen;3239
2627 ideographicresourceparen;323E
2628 ideographicrightcircle;32A8
2629 ideographicsecretcircle;3299
2630 ideographicselfparen;3242
2631 ideographicsocietyparen;3233
2632 ideographicspace;3000
2633 ideographicspecialparen;3235
2634 ideographicstockparen;3231
2635 ideographicstudyparen;323B
2636 ideographicsunparen;3230
2637 ideographicsuperviseparen;323C
2638 ideographicwaterparen;322C
2639 ideographicwoodparen;322D
2640 ideographiczero;3007
2641 ideographmetalcircle;328E
2642 ideographmooncircle;328A
2643 ideographnamecircle;3294
2644 ideographsuncircle;3290
2645 ideographwatercircle;328C
2646 ideographwoodcircle;328D
2650 idieresiscyrillic;04E5
2652 iebrevecyrillic;04D7
2654 ieungacirclekorean;3275
2655 ieungaparenkorean;3215
2656 ieungcirclekorean;3267
2658 ieungparenkorean;3207
2669 iimatragurmukhi;0A40
2671 iishortcyrillic;0439
2672 iivowelsignbengali;09C0
2673 iivowelsigndeva;0940
2674 iivowelsigngujarati;0AC0
2677 ikatakanahalfwidth;FF72
2682 imacroncyrillic;04E3
2683 imageorapproximatelyequal;2253
2704 iotadieresistonos;0390
2711 ismallkatakanahalfwidth;FF68
2715 iterationhiragana;309D
2716 iterationkatakana;30FD
2721 ivowelsignbengali;09BF
2723 ivowelsigngujarati;0ABF
2724 izhitsacyrillic;0475
2725 izhitsadblgravecyrillic;0477
2740 jeemfinalarabic;FE9E
2741 jeeminitialarabic;FE9F
2742 jeemmedialarabic;FEA0
2755 kabashkircyrillic;04A1
2759 kadescendercyrillic;049B
2764 kafdageshhebrew;FB3B
2767 kafinitialarabic;FEDB
2768 kafmedialarabic;FEDC
2775 kakatakanahalfwidth;FF76
2777 kappasymbolgreek;03F0
2778 kapyeounmieumkorean;3171
2779 kapyeounphieuphkorean;3184
2780 kapyeounpieupkorean;3178
2781 kapyeounssangpieupkorean;3179
2783 kashidaautoarabic;0640
2784 kashidaautonosidebearingarabic;0640
2785 kasmallkatakana;30F5
2789 kastrokecyrillic;049F
2790 katahiraprolongmarkhalfwidth;FF70
2791 kaverticalstrokecyrillic;049D
2802 kekatakanahalfwidth;FF79
2804 kesmallkatakana;30F6
2812 khahfinalarabic;FEA6
2813 khahinitialarabic;FEA7
2814 khahmedialarabic;FEA8
2818 khieukhacirclekorean;3278
2819 khieukhaparenkorean;3218
2820 khieukhcirclekorean;326A
2822 khieukhparenkorean;320A
2833 kikatakanahalfwidth;FF77
2834 kiroguramusquare;3315
2835 kiromeetorusquare;3316
2837 kiyeokacirclekorean;326E
2838 kiyeokaparenkorean;320E
2839 kiyeokcirclekorean;3260
2841 kiyeokparenkorean;3200
2842 kiyeoksioskorean;3133
2848 kmsquaredsquare;33A2
2853 kokatakanahalfwidth;FF7A
2856 koreanstandardsymbol;327F
2865 kukatakanahalfwidth;FF78
2874 lakkhangyaothai;0E45
2875 lamaleffinalarabic;FEFC
2876 lamalefhamzaabovefinalarabic;FEF8
2877 lamalefhamzaaboveisolatedarabic;FEF7
2878 lamalefhamzabelowfinalarabic;FEFA
2879 lamalefhamzabelowisolatedarabic;FEF9
2880 lamalefisolatedarabic;FEFB
2881 lamalefmaddaabovefinalarabic;FEF6
2882 lamalefmaddaaboveisolatedarabic;FEF5
2888 lameddageshhebrew;FB3C
2890 lamedholam;05DC 05B9
2891 lamedholamdagesh;05DC 05B9 05BC
2892 lamedholamdageshhebrew;05DC 05B9 05BC
2893 lamedholamhebrew;05DC 05B9
2895 lamhahinitialarabic;FCCA
2896 laminitialarabic;FEDF
2897 lamjeeminitialarabic;FCC9
2898 lamkhahinitialarabic;FCCB
2899 lamlamhehisolatedarabic;FDF2
2900 lammedialarabic;FEE0
2901 lammeemhahinitialarabic;FD88
2902 lammeeminitialarabic;FCCC
2903 lammeemjeeminitialarabic;FEDF FEE4 FEA0
2904 lammeemkhahinitialarabic;FEDF FEE4 FEA8
2912 lcircumflexbelow;1E3D
2917 ldotbelowmacron;1E39
2918 leftangleabovecmb;031A
2919 lefttackbelowcmb;0318
2922 lessequalorgreater;22DA
2924 lessorequivalent;2272
2940 llvocalicbengali;09E1
2942 llvocalicvowelsignbengali;09E3
2943 llvocalicvowelsigndeva;0963
2950 logicalnotreversed;2310
2954 lowlinecenterline;FE4E
2964 lvocalicbengali;098C
2966 lvocalicvowelsignbengali;09E2
2967 lvocalicvowelsigndeva;0962
2975 macronmonospace;FFE3
2981 mahapakhlefthebrew;05A4
2983 maichattawalowleftthai;F895
2984 maichattawalowrightthai;F894
2985 maichattawathai;0E4B
2986 maichattawaupperleftthai;F893
2987 maieklowleftthai;F88C
2988 maieklowrightthai;F88B
2990 maiekupperleftthai;F88A
2991 maihanakatleftthai;F884
2993 maitaikhuleftthai;F889
2995 maitholowleftthai;F88F
2996 maitholowrightthai;F88E
2998 maithoupperleftthai;F88D
2999 maitrilowleftthai;F892
3000 maitrilowrightthai;F891
3002 maitriupperleftthai;F890
3005 makatakanahalfwidth;FF8F
3010 masoracirclehebrew;05AF
3019 meemfinalarabic;FEE2
3020 meeminitialarabic;FEE3
3021 meemmedialarabic;FEE4
3022 meemmeeminitialarabic;FCD1
3023 meemmeemisolatedarabic;FC48
3028 mekatakanahalfwidth;FF92
3031 memdageshhebrew;FB3E
3035 merkhakefulahebrew;05A6
3036 merkhakefulalefthebrew;05A6
3037 merkhalefthebrew;05A5
3040 middledotkatakanahalfwidth;FF65
3042 mieumacirclekorean;3272
3043 mieumaparenkorean;3212
3044 mieumcirclekorean;3264
3046 mieumpansioskorean;3170
3047 mieumparenkorean;3204
3048 mieumpieupkorean;316E
3049 mieumsioskorean;316F
3052 mikatakanahalfwidth;FF90
3059 miribaarusquare;334A
3065 mmsquaredsquare;339F
3069 mokatakanahalfwidth;FF93
3073 moverssquaredsquare;33A8
3089 mukatakanahalfwidth;FF91
3094 munahlefthebrew;05A3
3115 nakatakanahalfwidth;FF85
3123 ncircumflexbelow;1E4B
3129 nekatakanahalfwidth;FF88
3140 nieunacirclekorean;326F
3141 nieunaparenkorean;320F
3142 nieuncieuckorean;3135
3143 nieuncirclekorean;3261
3144 nieunhieuhkorean;3136
3146 nieunpansioskorean;3168
3147 nieunparenkorean;3201
3148 nieunsioskorean;3167
3149 nieuntikeutkorean;3166
3152 nikatakanahalfwidth;FF86
3153 nikhahitleftthai;F899
3159 ninecircleinversesansserif;2792
3165 nineideographicparen;3228
3181 nkatakanahalfwidth;FF9D
3193 nokatakanahalfwidth;FF89
3194 nonbreakingspace;00A0
3198 noonfinalarabic;FEE6
3199 noonghunnaarabic;06BA
3200 noonghunnafinalarabic;FB9F
3201 noonhehinitialarabic;FEE7 FEEC
3202 nooninitialarabic;FEE7
3203 noonjeeminitialarabic;FCD2
3204 noonjeemisolatedarabic;FC4B
3205 noonmedialarabic;FEE8
3206 noonmeeminitialarabic;FCD5
3207 noonmeemisolatedarabic;FC4E
3208 noonnoonfinalarabic;FC8D
3214 notgreaternorequal;2271
3215 notgreaternorless;2279
3218 notlessnorequal;2270
3232 nukatakanahalfwidth;FF87
3238 numbersignmonospace;FF03
3239 numbersignsmall;FE5F
3240 numeralsigngreek;0374
3241 numeralsignlowergreek;0375
3245 nundageshhebrew;FB40
3257 obarredcyrillic;04E9
3258 obarreddieresiscyrillic;04EB
3263 ocandragujarati;0A91
3264 ocandravowelsigndeva;0949
3265 ocandravowelsigngujarati;0AC9
3269 ocircumflexacute;1ED1
3270 ocircumflexdotbelow;1ED9
3271 ocircumflexgrave;1ED3
3272 ocircumflexhookabove;1ED5
3273 ocircumflextilde;1ED7
3279 odieresiscyrillic;04E7
3300 okatakanahalfwidth;FF75
3310 omegalatinclosed;0277
3311 omegaroundcyrillic;047B
3312 omegatitlocyrillic;047D
3322 onecircleinversesansserif;278A
3332 oneideographicparen;3220
3335 onenumeratorbengali;09F4
3348 oomatragurmukhi;0A4B
3357 oshortvowelsigndeva;094A
3362 osmallkatakanahalfwidth;FF6B
3371 overlinecenterline;FE4A
3374 overlinedblwavy;FE4C
3377 ovowelsignbengali;09CB
3379 ovowelsigngujarati;0ACB
3393 palatalizationcyrilliccmb;0484
3394 palochkacyrillic;04C0
3399 parenleftaltonearabic;FD3E
3402 parenleftinferior;208D
3403 parenleftmonospace;FF08
3405 parenleftsuperior;207D
3407 parenleftvertical;FE35
3409 parenrightaltonearabic;FD3F
3412 parenrightinferior;208E
3413 parenrightmonospace;FF09
3414 parenrightsmall;FE5A
3415 parenrightsuperior;207E
3417 parenrightvertical;FE36
3427 patahnarrowhebrew;05B7
3428 patahquarterhebrew;05B7
3429 patahwidehebrew;05B7
3439 pefinaldageshhebrew;FB43
3444 pehinitialarabic;FB58
3446 pehmedialarabic;FB59
3448 pemiddlehookcyrillic;04A7
3452 percentmonospace;FF05
3457 periodhalfwidth;FF61
3459 periodmonospace;FF0E
3462 perispomenigreekcmb;0342
3473 phieuphacirclekorean;327A
3474 phieuphaparenkorean;321A
3475 phieuphcirclekorean;326C
3477 phieuphparenkorean;320C
3486 pieupacirclekorean;3273
3487 pieupaparenkorean;3213
3488 pieupcieuckorean;3176
3489 pieupcirclekorean;3265
3490 pieupkiyeokkorean;3172
3492 pieupparenkorean;3205
3493 pieupsioskiyeokkorean;3174
3494 pieupsioskorean;3144
3495 pieupsiostikeutkorean;3175
3496 pieupthieuthkorean;3177
3497 pieuptikeutkorean;3173
3513 pointingindexdownwhite;261F
3514 pointingindexleftwhite;261C
3515 pointingindexrightwhite;261E
3516 pointingindexupwhite;261D
3536 psilipneumatacyrilliccmb;0486
3547 qafinitialarabic;FED7
3548 qafmedialarabic;FED8
3558 qamatsnarrowhebrew;05B8
3559 qamatsqatanhebrew;05B8
3560 qamatsqatannarrowhebrew;05B8
3561 qamatsqatanquarterhebrew;05B8
3562 qamatsqatanwidehebrew;05B8
3563 qamatsquarterhebrew;05B8
3564 qamatswidehebrew;05B8
3565 qarneyparahebrew;059F
3572 qofdageshhebrew;FB47
3573 qofhatafpatah;05E7 05B2
3574 qofhatafpatahhebrew;05E7 05B2
3575 qofhatafsegol;05E7 05B1
3576 qofhatafsegolhebrew;05E7 05B1
3579 qofhiriqhebrew;05E7 05B4
3581 qofholamhebrew;05E7 05B9
3583 qofpatahhebrew;05E7 05B7
3585 qofqamatshebrew;05E7 05B8
3587 qofqubutshebrew;05E7 05BB
3589 qofsegolhebrew;05E7 05B6
3591 qofshevahebrew;05E7 05B0
3593 qoftserehebrew;05E7 05B5
3601 qubutsnarrowhebrew;05BB
3602 qubutsquarterhebrew;05BB
3603 qubutswidehebrew;05BB
3606 questionarmenian;055E
3608 questiondownsmall;F7BF
3610 questionmonospace;FF1F
3615 quotedblmonospace;FF02
3617 quotedblprimereversed;301D
3620 quoteleftreversed;201B
3626 quotesinglemonospace;FF07
3635 radoverssquaredsquare;33AF
3643 rakatakanahalfwidth;FF97
3644 ralowerdiagonalbengali;09F1
3645 ramiddlediagonalbengali;09F0
3656 rdotbelowmacron;1E5D
3667 rehyehaleflamarabic;0631 FEF3 FE8E 0644
3669 rekatakanahalfwidth;FF9A
3671 reshdageshhebrew;FB48
3672 reshhatafpatah;05E8 05B2
3673 reshhatafpatahhebrew;05E8 05B2
3674 reshhatafsegol;05E8 05B1
3675 reshhatafsegolhebrew;05E8 05B1
3678 reshhiriqhebrew;05E8 05B4
3680 reshholamhebrew;05E8 05B9
3682 reshpatahhebrew;05E8 05B7
3683 reshqamats;05E8 05B8
3684 reshqamatshebrew;05E8 05B8
3685 reshqubuts;05E8 05BB
3686 reshqubutshebrew;05E8 05BB
3688 reshsegolhebrew;05E8 05B6
3690 reshshevahebrew;05E8 05B0
3692 reshtserehebrew;05E8 05B5
3695 reviamugrashhebrew;0597
3698 rfishhookreversed;027F
3704 rhookturnedsuperior;02B5
3707 rieulacirclekorean;3271
3708 rieulaparenkorean;3211
3709 rieulcirclekorean;3263
3710 rieulhieuhkorean;3140
3711 rieulkiyeokkorean;313A
3712 rieulkiyeoksioskorean;3169
3714 rieulmieumkorean;313B
3715 rieulpansioskorean;316C
3716 rieulparenkorean;3203
3717 rieulphieuphkorean;313F
3718 rieulpieupkorean;313C
3719 rieulpieupsioskorean;316B
3720 rieulsioskorean;313D
3721 rieulthieuthkorean;313E
3722 rieultikeutkorean;316A
3723 rieulyeorinhieuhkorean;316D
3725 righttackbelowcmb;0319
3729 rikatakanahalfwidth;FF98
3734 ringhalfleftarmenian;0559
3735 ringhalfleftbelowcmb;031C
3736 ringhalfleftcentered;02D3
3738 ringhalfrightbelowcmb;0339
3739 ringhalfrightcentered;02D2
3748 rokatakanahalfwidth;FF9B
3755 rrehfinalarabic;FB8D
3756 rrvocalicbengali;09E0
3758 rrvocalicgujarati;0AE0
3759 rrvocalicvowelsignbengali;09C4
3760 rrvocalicvowelsigndeva;0944
3761 rrvocalicvowelsigngujarati;0AC4
3765 rturnedsuperior;02B4
3768 rukatakanahalfwidth;FF99
3769 rupeemarkbengali;09F2
3770 rupeesignbengali;09F3
3773 rvocalicbengali;098B
3775 rvocalicgujarati;0A8B
3776 rvocalicvowelsignbengali;09C3
3777 rvocalicvowelsigndeva;0943
3778 rvocalicvowelsigngujarati;0AC3
3782 sacutedotaccent;1E65
3786 sadinitialarabic;FEBB
3787 sadmedialarabic;FEBC
3792 sakatakanahalfwidth;FF7B
3793 sallallahoualayhewasallamarabic;FDFA
3796 samekhdageshhebrew;FB41
3800 saraaimaimalaithai;0E44
3801 saraaimaimuanthai;0E43
3810 saraueeleftthai;F888
3818 scarondotaccent;1E67
3822 schwadieresiscyrillic;04DB
3829 sdotbelowdotaccent;1E69
3830 seagullbelowcmb;033C
3832 secondtonechinese;02CA
3835 seenfinalarabic;FEB2
3836 seeninitialarabic;FEB3
3837 seenmedialarabic;FEB4
3843 segolnarrowhebrew;05B6
3844 segolquarterhebrew;05B6
3846 segolwidehebrew;05B6
3850 sekatakanahalfwidth;FF7E
3852 semicolonarabic;061B
3853 semicolonmonospace;FF1B
3855 semivoicedmarkkana;309C
3856 semivoicedmarkkanahalfwidth;FF9F
3863 sevencircleinversesansserif;2790
3868 sevenhackarabic;0667
3870 sevenideographicparen;3226
3879 seventeencircle;2470
3881 seventeenperiod;2498
3888 shaddadammaarabic;FC61
3889 shaddadammatanarabic;FC5E
3890 shaddafathaarabic;FC60
3891 shaddafathatanarabic;0651 064B
3892 shaddakasraarabic;FC62
3893 shaddakasratanarabic;FC5F
3901 shalshelethebrew;0593
3905 sheenfinalarabic;FEB6
3906 sheeninitialarabic;FEB7
3907 sheenmedialarabic;FEB8
3917 shevanarrowhebrew;05B0
3918 shevaquarterhebrew;05B0
3919 shevawidehebrew;05B0
3924 shindageshhebrew;FB49
3925 shindageshshindot;FB2C
3926 shindageshshindothebrew;FB2C
3927 shindageshsindot;FB2D
3928 shindageshsindothebrew;FB2D
3932 shinshindothebrew;FB2A
3934 shinsindothebrew;FB2B
3939 sigmalunatesymbolgreek;03F2
3942 sikatakanahalfwidth;FF7C
3944 siluqlefthebrew;05BD
3947 siosacirclekorean;3274
3948 siosaparenkorean;3214
3949 sioscieuckorean;317E
3950 sioscirclekorean;3266
3951 sioskiyeokkorean;317A
3953 siosnieunkorean;317B
3954 siosparenkorean;3206
3955 siospieupkorean;317D
3956 siostikeutkorean;317C
3961 sixcircleinversesansserif;278F
3967 sixideographicparen;3225
3977 sixteencurrencydenominatorbengali;09F9
3989 softsigncyrillic;044C
3992 sokatakanahalfwidth;FF7F
3993 soliduslongoverlaycmb;0338
3994 solidusshortoverlaycmb;0337
4000 spacehackarabic;0020
4008 squarediagonalcrosshatchfill;25A9
4009 squarehorizontalfill;25A4
4012 squarekmcapital;33CE
4019 squareorthogonalcrosshatchfill;25A6
4020 squareupperlefttolowerrightfill;25A7
4021 squareupperrighttolowerleftfill;25A8
4022 squareverticalfill;25A5
4023 squarewhitewithsmallblack;25A3
4028 ssangcieuckorean;3149
4029 ssanghieuhkorean;3185
4030 ssangieungkorean;3180
4031 ssangkiyeokkorean;3132
4032 ssangnieunkorean;3165
4033 ssangpieupkorean;3143
4034 ssangsioskorean;3146
4035 ssangtikeutkorean;3138
4038 sterlingmonospace;FFE1
4039 strokelongoverlaycmb;0336
4040 strokeshortoverlaycmb;0335
4048 sukatakanahalfwidth;FF7D
4053 supersetnotequal;228B
4054 supersetorequal;2287
4056 syouwaerasquare;337C
4066 tahinitialarabic;FEC3
4068 tahmedialarabic;FEC4
4069 taisyouerasquare;337D
4071 takatakanahalfwidth;FF80
4077 tavdageshhebrew;FB4A
4085 tchehfinalarabic;FB7B
4086 tchehinitialarabic;FB7C
4087 tchehmedialarabic;FB7D
4088 tchehmeeminitialarabic;FB7C FEE4
4090 tcircumflexbelow;1E71
4096 tedescendercyrillic;04AD
4099 tehhahinitialarabic;FCA2
4100 tehhahisolatedarabic;FC0C
4101 tehinitialarabic;FE97
4103 tehjeeminitialarabic;FCA1
4104 tehjeemisolatedarabic;FC0B
4105 tehmarbutaarabic;0629
4106 tehmarbutafinalarabic;FE94
4107 tehmedialarabic;FE98
4108 tehmeeminitialarabic;FCA4
4109 tehmeemisolatedarabic;FC0E
4110 tehnoonfinalarabic;FC73
4112 tekatakanahalfwidth;FF83
4115 telishagedolahebrew;05A0
4116 telishaqetanahebrew;05A9
4118 tenideographicparen;3229
4125 tetdageshhebrew;FB38
4129 tevirlefthebrew;059B
4135 thalfinalarabic;FEAC
4136 thanthakhatlowleftthai;F898
4137 thanthakhatlowrightthai;F897
4138 thanthakhatthai;0E4C
4139 thanthakhatupperleftthai;F896
4141 thehfinalarabic;FE9A
4142 thehinitialarabic;FE9B
4143 thehmedialarabic;FE9C
4148 thetasymbolgreek;03D1
4149 thieuthacirclekorean;3279
4150 thieuthaparenkorean;3219
4151 thieuthcirclekorean;326B
4153 thieuthparenkorean;320B
4157 thonangmonthothai;0E11
4165 thousandcyrillic;0482
4166 thousandsseparatorarabic;066C
4167 thousandsseparatorpersian;066C
4172 threecircleinversesansserif;278C
4177 threehackarabic;0663
4179 threeideographicparen;3222
4182 threenumeratorbengali;09F6
4188 threequartersemdash;F6DE
4195 tikatakanahalfwidth;FF81
4196 tikeutacirclekorean;3270
4197 tikeutaparenkorean;3210
4198 tikeutcirclekorean;3262
4200 tikeutparenkorean;3202
4207 tildeoverlaycmb;0334
4208 tildeverticalcmb;033E
4211 tipehalefthebrew;0596
4213 titlocyrilliccmb;0483
4220 tokatakanahalfwidth;FF84
4221 tonebarextrahighmod;02E5
4222 tonebarextralowmod;02E9
4232 tortoiseshellbracketleft;3014
4233 tortoiseshellbracketleftsmall;FE5D
4234 tortoiseshellbracketleftvertical;FE39
4235 tortoiseshellbracketright;3015
4236 tortoiseshellbracketrightsmall;FE5E
4237 tortoiseshellbracketrightvertical;FE3A
4252 tsadidageshhebrew;FB46
4260 tserenarrowhebrew;05B5
4261 tserequarterhebrew;05B5
4262 tserewidehebrew;05B5
4270 ttehfinalarabic;FB67
4271 ttehinitialarabic;FB68
4272 ttehmedialarabic;FB69
4280 tukatakanahalfwidth;FF82
4281 tusmallhiragana;3063
4282 tusmallkatakana;30C3
4283 tusmallkatakanahalfwidth;FF6F
4296 twocircleinversesansserif;278B
4300 twodotleadervertical;FE30
4305 twoideographicparen;3221
4308 twonumeratorbengali;09F5
4327 ucircumflexbelow;1E77
4337 udieresiscyrillic;04F1
4339 udieresismacron;01D6
4353 uhungarumlautcyrillic;04F3
4356 ukatakanahalfwidth;FF73
4360 umacroncyrillic;04EF
4361 umacrondieresis;1E7B
4366 underscoremonospace;FF3F
4367 underscorevertical;FE33
4376 upsilondieresis;03CB
4377 upsilondieresistonos;03B0
4387 usmallkatakanahalfwidth;FF69
4388 ustraightcyrillic;04AF
4389 ustraightstrokecyrillic;04B1
4397 uumatragurmukhi;0A42
4398 uuvowelsignbengali;09C2
4399 uuvowelsigndeva;0942
4400 uuvowelsigngujarati;0AC2
4401 uvowelsignbengali;09C1
4403 uvowelsigngujarati;0AC1
4412 vavdageshhebrew;FB35
4423 vehinitialarabic;FB6C
4424 vehmedialarabic;FB6D
4428 verticallineabovecmb;030D
4429 verticallinebelowcmb;0329
4430 verticallinelowmod;02CC
4431 verticallinemod;02C8
4440 visargagujarati;0A83
4443 voicediterationhiragana;309E
4444 voicediterationkatakana;30FE
4446 voicedmarkkanahalfwidth;FF9E
4458 wakatakanahalfwidth;FF9C
4460 wasmallhiragana;308E
4461 wasmallkatakana;30EE
4464 wavyunderscorevertical;FE34
4467 wawhamzaabovearabic;0624
4468 wawhamzaabovefinalarabic;FE86
4483 whitecircleinverse;25D9
4484 whitecornerbracketleft;300E
4485 whitecornerbracketleftvertical;FE43
4486 whitecornerbracketright;300F
4487 whitecornerbracketrightvertical;FE44
4489 whitediamondcontainingblacksmalldiamond;25C8
4490 whitedownpointingsmalltriangle;25BF
4491 whitedownpointingtriangle;25BD
4492 whiteleftpointingsmalltriangle;25C3
4493 whiteleftpointingtriangle;25C1
4494 whitelenticularbracketleft;3016
4495 whitelenticularbracketright;3017
4496 whiterightpointingsmalltriangle;25B9
4497 whiterightpointingtriangle;25B7
4498 whitesmallsquare;25AB
4499 whitesmilingface;263A
4503 whitetortoiseshellbracketleft;3018
4504 whitetortoiseshellbracketright;3019
4505 whiteuppointingsmalltriangle;25B5
4506 whiteuppointingtriangle;25B3
4513 wokatakanahalfwidth;FF66
4543 yakatakanahalfwidth;FF94
4546 yasmallhiragana;3083
4547 yasmallkatakana;30E3
4548 yasmallkatakanahalfwidth;FF6C
4556 yehbarreearabic;06D2
4557 yehbarreefinalarabic;FBAF
4559 yehhamzaabovearabic;0626
4560 yehhamzaabovefinalarabic;FE8A
4561 yehhamzaaboveinitialarabic;FE8B
4562 yehhamzaabovemedialarabic;FE8C
4563 yehinitialarabic;FEF3
4564 yehmedialarabic;FEF4
4565 yehmeeminitialarabic;FCDD
4566 yehmeemisolatedarabic;FC58
4567 yehnoonfinalarabic;FC94
4568 yehthreedotsbelowarabic;06D1
4573 yeorinhieuhkorean;3186
4574 yerahbenyomohebrew;05AA
4575 yerahbenyomolefthebrew;05AA
4577 yerudieresiscyrillic;04F9
4579 yesieungpansioskorean;3183
4580 yesieungsioskorean;3182
4593 yoddageshhebrew;FB39
4596 yodyodpatahhebrew;FB1F
4600 yokatakanahalfwidth;FF96
4602 yosmallhiragana;3087
4603 yosmallkatakana;30E7
4604 yosmallkatakanahalfwidth;FF6E
4612 ypogegrammenigreekcmb;0345
4621 yukatakanahalfwidth;FF95
4624 yusbigiotifiedcyrillic;046D
4625 yuslittlecyrillic;0467
4626 yuslittleiotifiedcyrillic;0469
4627 yusmallhiragana;3085
4628 yusmallkatakana;30E5
4629 yusmallkatakanahalfwidth;FF6D
4641 zahinitialarabic;FEC7
4643 zahmedialarabic;FEC8
4645 zainfinalarabic;FEB0
4647 zaqefgadolhebrew;0595
4648 zaqefqatanhebrew;0594
4652 zayindageshhebrew;FB36
4663 zedescendercyrillic;0499
4664 zedieresiscyrillic;04DF
4680 zerowidthjoiner;FEFF
4681 zerowidthnonjoiner;200C
4686 zhebrevecyrillic;04C2
4688 zhedescendercyrillic;0497
4689 zhedieresiscyrillic;04DD
4906 # string table management
4909 def __init__( self, name_list, master_table_name ):
4910 self.names = name_list
4911 self.master_table = master_table_name
4915 for name in name_list:
4916 self.indices[name] = index
4917 index += len( name ) + 1
4921 def dump( self, file ):
4923 write( " static const char " + self.master_table +
4924 "[" + repr( self.total ) + "] =\n" )
4928 for name in self.names:
4930 line += string.join( ( re.findall( ".", name ) ), "','" )
4933 write( line + " };\n\n\n" )
4935 def dump_sublist( self, file, table_name, macro_name, sublist ):
4937 write( "#define " + macro_name + " " + repr( len( sublist ) ) + "\n\n" )
4939 write( " /* Values are offsets into the `" +
4940 self.master_table + "' table */\n\n" )
4941 write( " static const short " + table_name +
4942 "[" + macro_name + "] =\n" )
4949 for name in sublist:
4951 line += "%4d" % self.indices[name]
4958 write( line + "\n };\n\n\n" )
4961 # We now store the Adobe Glyph List in compressed form. The list is put
4962 # into a data structure called `trie' (because it has a tree-like
4963 # appearance). Consider, for example, that you want to store the
4964 # following name mapping:
4971 # It is possible to store the entries as follows.
4983 # We see that each node in the trie has:
4985 # - one or more `letters'
4986 # - an optional value
4987 # - zero or more child nodes
4989 # The first step is to call
4991 # root = StringNode( "", 0 )
4992 # for word in map.values():
4993 # root.add( word, map[word] )
4995 # which creates a large trie where each node has only one children.
4999 # root = root.optimize()
5001 # optimizes the trie by merging the letters of successive nodes whenever
5004 # Each node of the trie is stored as follows.
5006 # - First the node's letter, according to the following scheme. We
5007 # use the fact that in the AGL no name contains character codes > 127.
5009 # name bitsize description
5010 # ----------------------------------------------------------------
5011 # notlast 1 Set to 1 if this is not the last letter
5013 # ascii 7 The letter's ASCII value.
5015 # - The letter is followed by a children count and the value of the
5016 # current key (if any). Again we can do some optimization because all
5017 # AGL entries are from the BMP; this means that 16 bits are sufficient
5018 # to store its Unicode values. Additionally, no node has more than
5021 # name bitsize description
5022 # -----------------------------------------
5023 # hasvalue 1 Set to 1 if a 16-bit Unicode value follows.
5024 # num_children 7 Number of children. Can be 0 only if
5025 # `hasvalue' is set to 1.
5026 # value 16 Optional Unicode value.
5028 # - A node is finished by a list of 16bit absolute offsets to the
5029 # children, which must be sorted in increasing order of their first
5032 # For simplicity, all 16bit quantities are stored in big-endian order.
5034 # The root node has first letter = 0, and no value.
5037 def __init__( self, letter, value ):
5038 self.letter = letter
5042 def __cmp__( self, other ):
5043 return ord( self.letter[0] ) - ord( other.letter[0] )
5045 def add( self, word, value ):
5046 if len( word ) == 0:
5053 if self.children.has_key( letter ):
5054 child = self.children[letter]
5056 child = StringNode( letter, 0 )
5057 self.children[letter] = child
5059 child.add( word, value )
5061 def optimize( self ):
5062 # optimize all children first
5063 children = self.children.values()
5066 for child in children:
5067 self.children[child.letter[0]] = child.optimize()
5069 # don't optimize if there's a value,
5070 # if we don't have any child or if we
5071 # have more than one child
5072 if ( self.value != 0 ) or ( not children ) or len( children ) > 1:
5077 self.letter += child.letter
5078 self.value = child.value
5079 self.children = child.children
5083 def dump_debug( self, write, margin ):
5084 # this is used during debugging
5085 line = margin + "+-"
5086 if len( self.letter ) == 0:
5087 line += "<NOLETTER>"
5092 line += " => " + repr( self.value )
5094 write( line + "\n" )
5098 for child in self.children.values():
5099 child.dump_debug( write, margin )
5101 def locate( self, index ):
5103 if len( self.letter ) > 0:
5104 index += len( self.letter ) + 1
5111 children = self.children.values()
5114 index += 2 * len( children )
5115 for child in children:
5116 index = child.locate( index )
5120 def store( self, storage ):
5122 l = len( self.letter )
5124 storage += struct.pack( "B", 0 )
5126 for n in range( l ):
5127 val = ord( self.letter[n] )
5130 storage += struct.pack( "B", val )
5133 children = self.children.values()
5136 count = len( children )
5139 storage += struct.pack( "!BH", count + 128, self.value )
5141 storage += struct.pack( "B", count )
5143 for child in children:
5144 storage += struct.pack( "!H", child.index )
5146 for child in children:
5147 storage = child.store( storage )
5152 def adobe_glyph_values():
5153 """return the list of glyph names and their unicode values"""
5155 lines = string.split( adobe_glyph_list, '\n' )
5161 fields = string.split( line, ';' )
5162 # print fields[1] + ' - ' + fields[0]
5163 subfields = string.split( fields[1], ' ' )
5164 if len( subfields ) == 1:
5165 glyphs.append( fields[0] )
5166 values.append( fields[1] )
5168 return glyphs, values
5171 def filter_glyph_names( alist, filter ):
5172 """filter `alist' by taking _out_ all glyph names that are in `filter'"""
5179 filtered_index = filter.index( name )
5181 extras.append( name )
5186 def dump_encoding( file, encoding_name, encoding_list ):
5187 """dump a given encoding"""
5190 write( " /* the following are indices into the SID name table */\n" )
5191 write( " static const unsigned short " + encoding_name +
5192 "[" + repr( len( encoding_list ) ) + "] =\n" )
5198 for value in encoding_list:
5200 line += "%3d" % value
5207 write( line + "\n };\n\n\n" )
5210 def dump_array( the_array, write, array_name ):
5211 """dumps a given encoding"""
5213 write( " static const unsigned char " + array_name +
5214 "[" + repr( len( the_array ) ) + "L] =\n" )
5221 for value in the_array:
5223 line += "%3d" % ord( value )
5231 if len( line ) > 1024:
5235 write( line + "\n };\n\n\n" )
5239 """main program body"""
5241 if len( sys.argv ) != 2:
5242 print __doc__ % sys.argv[0]
5245 file = open( sys.argv[1], "w\n" )
5248 count_sid = len( sid_standard_names )
5250 # `mac_extras' contains the list of glyph names in the Macintosh standard
5251 # encoding which are not in the SID Standard Names.
5253 mac_extras = filter_glyph_names( mac_standard_names, sid_standard_names )
5255 # `base_list' contains the names of our final glyph names table.
5256 # It consists of the `mac_extras' glyph names, followed by the SID
5259 mac_extras_count = len( mac_extras )
5260 base_list = mac_extras + sid_standard_names
5262 write( "/***************************************************************************/\n" )
5265 write( "/* %-71s*/\n" % os.path.basename( sys.argv[1] ) )
5268 write( "/* PostScript glyph names. */\n" )
5270 write( "/* Copyright 2005, 2008, 2011 by */\n" )
5271 write( "/* David Turner, Robert Wilhelm, and Werner Lemberg. */\n" )
5273 write( "/* This file is part of the FreeType project, and may only be used, */\n" )
5274 write( "/* modified, and distributed under the terms of the FreeType project */\n" )
5275 write( "/* license, LICENSE.TXT. By continuing to use, modify, or distribute */\n" )
5276 write( "/* this file you indicate that you have read the license and */\n" )
5277 write( "/* understand and accept it fully. */\n" )
5279 write( "/***************************************************************************/\n" )
5282 write( " /* This file has been generated automatically -- do not edit! */\n" )
5286 # dump final glyph list (mac extras + sid standard names)
5288 st = StringTable( base_list, "ft_standard_glyph_names" )
5291 st.dump_sublist( file, "ft_mac_names",
5292 "FT_NUM_MAC_NAMES", mac_standard_names )
5293 st.dump_sublist( file, "ft_sid_names",
5294 "FT_NUM_SID_NAMES", sid_standard_names )
5296 dump_encoding( file, "t1_standard_encoding", t1_standard_encoding )
5297 dump_encoding( file, "t1_expert_encoding", t1_expert_encoding )
5299 # dump the AGL in its compressed form
5301 agl_glyphs, agl_values = adobe_glyph_values()
5302 dict = StringNode( "", 0 )
5304 for g in range( len( agl_glyphs ) ):
5305 dict.add( agl_glyphs[g], eval( "0x" + agl_values[g] ) )
5307 dict = dict.optimize()
5308 dict_len = dict.locate( 0 )
5309 dict_array = dict.store( "" )
5313 * This table is a compressed version of the Adobe Glyph List (AGL),
5314 * optimized for efficient searching. It has been generated by the
5315 * `glnames.py' python script located in the `src/tools' directory.
5317 * The lookup function to get the Unicode value for a given string
5318 * is defined below the table.
5321 #ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
5325 dump_array( dict_array, write, "ft_adobe_glyph_list" )
5327 # write the lookup routine now
5331 * This function searches the compressed table efficiently.
5333 static unsigned long
5334 ft_get_adobe_glyph_index( const char* name,
5338 int count, min, max;
5339 const unsigned char* p = ft_adobe_glyph_list;
5342 if ( name == 0 || name >= limit )
5354 int mid = ( min + max ) >> 1;
5355 const unsigned char* q = p + mid * 2;
5359 q = ft_adobe_glyph_list + ( ( (int)q[0] << 8 ) | q[1] );
5377 /* assert (*p & 127) == c */
5379 if ( name >= limit )
5381 if ( (p[0] & 128) == 0 &&
5383 return (unsigned long)( ( (int)p[2] << 8 ) | p[3] );
5391 if ( c != (p[0] & 127) )
5404 for ( ; count > 0; count--, p += 2 )
5406 int offset = ( (int)p[0] << 8 ) | p[1];
5407 const unsigned char* q = ft_adobe_glyph_list + offset;
5409 if ( c == ( q[0] & 127 ) )
5425 #endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
5429 if 0: # generate unit test, or don't
5431 # now write the unit test to check that everything works OK
5433 write( "#ifdef TEST\n\n" )
5435 write( "static const char* const the_names[] = {\n" )
5436 for name in agl_glyphs:
5437 write( ' "' + name + '",\n' )
5440 write( "static const unsigned long the_values[] = {\n" )
5441 for val in agl_values:
5442 write( ' 0x' + val + ',\n' )
5453 const char* const* names = the_names;
5454 const unsigned long* values = the_values;
5457 for ( ; *names; names++, values++ )
5459 const char* name = *names;
5460 unsigned long reference = *values;
5461 unsigned long value;
5464 value = ft_get_adobe_glyph_index( name, name + strlen( name ) );
5465 if ( value != reference )
5468 fprintf( stderr, "name '%s' => %04x instead of %04x\\n",
5469 name, value, reference );
5477 write( "#endif /* TEST */\n" )
5479 write("\n/* END */\n")
5482 # Now run the main routine