1# The table below is taken from 2# http://www.adobe.com/devnet/opentype/archives/aglfn.txt 3 4from __future__ import print_function, division, absolute_import 5from 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# 1180041;A;LATIN CAPITAL LETTER A 11900C6;AE;LATIN CAPITAL LETTER AE 12001FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE 12100C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE 1220102;Abreve;LATIN CAPITAL LETTER A WITH BREVE 12300C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX 12400C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS 12500C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE 1260391;Alpha;GREEK CAPITAL LETTER ALPHA 1270386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS 1280100;Amacron;LATIN CAPITAL LETTER A WITH MACRON 1290104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK 13000C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE 13101FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 13200C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE 1330042;B;LATIN CAPITAL LETTER B 1340392;Beta;GREEK CAPITAL LETTER BETA 1350043;C;LATIN CAPITAL LETTER C 1360106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE 137010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON 13800C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA 1390108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX 140010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE 14103A7;Chi;GREEK CAPITAL LETTER CHI 1420044;D;LATIN CAPITAL LETTER D 143010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON 1440110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE 1452206;Delta;INCREMENT 1460045;E;LATIN CAPITAL LETTER E 14700C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE 1480114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE 149011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON 15000CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX 15100CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS 1520116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE 15300C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE 1540112;Emacron;LATIN CAPITAL LETTER E WITH MACRON 155014A;Eng;LATIN CAPITAL LETTER ENG 1560118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK 1570395;Epsilon;GREEK CAPITAL LETTER EPSILON 1580388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS 1590397;Eta;GREEK CAPITAL LETTER ETA 1600389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS 16100D0;Eth;LATIN CAPITAL LETTER ETH 16220AC;Euro;EURO SIGN 1630046;F;LATIN CAPITAL LETTER F 1640047;G;LATIN CAPITAL LETTER G 1650393;Gamma;GREEK CAPITAL LETTER GAMMA 166011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE 16701E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON 168011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX 1690120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE 1700048;H;LATIN CAPITAL LETTER H 17125CF;H18533;BLACK CIRCLE 17225AA;H18543;BLACK SMALL SQUARE 17325AB;H18551;WHITE SMALL SQUARE 17425A1;H22073;WHITE SQUARE 1750126;Hbar;LATIN CAPITAL LETTER H WITH STROKE 1760124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX 1770049;I;LATIN CAPITAL LETTER I 1780132;IJ;LATIN CAPITAL LIGATURE IJ 17900CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE 180012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE 18100CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX 18200CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS 1830130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE 1842111;Ifraktur;BLACK-LETTER CAPITAL I 18500CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE 186012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON 187012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK 1880399;Iota;GREEK CAPITAL LETTER IOTA 18903AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 190038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS 1910128;Itilde;LATIN CAPITAL LETTER I WITH TILDE 192004A;J;LATIN CAPITAL LETTER J 1930134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX 194004B;K;LATIN CAPITAL LETTER K 195039A;Kappa;GREEK CAPITAL LETTER KAPPA 196004C;L;LATIN CAPITAL LETTER L 1970139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE 198039B;Lambda;GREEK CAPITAL LETTER LAMDA 199013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON 200013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT 2010141;Lslash;LATIN CAPITAL LETTER L WITH STROKE 202004D;M;LATIN CAPITAL LETTER M 203039C;Mu;GREEK CAPITAL LETTER MU 204004E;N;LATIN CAPITAL LETTER N 2050143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE 2060147;Ncaron;LATIN CAPITAL LETTER N WITH CARON 20700D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE 208039D;Nu;GREEK CAPITAL LETTER NU 209004F;O;LATIN CAPITAL LETTER O 2100152;OE;LATIN CAPITAL LIGATURE OE 21100D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE 212014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE 21300D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX 21400D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS 21500D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE 21601A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN 2170150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 218014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON 2192126;Omega;OHM SIGN 220038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS 221039F;Omicron;GREEK CAPITAL LETTER OMICRON 222038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS 22300D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE 22401FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 22500D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE 2260050;P;LATIN CAPITAL LETTER P 22703A6;Phi;GREEK CAPITAL LETTER PHI 22803A0;Pi;GREEK CAPITAL LETTER PI 22903A8;Psi;GREEK CAPITAL LETTER PSI 2300051;Q;LATIN CAPITAL LETTER Q 2310052;R;LATIN CAPITAL LETTER R 2320154;Racute;LATIN CAPITAL LETTER R WITH ACUTE 2330158;Rcaron;LATIN CAPITAL LETTER R WITH CARON 234211C;Rfraktur;BLACK-LETTER CAPITAL R 23503A1;Rho;GREEK CAPITAL LETTER RHO 2360053;S;LATIN CAPITAL LETTER S 237250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT 2382514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT 2392510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT 2402518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT 241253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 242252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 2432534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL 244251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT 2452524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT 2462500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL 2472502;SF110000;BOX DRAWINGS LIGHT VERTICAL 2482561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE 2492562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE 2502556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE 2512555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE 2522563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT 2532551;SF240000;BOX DRAWINGS DOUBLE VERTICAL 2542557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT 255255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT 256255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE 257255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE 258255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE 259255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE 260255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT 2612554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT 2622569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL 2632566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL 2642560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT 2652550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL 266256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL 2672567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE 2682568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE 2692564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE 2702565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE 2712559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE 2722558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE 2732552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE 2742553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE 275256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE 276256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE 277015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE 2780160;Scaron;LATIN CAPITAL LETTER S WITH CARON 279015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA 280015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX 28103A3;Sigma;GREEK CAPITAL LETTER SIGMA 2820054;T;LATIN CAPITAL LETTER T 28303A4;Tau;GREEK CAPITAL LETTER TAU 2840166;Tbar;LATIN CAPITAL LETTER T WITH STROKE 2850164;Tcaron;LATIN CAPITAL LETTER T WITH CARON 2860398;Theta;GREEK CAPITAL LETTER THETA 28700DE;Thorn;LATIN CAPITAL LETTER THORN 2880055;U;LATIN CAPITAL LETTER U 28900DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE 290016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE 29100DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX 29200DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS 29300D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE 29401AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN 2950170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 296016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON 2970172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK 29803A5;Upsilon;GREEK CAPITAL LETTER UPSILON 29903D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL 30003AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 301038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS 302016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE 3030168;Utilde;LATIN CAPITAL LETTER U WITH TILDE 3040056;V;LATIN CAPITAL LETTER V 3050057;W;LATIN CAPITAL LETTER W 3061E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE 3070174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX 3081E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS 3091E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE 3100058;X;LATIN CAPITAL LETTER X 311039E;Xi;GREEK CAPITAL LETTER XI 3120059;Y;LATIN CAPITAL LETTER Y 31300DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE 3140176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 3150178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS 3161EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE 317005A;Z;LATIN CAPITAL LETTER Z 3180179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE 319017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON 320017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE 3210396;Zeta;GREEK CAPITAL LETTER ZETA 3220061;a;LATIN SMALL LETTER A 32300E1;aacute;LATIN SMALL LETTER A WITH ACUTE 3240103;abreve;LATIN SMALL LETTER A WITH BREVE 32500E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX 32600B4;acute;ACUTE ACCENT 3270301;acutecomb;COMBINING ACUTE ACCENT 32800E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS 32900E6;ae;LATIN SMALL LETTER AE 33001FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE 33100E0;agrave;LATIN SMALL LETTER A WITH GRAVE 3322135;aleph;ALEF SYMBOL 33303B1;alpha;GREEK SMALL LETTER ALPHA 33403AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS 3350101;amacron;LATIN SMALL LETTER A WITH MACRON 3360026;ampersand;AMPERSAND 3372220;angle;ANGLE 3382329;angleleft;LEFT-POINTING ANGLE BRACKET 339232A;angleright;RIGHT-POINTING ANGLE BRACKET 3400387;anoteleia;GREEK ANO TELEIA 3410105;aogonek;LATIN SMALL LETTER A WITH OGONEK 3422248;approxequal;ALMOST EQUAL TO 34300E5;aring;LATIN SMALL LETTER A WITH RING ABOVE 34401FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE 3452194;arrowboth;LEFT RIGHT ARROW 34621D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW 34721D3;arrowdbldown;DOWNWARDS DOUBLE ARROW 34821D0;arrowdblleft;LEFTWARDS DOUBLE ARROW 34921D2;arrowdblright;RIGHTWARDS DOUBLE ARROW 35021D1;arrowdblup;UPWARDS DOUBLE ARROW 3512193;arrowdown;DOWNWARDS ARROW 3522190;arrowleft;LEFTWARDS ARROW 3532192;arrowright;RIGHTWARDS ARROW 3542191;arrowup;UPWARDS ARROW 3552195;arrowupdn;UP DOWN ARROW 35621A8;arrowupdnbse;UP DOWN ARROW WITH BASE 357005E;asciicircum;CIRCUMFLEX ACCENT 358007E;asciitilde;TILDE 359002A;asterisk;ASTERISK 3602217;asteriskmath;ASTERISK OPERATOR 3610040;at;COMMERCIAL AT 36200E3;atilde;LATIN SMALL LETTER A WITH TILDE 3630062;b;LATIN SMALL LETTER B 364005C;backslash;REVERSE SOLIDUS 365007C;bar;VERTICAL LINE 36603B2;beta;GREEK SMALL LETTER BETA 3672588;block;FULL BLOCK 368007B;braceleft;LEFT CURLY BRACKET 369007D;braceright;RIGHT CURLY BRACKET 370005B;bracketleft;LEFT SQUARE BRACKET 371005D;bracketright;RIGHT SQUARE BRACKET 37202D8;breve;BREVE 37300A6;brokenbar;BROKEN BAR 3742022;bullet;BULLET 3750063;c;LATIN SMALL LETTER C 3760107;cacute;LATIN SMALL LETTER C WITH ACUTE 37702C7;caron;CARON 37821B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS 379010D;ccaron;LATIN SMALL LETTER C WITH CARON 38000E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA 3810109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX 382010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE 38300B8;cedilla;CEDILLA 38400A2;cent;CENT SIGN 38503C7;chi;GREEK SMALL LETTER CHI 38625CB;circle;WHITE CIRCLE 3872297;circlemultiply;CIRCLED TIMES 3882295;circleplus;CIRCLED PLUS 38902C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT 3902663;club;BLACK CLUB SUIT 391003A;colon;COLON 39220A1;colonmonetary;COLON SIGN 393002C;comma;COMMA 3942245;congruent;APPROXIMATELY EQUAL TO 39500A9;copyright;COPYRIGHT SIGN 39600A4;currency;CURRENCY SIGN 3970064;d;LATIN SMALL LETTER D 3982020;dagger;DAGGER 3992021;daggerdbl;DOUBLE DAGGER 400010F;dcaron;LATIN SMALL LETTER D WITH CARON 4010111;dcroat;LATIN SMALL LETTER D WITH STROKE 40200B0;degree;DEGREE SIGN 40303B4;delta;GREEK SMALL LETTER DELTA 4042666;diamond;BLACK DIAMOND SUIT 40500A8;dieresis;DIAERESIS 4060385;dieresistonos;GREEK DIALYTIKA TONOS 40700F7;divide;DIVISION SIGN 4082593;dkshade;DARK SHADE 4092584;dnblock;LOWER HALF BLOCK 4100024;dollar;DOLLAR SIGN 41120AB;dong;DONG SIGN 41202D9;dotaccent;DOT ABOVE 4130323;dotbelowcomb;COMBINING DOT BELOW 4140131;dotlessi;LATIN SMALL LETTER DOTLESS I 41522C5;dotmath;DOT OPERATOR 4160065;e;LATIN SMALL LETTER E 41700E9;eacute;LATIN SMALL LETTER E WITH ACUTE 4180115;ebreve;LATIN SMALL LETTER E WITH BREVE 419011B;ecaron;LATIN SMALL LETTER E WITH CARON 42000EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX 42100EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS 4220117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE 42300E8;egrave;LATIN SMALL LETTER E WITH GRAVE 4240038;eight;DIGIT EIGHT 4252208;element;ELEMENT OF 4262026;ellipsis;HORIZONTAL ELLIPSIS 4270113;emacron;LATIN SMALL LETTER E WITH MACRON 4282014;emdash;EM DASH 4292205;emptyset;EMPTY SET 4302013;endash;EN DASH 431014B;eng;LATIN SMALL LETTER ENG 4320119;eogonek;LATIN SMALL LETTER E WITH OGONEK 43303B5;epsilon;GREEK SMALL LETTER EPSILON 43403AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS 435003D;equal;EQUALS SIGN 4362261;equivalence;IDENTICAL TO 437212E;estimated;ESTIMATED SYMBOL 43803B7;eta;GREEK SMALL LETTER ETA 43903AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS 44000F0;eth;LATIN SMALL LETTER ETH 4410021;exclam;EXCLAMATION MARK 442203C;exclamdbl;DOUBLE EXCLAMATION MARK 44300A1;exclamdown;INVERTED EXCLAMATION MARK 4442203;existential;THERE EXISTS 4450066;f;LATIN SMALL LETTER F 4462640;female;FEMALE SIGN 4472012;figuredash;FIGURE DASH 44825A0;filledbox;BLACK SQUARE 44925AC;filledrect;BLACK RECTANGLE 4500035;five;DIGIT FIVE 451215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS 4520192;florin;LATIN SMALL LETTER F WITH HOOK 4530034;four;DIGIT FOUR 4542044;fraction;FRACTION SLASH 45520A3;franc;FRENCH FRANC SIGN 4560067;g;LATIN SMALL LETTER G 45703B3;gamma;GREEK SMALL LETTER GAMMA 458011F;gbreve;LATIN SMALL LETTER G WITH BREVE 45901E7;gcaron;LATIN SMALL LETTER G WITH CARON 460011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX 4610121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE 46200DF;germandbls;LATIN SMALL LETTER SHARP S 4632207;gradient;NABLA 4640060;grave;GRAVE ACCENT 4650300;gravecomb;COMBINING GRAVE ACCENT 466003E;greater;GREATER-THAN SIGN 4672265;greaterequal;GREATER-THAN OR EQUAL TO 46800AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 46900BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 4702039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK 471203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 4720068;h;LATIN SMALL LETTER H 4730127;hbar;LATIN SMALL LETTER H WITH STROKE 4740125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX 4752665;heart;BLACK HEART SUIT 4760309;hookabovecomb;COMBINING HOOK ABOVE 4772302;house;HOUSE 47802DD;hungarumlaut;DOUBLE ACUTE ACCENT 479002D;hyphen;HYPHEN-MINUS 4800069;i;LATIN SMALL LETTER I 48100ED;iacute;LATIN SMALL LETTER I WITH ACUTE 482012D;ibreve;LATIN SMALL LETTER I WITH BREVE 48300EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX 48400EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS 48500EC;igrave;LATIN SMALL LETTER I WITH GRAVE 4860133;ij;LATIN SMALL LIGATURE IJ 487012B;imacron;LATIN SMALL LETTER I WITH MACRON 488221E;infinity;INFINITY 489222B;integral;INTEGRAL 4902321;integralbt;BOTTOM HALF INTEGRAL 4912320;integraltp;TOP HALF INTEGRAL 4922229;intersection;INTERSECTION 49325D8;invbullet;INVERSE BULLET 49425D9;invcircle;INVERSE WHITE CIRCLE 495263B;invsmileface;BLACK SMILING FACE 496012F;iogonek;LATIN SMALL LETTER I WITH OGONEK 49703B9;iota;GREEK SMALL LETTER IOTA 49803CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA 4990390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 50003AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS 5010129;itilde;LATIN SMALL LETTER I WITH TILDE 502006A;j;LATIN SMALL LETTER J 5030135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX 504006B;k;LATIN SMALL LETTER K 50503BA;kappa;GREEK SMALL LETTER KAPPA 5060138;kgreenlandic;LATIN SMALL LETTER KRA 507006C;l;LATIN SMALL LETTER L 508013A;lacute;LATIN SMALL LETTER L WITH ACUTE 50903BB;lambda;GREEK SMALL LETTER LAMDA 510013E;lcaron;LATIN SMALL LETTER L WITH CARON 5110140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT 512003C;less;LESS-THAN SIGN 5132264;lessequal;LESS-THAN OR EQUAL TO 514258C;lfblock;LEFT HALF BLOCK 51520A4;lira;LIRA SIGN 5162227;logicaland;LOGICAL AND 51700AC;logicalnot;NOT SIGN 5182228;logicalor;LOGICAL OR 519017F;longs;LATIN SMALL LETTER LONG S 52025CA;lozenge;LOZENGE 5210142;lslash;LATIN SMALL LETTER L WITH STROKE 5222591;ltshade;LIGHT SHADE 523006D;m;LATIN SMALL LETTER M 52400AF;macron;MACRON 5252642;male;MALE SIGN 5262212;minus;MINUS SIGN 5272032;minute;PRIME 52800B5;mu;MICRO SIGN 52900D7;multiply;MULTIPLICATION SIGN 530266A;musicalnote;EIGHTH NOTE 531266B;musicalnotedbl;BEAMED EIGHTH NOTES 532006E;n;LATIN SMALL LETTER N 5330144;nacute;LATIN SMALL LETTER N WITH ACUTE 5340149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 5350148;ncaron;LATIN SMALL LETTER N WITH CARON 5360039;nine;DIGIT NINE 5372209;notelement;NOT AN ELEMENT OF 5382260;notequal;NOT EQUAL TO 5392284;notsubset;NOT A SUBSET OF 54000F1;ntilde;LATIN SMALL LETTER N WITH TILDE 54103BD;nu;GREEK SMALL LETTER NU 5420023;numbersign;NUMBER SIGN 543006F;o;LATIN SMALL LETTER O 54400F3;oacute;LATIN SMALL LETTER O WITH ACUTE 545014F;obreve;LATIN SMALL LETTER O WITH BREVE 54600F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX 54700F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS 5480153;oe;LATIN SMALL LIGATURE OE 54902DB;ogonek;OGONEK 55000F2;ograve;LATIN SMALL LETTER O WITH GRAVE 55101A1;ohorn;LATIN SMALL LETTER O WITH HORN 5520151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE 553014D;omacron;LATIN SMALL LETTER O WITH MACRON 55403C9;omega;GREEK SMALL LETTER OMEGA 55503D6;omega1;GREEK PI SYMBOL 55603CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS 55703BF;omicron;GREEK SMALL LETTER OMICRON 55803CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS 5590031;one;DIGIT ONE 5602024;onedotenleader;ONE DOT LEADER 561215B;oneeighth;VULGAR FRACTION ONE EIGHTH 56200BD;onehalf;VULGAR FRACTION ONE HALF 56300BC;onequarter;VULGAR FRACTION ONE QUARTER 5642153;onethird;VULGAR FRACTION ONE THIRD 56525E6;openbullet;WHITE BULLET 56600AA;ordfeminine;FEMININE ORDINAL INDICATOR 56700BA;ordmasculine;MASCULINE ORDINAL INDICATOR 568221F;orthogonal;RIGHT ANGLE 56900F8;oslash;LATIN SMALL LETTER O WITH STROKE 57001FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE 57100F5;otilde;LATIN SMALL LETTER O WITH TILDE 5720070;p;LATIN SMALL LETTER P 57300B6;paragraph;PILCROW SIGN 5740028;parenleft;LEFT PARENTHESIS 5750029;parenright;RIGHT PARENTHESIS 5762202;partialdiff;PARTIAL DIFFERENTIAL 5770025;percent;PERCENT SIGN 578002E;period;FULL STOP 57900B7;periodcentered;MIDDLE DOT 58022A5;perpendicular;UP TACK 5812030;perthousand;PER MILLE SIGN 58220A7;peseta;PESETA SIGN 58303C6;phi;GREEK SMALL LETTER PHI 58403D5;phi1;GREEK PHI SYMBOL 58503C0;pi;GREEK SMALL LETTER PI 586002B;plus;PLUS SIGN 58700B1;plusminus;PLUS-MINUS SIGN 588211E;prescription;PRESCRIPTION TAKE 589220F;product;N-ARY PRODUCT 5902282;propersubset;SUBSET OF 5912283;propersuperset;SUPERSET OF 592221D;proportional;PROPORTIONAL TO 59303C8;psi;GREEK SMALL LETTER PSI 5940071;q;LATIN SMALL LETTER Q 595003F;question;QUESTION MARK 59600BF;questiondown;INVERTED QUESTION MARK 5970022;quotedbl;QUOTATION MARK 598201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK 599201C;quotedblleft;LEFT DOUBLE QUOTATION MARK 600201D;quotedblright;RIGHT DOUBLE QUOTATION MARK 6012018;quoteleft;LEFT SINGLE QUOTATION MARK 602201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK 6032019;quoteright;RIGHT SINGLE QUOTATION MARK 604201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK 6050027;quotesingle;APOSTROPHE 6060072;r;LATIN SMALL LETTER R 6070155;racute;LATIN SMALL LETTER R WITH ACUTE 608221A;radical;SQUARE ROOT 6090159;rcaron;LATIN SMALL LETTER R WITH CARON 6102286;reflexsubset;SUBSET OF OR EQUAL TO 6112287;reflexsuperset;SUPERSET OF OR EQUAL TO 61200AE;registered;REGISTERED SIGN 6132310;revlogicalnot;REVERSED NOT SIGN 61403C1;rho;GREEK SMALL LETTER RHO 61502DA;ring;RING ABOVE 6162590;rtblock;RIGHT HALF BLOCK 6170073;s;LATIN SMALL LETTER S 618015B;sacute;LATIN SMALL LETTER S WITH ACUTE 6190161;scaron;LATIN SMALL LETTER S WITH CARON 620015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA 621015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX 6222033;second;DOUBLE PRIME 62300A7;section;SECTION SIGN 624003B;semicolon;SEMICOLON 6250037;seven;DIGIT SEVEN 626215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS 6272592;shade;MEDIUM SHADE 62803C3;sigma;GREEK SMALL LETTER SIGMA 62903C2;sigma1;GREEK SMALL LETTER FINAL SIGMA 630223C;similar;TILDE OPERATOR 6310036;six;DIGIT SIX 632002F;slash;SOLIDUS 633263A;smileface;WHITE SMILING FACE 6340020;space;SPACE 6352660;spade;BLACK SPADE SUIT 63600A3;sterling;POUND SIGN 637220B;suchthat;CONTAINS AS MEMBER 6382211;summation;N-ARY SUMMATION 639263C;sun;WHITE SUN WITH RAYS 6400074;t;LATIN SMALL LETTER T 64103C4;tau;GREEK SMALL LETTER TAU 6420167;tbar;LATIN SMALL LETTER T WITH STROKE 6430165;tcaron;LATIN SMALL LETTER T WITH CARON 6442234;therefore;THEREFORE 64503B8;theta;GREEK SMALL LETTER THETA 64603D1;theta1;GREEK THETA SYMBOL 64700FE;thorn;LATIN SMALL LETTER THORN 6480033;three;DIGIT THREE 649215C;threeeighths;VULGAR FRACTION THREE EIGHTHS 65000BE;threequarters;VULGAR FRACTION THREE QUARTERS 65102DC;tilde;SMALL TILDE 6520303;tildecomb;COMBINING TILDE 6530384;tonos;GREEK TONOS 6542122;trademark;TRADE MARK SIGN 65525BC;triagdn;BLACK DOWN-POINTING TRIANGLE 65625C4;triaglf;BLACK LEFT-POINTING POINTER 65725BA;triagrt;BLACK RIGHT-POINTING POINTER 65825B2;triagup;BLACK UP-POINTING TRIANGLE 6590032;two;DIGIT TWO 6602025;twodotenleader;TWO DOT LEADER 6612154;twothirds;VULGAR FRACTION TWO THIRDS 6620075;u;LATIN SMALL LETTER U 66300FA;uacute;LATIN SMALL LETTER U WITH ACUTE 664016D;ubreve;LATIN SMALL LETTER U WITH BREVE 66500FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX 66600FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS 66700F9;ugrave;LATIN SMALL LETTER U WITH GRAVE 66801B0;uhorn;LATIN SMALL LETTER U WITH HORN 6690171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE 670016B;umacron;LATIN SMALL LETTER U WITH MACRON 671005F;underscore;LOW LINE 6722017;underscoredbl;DOUBLE LOW LINE 673222A;union;UNION 6742200;universal;FOR ALL 6750173;uogonek;LATIN SMALL LETTER U WITH OGONEK 6762580;upblock;UPPER HALF BLOCK 67703C5;upsilon;GREEK SMALL LETTER UPSILON 67803CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA 67903B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 68003CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS 681016F;uring;LATIN SMALL LETTER U WITH RING ABOVE 6820169;utilde;LATIN SMALL LETTER U WITH TILDE 6830076;v;LATIN SMALL LETTER V 6840077;w;LATIN SMALL LETTER W 6851E83;wacute;LATIN SMALL LETTER W WITH ACUTE 6860175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX 6871E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS 6882118;weierstrass;SCRIPT CAPITAL P 6891E81;wgrave;LATIN SMALL LETTER W WITH GRAVE 6900078;x;LATIN SMALL LETTER X 69103BE;xi;GREEK SMALL LETTER XI 6920079;y;LATIN SMALL LETTER Y 69300FD;yacute;LATIN SMALL LETTER Y WITH ACUTE 6940177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX 69500FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS 69600A5;yen;YEN SIGN 6971EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE 698007A;z;LATIN SMALL LETTER Z 699017A;zacute;LATIN SMALL LETTER Z WITH ACUTE 700017E;zcaron;LATIN SMALL LETTER Z WITH CARON 701017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE 7020030;zero;DIGIT ZERO 70303B6;zeta;GREEK SMALL LETTER ZETA 704#END 705""" 706 707 708AGLError = "AGLError" 709 710AGL2UV = {} 711UV2AGL = {} 712 713def _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