1 # The table below is taken from 2 # http://www.adobe.com/devnet/opentype/archives/aglfn.txt 3 4 from __future__ import print_function, division, absolute_import 5 from fontTools.misc.py23 import * 6 7 _aglText = """\ 8 # ----------------------------------------------------------- 9 # Copyright 2003, 2005-2008, 2010 Adobe Systems Incorporated. 10 # All rights reserved. 11 # 12 # Redistribution and use in source and binary forms, with or 13 # without modification, are permitted provided that the 14 # following conditions are met: 15 # 16 # Redistributions of source code must retain the above 17 # copyright notice, this list of conditions and the following 18 # disclaimer. 19 # 20 # Redistributions in binary form must reproduce the above 21 # copyright notice, this list of conditions and the following 22 # disclaimer in the documentation and/or other materials 23 # provided with the distribution. 24 # 25 # Neither the name of Adobe Systems Incorporated nor the names 26 # of its contributors may be used to endorse or promote 27 # products derived from this software without specific prior 28 # written permission. 29 # 30 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 31 # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 32 # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 33 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 34 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 35 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 36 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 37 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 38 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 40 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 41 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 42 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 43 # ----------------------------------------------------------- 44 # Name: Adobe Glyph List For New Fonts 45 # Table version: 1.7 46 # Date: November 6, 2008 47 # URL: http://sourceforge.net/adobe/aglfn/ 48 # 49 # Description: 50 # 51 # AGLFN (Adobe Glyph List For New Fonts) provides a list of base glyph 52 # names that are recommended for new fonts, which are compatible with 53 # the AGL (Adobe Glyph List) Specification, and which should be used 54 # as described in Section 6 of that document. AGLFN comprises the set 55 # of glyph names from AGL that map via the AGL Specification rules to 56 # the semantically correct UV (Unicode Value). For example, "Asmall" 57 # is omitted because AGL maps this glyph name to the PUA (Private Use 58 # Area) value U+F761, rather than to the UV that maps from the glyph 59 # name "A." Also omitted is "ffi," because AGL maps this to the 60 # Alphabetic Presentation Forms value U+FB03, rather than decomposing 61 # it into the following sequence of three UVs: U+0066, U+0066, and 62 # U+0069. The name "arrowvertex" has been omitted because this glyph 63 # now has a real UV, and AGL is now incorrect in mapping it to the PUA 64 # value U+F8E6. If you do not find an appropriate name for your glyph 65 # in this list, then please refer to Section 6 of the AGL 66 # Specification. 67 # 68 # Format: three semicolon-delimited fields: 69 # (1) Standard UV or CUS UV--four uppercase hexadecimal digits 70 # (2) Glyph name--upper/lowercase letters and digits 71 # (3) Character names: Unicode character names for standard UVs, and 72 # descriptive names for CUS UVs--uppercase letters, hyphen, and 73 # space 74 # 75 # The records are sorted by glyph name in increasing ASCII order, 76 # entries with the same glyph name are sorted in decreasing priority 77 # order, the UVs and Unicode character names are provided for 78 # convenience, lines starting with "#" are comments, and blank lines 79 # should be ignored. 80 # 81 # Revision History: 82 # 83 # 1.7 [6 November 2008] 84 # - Reverted to the original 1.4 and earlier mappings for Delta, 85 # Omega, and mu. 86 # - Removed mappings for "afii" names. These should now be assigned 87 # "uni" names. 88 # - Removed mappings for "commaaccent" names. These should now be 89 # assigned "uni" names. 90 # 91 # 1.6 [30 January 2006] 92 # - Completed work intended in 1.5. 93 # 94 # 1.5 [23 November 2005] 95 # - Removed duplicated block at end of file. 96 # - Changed mappings: 97 # 2206;Delta;INCREMENT changed to 0394;Delta;GREEK CAPITAL LETTER DELTA 98 # 2126;Omega;OHM SIGN changed to 03A9;Omega;GREEK CAPITAL LETTER OMEGA 99 # 03BC;mu;MICRO SIGN changed to 03BC;mu;GREEK SMALL LETTER MU 100 # - Corrected statement above about why "ffi" is omitted. 101 # 102 # 1.4 [24 September 2003] 103 # - Changed version to 1.4, to avoid confusion with the AGL 1.3. 104 # - Fixed spelling errors in the header. 105 # - Fully removed "arrowvertex," as it is mapped only to a PUA Unicode 106 # value in some fonts. 107 # 108 # 1.1 [17 April 2003] 109 # - Renamed [Tt]cedilla back to [Tt]commaaccent. 110 # 111 # 1.0 [31 January 2003] 112 # - Original version. 113 # - Derived from the AGLv1.2 by: 114 # removing the PUA area codes; 115 # removing duplicate Unicode mappings; and 116 # renaming "tcommaaccent" to "tcedilla" and "Tcommaaccent" to "Tcedilla" 117 # 118 0041;A;LATIN CAPITAL LETTER A 119 00C6;AE;LATIN CAPITAL LETTER AE 120 01FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE 121 00C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE 122 0102;Abreve;LATIN CAPITAL LETTER A WITH BREVE 123 00C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX 124 00C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS 125 00C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE 126 0391;Alpha;GREEK CAPITAL LETTER ALPHA 127 0386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS 128 0100;Amacron;LATIN CAPITAL LETTER A WITH MACRON 129 0104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK 130 00C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE 131 01FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 132 00C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE 133 0042;B;LATIN CAPITAL LETTER B 134 0392;Beta;GREEK CAPITAL LETTER BETA 135 0043;C;LATIN CAPITAL LETTER C 136 0106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE 137 010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON 138 00C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA 139 0108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX 140 010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE 141 03A7;Chi;GREEK CAPITAL LETTER CHI 142 0044;D;LATIN CAPITAL LETTER D 143 010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON 144 0110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE 145 2206;Delta;INCREMENT 146 0045;E;LATIN CAPITAL LETTER E 147 00C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE 148 0114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE 149 011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON 150 00CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX 151 00CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS 152 0116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE 153 00C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE 154 0112;Emacron;LATIN CAPITAL LETTER E WITH MACRON 155 014A;Eng;LATIN CAPITAL LETTER ENG 156 0118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK 157 0395;Epsilon;GREEK CAPITAL LETTER EPSILON 158 0388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS 159 0397;Eta;GREEK CAPITAL LETTER ETA 160 0389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS 161 00D0;Eth;LATIN CAPITAL LETTER ETH 162 20AC;Euro;EURO SIGN 163 0046;F;LATIN CAPITAL LETTER F 164 0047;G;LATIN CAPITAL LETTER G 165 0393;Gamma;GREEK CAPITAL LETTER GAMMA 166 011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE 167 01E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON 168 011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX 169 0120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE 170 0048;H;LATIN CAPITAL LETTER H 171 25CF;H18533;BLACK CIRCLE 172 25AA;H18543;BLACK SMALL SQUARE 173 25AB;H18551;WHITE SMALL SQUARE 174 25A1;H22073;WHITE SQUARE 175 0126;Hbar;LATIN CAPITAL LETTER H WITH STROKE 176 0124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX 177 0049;I;LATIN CAPITAL LETTER I 178 0132;IJ;LATIN CAPITAL LIGATURE IJ 179 00CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE 180 012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE 181 00CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX 182 00CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS 183 0130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE 184 2111;Ifraktur;BLACK-LETTER CAPITAL I 185 00CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE 186 012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON 187 012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK 188 0399;Iota;GREEK CAPITAL LETTER IOTA 189 03AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 190 038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS 191 0128;Itilde;LATIN CAPITAL LETTER I WITH TILDE 192 004A;J;LATIN CAPITAL LETTER J 193 0134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX 194 004B;K;LATIN CAPITAL LETTER K 195 039A;Kappa;GREEK CAPITAL LETTER KAPPA 196 004C;L;LATIN CAPITAL LETTER L 197 0139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE 198 039B;Lambda;GREEK CAPITAL LETTER LAMDA 199 013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON 200 013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT 201 0141;Lslash;LATIN CAPITAL LETTER L WITH STROKE 202 004D;M;LATIN CAPITAL LETTER M 203 039C;Mu;GREEK CAPITAL LETTER MU 204 004E;N;LATIN CAPITAL LETTER N 205 0143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE 206 0147;Ncaron;LATIN CAPITAL LETTER N WITH CARON 207 00D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE 208 039D;Nu;GREEK CAPITAL LETTER NU 209 004F;O;LATIN CAPITAL LETTER O 210 0152;OE;LATIN CAPITAL LIGATURE OE 211 00D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE 212 014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE 213 00D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX 214 00D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS 215 00D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE 216 01A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN 217 0150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 218 014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON 219 2126;Omega;OHM SIGN 220 038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS 221 039F;Omicron;GREEK CAPITAL LETTER OMICRON 222 038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS 223 00D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE 224 01FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 225 00D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE 226 0050;P;LATIN CAPITAL LETTER P 227 03A6;Phi;GREEK CAPITAL LETTER PHI 228 03A0;Pi;GREEK CAPITAL LETTER PI 229 03A8;Psi;GREEK CAPITAL LETTER PSI 230 0051;Q;LATIN CAPITAL LETTER Q 231 0052;R;LATIN CAPITAL LETTER R 232 0154;Racute;LATIN CAPITAL LETTER R WITH ACUTE 233 0158;Rcaron;LATIN CAPITAL LETTER R WITH CARON 234 211C;Rfraktur;BLACK-LETTER CAPITAL R 235 03A1;Rho;GREEK CAPITAL LETTER RHO 236 0053;S;LATIN CAPITAL LETTER S 237 250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT 238 2514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT 239 2510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT 240 2518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT 241 253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 242 252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 243 2534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL 244 251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT 245 2524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT 246 2500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL 247 2502;SF110000;BOX DRAWINGS LIGHT VERTICAL 248 2561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE 249 2562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE 250 2556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE 251 2555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE 252 2563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT 253 2551;SF240000;BOX DRAWINGS DOUBLE VERTICAL 254 2557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT 255 255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT 256 255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE 257 255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE 258 255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE 259 255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE 260 255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT 261 2554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT 262 2569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL 263 2566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL 264 2560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT 265 2550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL 266 256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL 267 2567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE 268 2568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE 269 2564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE 270 2565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE 271 2559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE 272 2558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE 273 2552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE 274 2553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE 275 256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE 276 256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE 277 015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE 278 0160;Scaron;LATIN CAPITAL LETTER S WITH CARON 279 015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA 280 015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX 281 03A3;Sigma;GREEK CAPITAL LETTER SIGMA 282 0054;T;LATIN CAPITAL LETTER T 283 03A4;Tau;GREEK CAPITAL LETTER TAU 284 0166;Tbar;LATIN CAPITAL LETTER T WITH STROKE 285 0164;Tcaron;LATIN CAPITAL LETTER T WITH CARON 286 0398;Theta;GREEK CAPITAL LETTER THETA 287 00DE;Thorn;LATIN CAPITAL LETTER THORN 288 0055;U;LATIN CAPITAL LETTER U 289 00DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE 290 016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE 291 00DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX 292 00DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS 293 00D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE 294 01AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN 295 0170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 296 016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON 297 0172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK 298 03A5;Upsilon;GREEK CAPITAL LETTER UPSILON 299 03D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL 300 03AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 301 038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS 302 016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE 303 0168;Utilde;LATIN CAPITAL LETTER U WITH TILDE 304 0056;V;LATIN CAPITAL LETTER V 305 0057;W;LATIN CAPITAL LETTER W 306 1E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE 307 0174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX 308 1E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS 309 1E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE 310 0058;X;LATIN CAPITAL LETTER X 311 039E;Xi;GREEK CAPITAL LETTER XI 312 0059;Y;LATIN CAPITAL LETTER Y 313 00DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE 314 0176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 315 0178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS 316 1EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE 317 005A;Z;LATIN CAPITAL LETTER Z 318 0179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE 319 017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON 320 017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE 321 0396;Zeta;GREEK CAPITAL LETTER ZETA 322 0061;a;LATIN SMALL LETTER A 323 00E1;aacute;LATIN SMALL LETTER A WITH ACUTE 324 0103;abreve;LATIN SMALL LETTER A WITH BREVE 325 00E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX 326 00B4;acute;ACUTE ACCENT 327 0301;acutecomb;COMBINING ACUTE ACCENT 328 00E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS 329 00E6;ae;LATIN SMALL LETTER AE 330 01FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE 331 00E0;agrave;LATIN SMALL LETTER A WITH GRAVE 332 2135;aleph;ALEF SYMBOL 333 03B1;alpha;GREEK SMALL LETTER ALPHA 334 03AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS 335 0101;amacron;LATIN SMALL LETTER A WITH MACRON 336 0026;ampersand;AMPERSAND 337 2220;angle;ANGLE 338 2329;angleleft;LEFT-POINTING ANGLE BRACKET 339 232A;angleright;RIGHT-POINTING ANGLE BRACKET 340 0387;anoteleia;GREEK ANO TELEIA 341 0105;aogonek;LATIN SMALL LETTER A WITH OGONEK 342 2248;approxequal;ALMOST EQUAL TO 343 00E5;aring;LATIN SMALL LETTER A WITH RING ABOVE 344 01FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE 345 2194;arrowboth;LEFT RIGHT ARROW 346 21D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW 347 21D3;arrowdbldown;DOWNWARDS DOUBLE ARROW 348 21D0;arrowdblleft;LEFTWARDS DOUBLE ARROW 349 21D2;arrowdblright;RIGHTWARDS DOUBLE ARROW 350 21D1;arrowdblup;UPWARDS DOUBLE ARROW 351 2193;arrowdown;DOWNWARDS ARROW 352 2190;arrowleft;LEFTWARDS ARROW 353 2192;arrowright;RIGHTWARDS ARROW 354 2191;arrowup;UPWARDS ARROW 355 2195;arrowupdn;UP DOWN ARROW 356 21A8;arrowupdnbse;UP DOWN ARROW WITH BASE 357 005E;asciicircum;CIRCUMFLEX ACCENT 358 007E;asciitilde;TILDE 359 002A;asterisk;ASTERISK 360 2217;asteriskmath;ASTERISK OPERATOR 361 0040;at;COMMERCIAL AT 362 00E3;atilde;LATIN SMALL LETTER A WITH TILDE 363 0062;b;LATIN SMALL LETTER B 364 005C;backslash;REVERSE SOLIDUS 365 007C;bar;VERTICAL LINE 366 03B2;beta;GREEK SMALL LETTER BETA 367 2588;block;FULL BLOCK 368 007B;braceleft;LEFT CURLY BRACKET 369 007D;braceright;RIGHT CURLY BRACKET 370 005B;bracketleft;LEFT SQUARE BRACKET 371 005D;bracketright;RIGHT SQUARE BRACKET 372 02D8;breve;BREVE 373 00A6;brokenbar;BROKEN BAR 374 2022;bullet;BULLET 375 0063;c;LATIN SMALL LETTER C 376 0107;cacute;LATIN SMALL LETTER C WITH ACUTE 377 02C7;caron;CARON 378 21B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS 379 010D;ccaron;LATIN SMALL LETTER C WITH CARON 380 00E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA 381 0109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX 382 010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE 383 00B8;cedilla;CEDILLA 384 00A2;cent;CENT SIGN 385 03C7;chi;GREEK SMALL LETTER CHI 386 25CB;circle;WHITE CIRCLE 387 2297;circlemultiply;CIRCLED TIMES 388 2295;circleplus;CIRCLED PLUS 389 02C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT 390 2663;club;BLACK CLUB SUIT 391 003A;colon;COLON 392 20A1;colonmonetary;COLON SIGN 393 002C;comma;COMMA 394 2245;congruent;APPROXIMATELY EQUAL TO 395 00A9;copyright;COPYRIGHT SIGN 396 00A4;currency;CURRENCY SIGN 397 0064;d;LATIN SMALL LETTER D 398 2020;dagger;DAGGER 399 2021;daggerdbl;DOUBLE DAGGER 400 010F;dcaron;LATIN SMALL LETTER D WITH CARON 401 0111;dcroat;LATIN SMALL LETTER D WITH STROKE 402 00B0;degree;DEGREE SIGN 403 03B4;delta;GREEK SMALL LETTER DELTA 404 2666;diamond;BLACK DIAMOND SUIT 405 00A8;dieresis;DIAERESIS 406 0385;dieresistonos;GREEK DIALYTIKA TONOS 407 00F7;divide;DIVISION SIGN 408 2593;dkshade;DARK SHADE 409 2584;dnblock;LOWER HALF BLOCK 410 0024;dollar;DOLLAR SIGN 411 20AB;dong;DONG SIGN 412 02D9;dotaccent;DOT ABOVE 413 0323;dotbelowcomb;COMBINING DOT BELOW 414 0131;dotlessi;LATIN SMALL LETTER DOTLESS I 415 22C5;dotmath;DOT OPERATOR 416 0065;e;LATIN SMALL LETTER E 417 00E9;eacute;LATIN SMALL LETTER E WITH ACUTE 418 0115;ebreve;LATIN SMALL LETTER E WITH BREVE 419 011B;ecaron;LATIN SMALL LETTER E WITH CARON 420 00EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX 421 00EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS 422 0117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE 423 00E8;egrave;LATIN SMALL LETTER E WITH GRAVE 424 0038;eight;DIGIT EIGHT 425 2208;element;ELEMENT OF 426 2026;ellipsis;HORIZONTAL ELLIPSIS 427 0113;emacron;LATIN SMALL LETTER E WITH MACRON 428 2014;emdash;EM DASH 429 2205;emptyset;EMPTY SET 430 2013;endash;EN DASH 431 014B;eng;LATIN SMALL LETTER ENG 432 0119;eogonek;LATIN SMALL LETTER E WITH OGONEK 433 03B5;epsilon;GREEK SMALL LETTER EPSILON 434 03AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS 435 003D;equal;EQUALS SIGN 436 2261;equivalence;IDENTICAL TO 437 212E;estimated;ESTIMATED SYMBOL 438 03B7;eta;GREEK SMALL LETTER ETA 439 03AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS 440 00F0;eth;LATIN SMALL LETTER ETH 441 0021;exclam;EXCLAMATION MARK 442 203C;exclamdbl;DOUBLE EXCLAMATION MARK 443 00A1;exclamdown;INVERTED EXCLAMATION MARK 444 2203;existential;THERE EXISTS 445 0066;f;LATIN SMALL LETTER F 446 2640;female;FEMALE SIGN 447 2012;figuredash;FIGURE DASH 448 25A0;filledbox;BLACK SQUARE 449 25AC;filledrect;BLACK RECTANGLE 450 0035;five;DIGIT FIVE 451 215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS 452 0192;florin;LATIN SMALL LETTER F WITH HOOK 453 0034;four;DIGIT FOUR 454 2044;fraction;FRACTION SLASH 455 20A3;franc;FRENCH FRANC SIGN 456 0067;g;LATIN SMALL LETTER G 457 03B3;gamma;GREEK SMALL LETTER GAMMA 458 011F;gbreve;LATIN SMALL LETTER G WITH BREVE 459 01E7;gcaron;LATIN SMALL LETTER G WITH CARON 460 011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX 461 0121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE 462 00DF;germandbls;LATIN SMALL LETTER SHARP S 463 2207;gradient;NABLA 464 0060;grave;GRAVE ACCENT 465 0300;gravecomb;COMBINING GRAVE ACCENT 466 003E;greater;GREATER-THAN SIGN 467 2265;greaterequal;GREATER-THAN OR EQUAL TO 468 00AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 469 00BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 470 2039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK 471 203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 472 0068;h;LATIN SMALL LETTER H 473 0127;hbar;LATIN SMALL LETTER H WITH STROKE 474 0125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX 475 2665;heart;BLACK HEART SUIT 476 0309;hookabovecomb;COMBINING HOOK ABOVE 477 2302;house;HOUSE 478 02DD;hungarumlaut;DOUBLE ACUTE ACCENT 479 002D;hyphen;HYPHEN-MINUS 480 0069;i;LATIN SMALL LETTER I 481 00ED;iacute;LATIN SMALL LETTER I WITH ACUTE 482 012D;ibreve;LATIN SMALL LETTER I WITH BREVE 483 00EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX 484 00EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS 485 00EC;igrave;LATIN SMALL LETTER I WITH GRAVE 486 0133;ij;LATIN SMALL LIGATURE IJ 487 012B;imacron;LATIN SMALL LETTER I WITH MACRON 488 221E;infinity;INFINITY 489 222B;integral;INTEGRAL 490 2321;integralbt;BOTTOM HALF INTEGRAL 491 2320;integraltp;TOP HALF INTEGRAL 492 2229;intersection;INTERSECTION 493 25D8;invbullet;INVERSE BULLET 494 25D9;invcircle;INVERSE WHITE CIRCLE 495 263B;invsmileface;BLACK SMILING FACE 496 012F;iogonek;LATIN SMALL LETTER I WITH OGONEK 497 03B9;iota;GREEK SMALL LETTER IOTA 498 03CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA 499 0390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 500 03AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS 501 0129;itilde;LATIN SMALL LETTER I WITH TILDE 502 006A;j;LATIN SMALL LETTER J 503 0135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX 504 006B;k;LATIN SMALL LETTER K 505 03BA;kappa;GREEK SMALL LETTER KAPPA 506 0138;kgreenlandic;LATIN SMALL LETTER KRA 507 006C;l;LATIN SMALL LETTER L 508 013A;lacute;LATIN SMALL LETTER L WITH ACUTE 509 03BB;lambda;GREEK SMALL LETTER LAMDA 510 013E;lcaron;LATIN SMALL LETTER L WITH CARON 511 0140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT 512 003C;less;LESS-THAN SIGN 513 2264;lessequal;LESS-THAN OR EQUAL TO 514 258C;lfblock;LEFT HALF BLOCK 515 20A4;lira;LIRA SIGN 516 2227;logicaland;LOGICAL AND 517 00AC;logicalnot;NOT SIGN 518 2228;logicalor;LOGICAL OR 519 017F;longs;LATIN SMALL LETTER LONG S 520 25CA;lozenge;LOZENGE 521 0142;lslash;LATIN SMALL LETTER L WITH STROKE 522 2591;ltshade;LIGHT SHADE 523 006D;m;LATIN SMALL LETTER M 524 00AF;macron;MACRON 525 2642;male;MALE SIGN 526 2212;minus;MINUS SIGN 527 2032;minute;PRIME 528 00B5;mu;MICRO SIGN 529 00D7;multiply;MULTIPLICATION SIGN 530 266A;musicalnote;EIGHTH NOTE 531 266B;musicalnotedbl;BEAMED EIGHTH NOTES 532 006E;n;LATIN SMALL LETTER N 533 0144;nacute;LATIN SMALL LETTER N WITH ACUTE 534 0149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 535 0148;ncaron;LATIN SMALL LETTER N WITH CARON 536 0039;nine;DIGIT NINE 537 2209;notelement;NOT AN ELEMENT OF 538 2260;notequal;NOT EQUAL TO 539 2284;notsubset;NOT A SUBSET OF 540 00F1;ntilde;LATIN SMALL LETTER N WITH TILDE 541 03BD;nu;GREEK SMALL LETTER NU 542 0023;numbersign;NUMBER SIGN 543 006F;o;LATIN SMALL LETTER O 544 00F3;oacute;LATIN SMALL LETTER O WITH ACUTE 545 014F;obreve;LATIN SMALL LETTER O WITH BREVE 546 00F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX 547 00F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS 548 0153;oe;LATIN SMALL LIGATURE OE 549 02DB;ogonek;OGONEK 550 00F2;ograve;LATIN SMALL LETTER O WITH GRAVE 551 01A1;ohorn;LATIN SMALL LETTER O WITH HORN 552 0151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE 553 014D;omacron;LATIN SMALL LETTER O WITH MACRON 554 03C9;omega;GREEK SMALL LETTER OMEGA 555 03D6;omega1;GREEK PI SYMBOL 556 03CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS 557 03BF;omicron;GREEK SMALL LETTER OMICRON 558 03CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS 559 0031;one;DIGIT ONE 560 2024;onedotenleader;ONE DOT LEADER 561 215B;oneeighth;VULGAR FRACTION ONE EIGHTH 562 00BD;onehalf;VULGAR FRACTION ONE HALF 563 00BC;onequarter;VULGAR FRACTION ONE QUARTER 564 2153;onethird;VULGAR FRACTION ONE THIRD 565 25E6;openbullet;WHITE BULLET 566 00AA;ordfeminine;FEMININE ORDINAL INDICATOR 567 00BA;ordmasculine;MASCULINE ORDINAL INDICATOR 568 221F;orthogonal;RIGHT ANGLE 569 00F8;oslash;LATIN SMALL LETTER O WITH STROKE 570 01FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE 571 00F5;otilde;LATIN SMALL LETTER O WITH TILDE 572 0070;p;LATIN SMALL LETTER P 573 00B6;paragraph;PILCROW SIGN 574 0028;parenleft;LEFT PARENTHESIS 575 0029;parenright;RIGHT PARENTHESIS 576 2202;partialdiff;PARTIAL DIFFERENTIAL 577 0025;percent;PERCENT SIGN 578 002E;period;FULL STOP 579 00B7;periodcentered;MIDDLE DOT 580 22A5;perpendicular;UP TACK 581 2030;perthousand;PER MILLE SIGN 582 20A7;peseta;PESETA SIGN 583 03C6;phi;GREEK SMALL LETTER PHI 584 03D5;phi1;GREEK PHI SYMBOL 585 03C0;pi;GREEK SMALL LETTER PI 586 002B;plus;PLUS SIGN 587 00B1;plusminus;PLUS-MINUS SIGN 588 211E;prescription;PRESCRIPTION TAKE 589 220F;product;N-ARY PRODUCT 590 2282;propersubset;SUBSET OF 591 2283;propersuperset;SUPERSET OF 592 221D;proportional;PROPORTIONAL TO 593 03C8;psi;GREEK SMALL LETTER PSI 594 0071;q;LATIN SMALL LETTER Q 595 003F;question;QUESTION MARK 596 00BF;questiondown;INVERTED QUESTION MARK 597 0022;quotedbl;QUOTATION MARK 598 201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK 599 201C;quotedblleft;LEFT DOUBLE QUOTATION MARK 600 201D;quotedblright;RIGHT DOUBLE QUOTATION MARK 601 2018;quoteleft;LEFT SINGLE QUOTATION MARK 602 201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK 603 2019;quoteright;RIGHT SINGLE QUOTATION MARK 604 201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK 605 0027;quotesingle;APOSTROPHE 606 0072;r;LATIN SMALL LETTER R 607 0155;racute;LATIN SMALL LETTER R WITH ACUTE 608 221A;radical;SQUARE ROOT 609 0159;rcaron;LATIN SMALL LETTER R WITH CARON 610 2286;reflexsubset;SUBSET OF OR EQUAL TO 611 2287;reflexsuperset;SUPERSET OF OR EQUAL TO 612 00AE;registered;REGISTERED SIGN 613 2310;revlogicalnot;REVERSED NOT SIGN 614 03C1;rho;GREEK SMALL LETTER RHO 615 02DA;ring;RING ABOVE 616 2590;rtblock;RIGHT HALF BLOCK 617 0073;s;LATIN SMALL LETTER S 618 015B;sacute;LATIN SMALL LETTER S WITH ACUTE 619 0161;scaron;LATIN SMALL LETTER S WITH CARON 620 015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA 621 015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX 622 2033;second;DOUBLE PRIME 623 00A7;section;SECTION SIGN 624 003B;semicolon;SEMICOLON 625 0037;seven;DIGIT SEVEN 626 215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS 627 2592;shade;MEDIUM SHADE 628 03C3;sigma;GREEK SMALL LETTER SIGMA 629 03C2;sigma1;GREEK SMALL LETTER FINAL SIGMA 630 223C;similar;TILDE OPERATOR 631 0036;six;DIGIT SIX 632 002F;slash;SOLIDUS 633 263A;smileface;WHITE SMILING FACE 634 0020;space;SPACE 635 2660;spade;BLACK SPADE SUIT 636 00A3;sterling;POUND SIGN 637 220B;suchthat;CONTAINS AS MEMBER 638 2211;summation;N-ARY SUMMATION 639 263C;sun;WHITE SUN WITH RAYS 640 0074;t;LATIN SMALL LETTER T 641 03C4;tau;GREEK SMALL LETTER TAU 642 0167;tbar;LATIN SMALL LETTER T WITH STROKE 643 0165;tcaron;LATIN SMALL LETTER T WITH CARON 644 2234;therefore;THEREFORE 645 03B8;theta;GREEK SMALL LETTER THETA 646 03D1;theta1;GREEK THETA SYMBOL 647 00FE;thorn;LATIN SMALL LETTER THORN 648 0033;three;DIGIT THREE 649 215C;threeeighths;VULGAR FRACTION THREE EIGHTHS 650 00BE;threequarters;VULGAR FRACTION THREE QUARTERS 651 02DC;tilde;SMALL TILDE 652 0303;tildecomb;COMBINING TILDE 653 0384;tonos;GREEK TONOS 654 2122;trademark;TRADE MARK SIGN 655 25BC;triagdn;BLACK DOWN-POINTING TRIANGLE 656 25C4;triaglf;BLACK LEFT-POINTING POINTER 657 25BA;triagrt;BLACK RIGHT-POINTING POINTER 658 25B2;triagup;BLACK UP-POINTING TRIANGLE 659 0032;two;DIGIT TWO 660 2025;twodotenleader;TWO DOT LEADER 661 2154;twothirds;VULGAR FRACTION TWO THIRDS 662 0075;u;LATIN SMALL LETTER U 663 00FA;uacute;LATIN SMALL LETTER U WITH ACUTE 664 016D;ubreve;LATIN SMALL LETTER U WITH BREVE 665 00FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX 666 00FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS 667 00F9;ugrave;LATIN SMALL LETTER U WITH GRAVE 668 01B0;uhorn;LATIN SMALL LETTER U WITH HORN 669 0171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE 670 016B;umacron;LATIN SMALL LETTER U WITH MACRON 671 005F;underscore;LOW LINE 672 2017;underscoredbl;DOUBLE LOW LINE 673 222A;union;UNION 674 2200;universal;FOR ALL 675 0173;uogonek;LATIN SMALL LETTER U WITH OGONEK 676 2580;upblock;UPPER HALF BLOCK 677 03C5;upsilon;GREEK SMALL LETTER UPSILON 678 03CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA 679 03B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 680 03CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS 681 016F;uring;LATIN SMALL LETTER U WITH RING ABOVE 682 0169;utilde;LATIN SMALL LETTER U WITH TILDE 683 0076;v;LATIN SMALL LETTER V 684 0077;w;LATIN SMALL LETTER W 685 1E83;wacute;LATIN SMALL LETTER W WITH ACUTE 686 0175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX 687 1E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS 688 2118;weierstrass;SCRIPT CAPITAL P 689 1E81;wgrave;LATIN SMALL LETTER W WITH GRAVE 690 0078;x;LATIN SMALL LETTER X 691 03BE;xi;GREEK SMALL LETTER XI 692 0079;y;LATIN SMALL LETTER Y 693 00FD;yacute;LATIN SMALL LETTER Y WITH ACUTE 694 0177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX 695 00FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS 696 00A5;yen;YEN SIGN 697 1EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE 698 007A;z;LATIN SMALL LETTER Z 699 017A;zacute;LATIN SMALL LETTER Z WITH ACUTE 700 017E;zcaron;LATIN SMALL LETTER Z WITH CARON 701 017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE 702 0030;zero;DIGIT ZERO 703 03B6;zeta;GREEK SMALL LETTER ZETA 704 #END 705 """ 706 707 708 AGLError = "AGLError" 709 710 AGL2UV = {} 711 UV2AGL = {} 712 713 def _builddicts(): 714 import re 715 716 lines = _aglText.splitlines() 717 718 parseAGL_RE = re.compile("([0-9A-F]{4});([A-Za-z_0-9.]+);.*?$") 719 720 for line in lines: 721 if not line or line[:1] == '#': 722 continue 723 m = parseAGL_RE.match(line) 724 if not m: 725 raise AGLError("syntax error in glyphlist.txt: %s" % repr(line[:20])) 726 unicode = m.group(1) 727 assert len(unicode) == 4 728 unicode = int(unicode, 16) 729 glyphName = m.group(2) 730 if glyphName in AGL2UV: 731 # the above table contains identical duplicates 732 assert AGL2UV[glyphName] == unicode 733 else: 734 AGL2UV[glyphName] = unicode 735 UV2AGL[unicode] = glyphName 736 737 _builddicts() 738