summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontsubset_agl.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2012-06-11 18:04:17 +0300
committerQt by Nokia <qt-info@nokia.com>2012-06-14 05:22:03 +0200
commitdd68e93de7eb1c50cc5b5779497e03f491c90373 (patch)
treecae913ab86299244e9ef486810877ffcec437e1f /src/gui/text/qfontsubset_agl.cpp
parent3014c3575626253e80f7f5d01ad4605dac34010b (diff)
Add the AGLFN tables generator, update the tables up to AGLFN 1.7
Task-number: QTBUG-21727 Change-Id: Ib2cacc2a52b2853059d6c873a33dcde735fbe168 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/gui/text/qfontsubset_agl.cpp')
-rw-r--r--src/gui/text/qfontsubset_agl.cpp285
1 files changed, 285 insertions, 0 deletions
diff --git a/src/gui/text/qfontsubset_agl.cpp b/src/gui/text/qfontsubset_agl.cpp
new file mode 100644
index 0000000000..dc2192b9c4
--- /dev/null
+++ b/src/gui/text/qfontsubset_agl.cpp
@@ -0,0 +1,285 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/* This file is autogenerated from the Adobe Glyph List database v1.7. Do not edit */
+
+namespace {
+
+static const char glyph_names[] =
+".notdef\0A\0AE\0AEacute\0Aacute\0Abreve\0Acircumflex\0Adieresis\0Agrave\0"
+"Alpha\0Alphatonos\0Amacron\0Aogonek\0Aring\0Aringacute\0Atilde\0B\0Beta\0C\0"
+"Cacute\0Ccaron\0Ccedilla\0Ccircumflex\0Cdotaccent\0Chi\0D\0Dcaron\0Dcroat\0"
+"Delta\0E\0Eacute\0Ebreve\0Ecaron\0Ecircumflex\0Edieresis\0Edotaccent\0"
+"Egrave\0Emacron\0Eng\0Eogonek\0Epsilon\0Epsilontonos\0Eta\0Etatonos\0Eth\0"
+"Euro\0F\0G\0Gamma\0Gbreve\0Gcaron\0Gcircumflex\0Gdotaccent\0H\0H18533\0"
+"H18543\0H18551\0H22073\0Hbar\0Hcircumflex\0I\0IJ\0Iacute\0Ibreve\0"
+"Icircumflex\0Idieresis\0Idotaccent\0Ifraktur\0Igrave\0Imacron\0Iogonek\0"
+"Iota\0Iotadieresis\0Iotatonos\0Itilde\0J\0Jcircumflex\0K\0Kappa\0L\0Lacute\0"
+"Lambda\0Lcaron\0Ldot\0Lslash\0M\0Mu\0N\0Nacute\0Ncaron\0Ntilde\0Nu\0O\0OE\0"
+"Oacute\0Obreve\0Ocircumflex\0Odieresis\0Ograve\0Ohorn\0Ohungarumlaut\0"
+"Omacron\0Omega\0Omegatonos\0Omicron\0Omicrontonos\0Oslash\0Oslashacute\0"
+"Otilde\0P\0Phi\0Pi\0Psi\0Q\0R\0Racute\0Rcaron\0Rfraktur\0Rho\0S\0SF010000\0"
+"SF020000\0SF030000\0SF040000\0SF050000\0SF060000\0SF070000\0SF080000\0"
+"SF090000\0SF100000\0SF110000\0SF190000\0SF200000\0SF210000\0SF220000\0"
+"SF230000\0SF240000\0SF250000\0SF260000\0SF270000\0SF280000\0SF360000\0"
+"SF370000\0SF380000\0SF390000\0SF400000\0SF410000\0SF420000\0SF430000\0"
+"SF440000\0SF450000\0SF460000\0SF470000\0SF480000\0SF490000\0SF500000\0"
+"SF510000\0SF520000\0SF530000\0SF540000\0Sacute\0Scaron\0Scedilla\0"
+"Scircumflex\0Sigma\0T\0Tau\0Tbar\0Tcaron\0Theta\0Thorn\0U\0Uacute\0Ubreve\0"
+"Ucircumflex\0Udieresis\0Ugrave\0Uhorn\0Uhungarumlaut\0Umacron\0Uogonek\0"
+"Upsilon\0Upsilon1\0Upsilondieresis\0Upsilontonos\0Uring\0Utilde\0V\0W\0"
+"Wacute\0Wcircumflex\0Wdieresis\0Wgrave\0X\0Xi\0Y\0Yacute\0Ycircumflex\0"
+"Ydieresis\0Ygrave\0Z\0Zacute\0Zcaron\0Zdotaccent\0Zeta\0a\0aacute\0abreve\0"
+"acircumflex\0acute\0acutecomb\0adieresis\0ae\0aeacute\0agrave\0aleph\0alpha\0"
+"alphatonos\0amacron\0ampersand\0angle\0angleleft\0angleright\0anoteleia\0"
+"aogonek\0approxequal\0aring\0aringacute\0arrowboth\0arrowdblboth\0"
+"arrowdbldown\0arrowdblleft\0arrowdblright\0arrowdblup\0arrowdown\0arrowleft\0"
+"arrowright\0arrowup\0arrowupdn\0arrowupdnbse\0asciicircum\0asciitilde\0"
+"asterisk\0asteriskmath\0at\0atilde\0b\0backslash\0bar\0beta\0block\0"
+"braceleft\0braceright\0bracketleft\0bracketright\0breve\0brokenbar\0bullet\0"
+"c\0cacute\0caron\0carriagereturn\0ccaron\0ccedilla\0ccircumflex\0cdotaccent\0"
+"cedilla\0cent\0chi\0circle\0circlemultiply\0circleplus\0circumflex\0club\0"
+"colon\0colonmonetary\0comma\0congruent\0copyright\0currency\0d\0dagger\0"
+"daggerdbl\0dcaron\0dcroat\0degree\0delta\0diamond\0dieresis\0dieresistonos\0"
+"divide\0dkshade\0dnblock\0dollar\0dong\0dotaccent\0dotbelowcomb\0dotlessi\0"
+"dotmath\0e\0eacute\0ebreve\0ecaron\0ecircumflex\0edieresis\0edotaccent\0"
+"egrave\0eight\0element\0ellipsis\0emacron\0emdash\0emptyset\0endash\0eng\0"
+"eogonek\0epsilon\0epsilontonos\0equal\0equivalence\0estimated\0eta\0"
+"etatonos\0eth\0exclam\0exclamdbl\0exclamdown\0existential\0f\0female\0"
+"figuredash\0filledbox\0filledrect\0five\0fiveeighths\0florin\0four\0"
+"fraction\0franc\0g\0gamma\0gbreve\0gcaron\0gcircumflex\0gdotaccent\0"
+"germandbls\0gradient\0grave\0gravecomb\0greater\0greaterequal\0"
+"guillemotleft\0guillemotright\0guilsinglleft\0guilsinglright\0h\0hbar\0"
+"hcircumflex\0heart\0hookabovecomb\0house\0hungarumlaut\0hyphen\0i\0iacute\0"
+"ibreve\0icircumflex\0idieresis\0igrave\0ij\0imacron\0infinity\0integral\0"
+"integralbt\0integraltp\0intersection\0invbullet\0invcircle\0invsmileface\0"
+"iogonek\0iota\0iotadieresis\0iotadieresistonos\0iotatonos\0itilde\0j\0"
+"jcircumflex\0k\0kappa\0kgreenlandic\0l\0lacute\0lambda\0lcaron\0ldot\0less\0"
+"lessequal\0lfblock\0lira\0logicaland\0logicalnot\0logicalor\0longs\0lozenge\0"
+"lslash\0ltshade\0m\0macron\0male\0minus\0minute\0mu\0multiply\0musicalnote\0"
+"musicalnotedbl\0n\0nacute\0napostrophe\0ncaron\0nine\0notelement\0notequal\0"
+"notsubset\0ntilde\0nu\0numbersign\0o\0oacute\0obreve\0ocircumflex\0"
+"odieresis\0oe\0ogonek\0ograve\0ohorn\0ohungarumlaut\0omacron\0omega\0omega1\0"
+"omegatonos\0omicron\0omicrontonos\0one\0onedotenleader\0oneeighth\0onehalf\0"
+"onequarter\0onethird\0openbullet\0ordfeminine\0ordmasculine\0orthogonal\0"
+"oslash\0oslashacute\0otilde\0p\0paragraph\0parenleft\0parenright\0"
+"partialdiff\0percent\0period\0periodcentered\0perpendicular\0perthousand\0"
+"peseta\0phi\0phi1\0pi\0plus\0plusminus\0prescription\0product\0propersubset\0"
+"propersuperset\0proportional\0psi\0q\0question\0questiondown\0quotedbl\0"
+"quotedblbase\0quotedblleft\0quotedblright\0quoteleft\0quotereversed\0"
+"quoteright\0quotesinglbase\0quotesingle\0r\0racute\0radical\0rcaron\0"
+"reflexsubset\0reflexsuperset\0registered\0revlogicalnot\0rho\0ring\0rtblock\0"
+"s\0sacute\0scaron\0scedilla\0scircumflex\0second\0section\0semicolon\0seven\0"
+"seveneighths\0shade\0sigma\0sigma1\0similar\0six\0slash\0smileface\0space\0"
+"spade\0sterling\0suchthat\0summation\0sun\0t\0tau\0tbar\0tcaron\0therefore\0"
+"theta\0theta1\0thorn\0three\0threeeighths\0threequarters\0tilde\0tildecomb\0"
+"tonos\0trademark\0triagdn\0triaglf\0triagrt\0triagup\0two\0twodotenleader\0"
+"twothirds\0u\0uacute\0ubreve\0ucircumflex\0udieresis\0ugrave\0uhorn\0"
+"uhungarumlaut\0umacron\0underscore\0underscoredbl\0union\0universal\0"
+"uogonek\0upblock\0upsilon\0upsilondieresis\0upsilondieresistonos\0"
+"upsilontonos\0uring\0utilde\0v\0w\0wacute\0wcircumflex\0wdieresis\0"
+"weierstrass\0wgrave\0x\0xi\0y\0yacute\0ycircumflex\0ydieresis\0yen\0ygrave\0"
+"z\0zacute\0zcaron\0zdotaccent\0zero\0zeta\0"
+;
+
+struct AGLEntry {
+ unsigned short uc;
+ unsigned short index;
+};
+
+inline bool operator<(unsigned short uc, AGLEntry entry)
+{ return uc < entry.uc; }
+inline bool operator<(AGLEntry entry, unsigned short uc)
+{ return entry.uc < uc; }
+
+static const AGLEntry unicode_to_agl_map[] = {
+ { 0x0000, 0 }, { 0x0020, 4183 }, { 0x0021, 2512 }, { 0x0022, 3850 },
+ { 0x0023, 3356 }, { 0x0024, 2265 }, { 0x0025, 3670 }, { 0x0026, 1604 },
+ { 0x0027, 3949 }, { 0x0028, 3637 }, { 0x0029, 3647 }, { 0x002a, 1847 },
+ { 0x002b, 3745 }, { 0x002c, 2130 }, { 0x002d, 2855 }, { 0x002e, 3678 },
+ { 0x002f, 4167 }, { 0x0030, 4727 }, { 0x0031, 3495 }, { 0x0032, 4371 },
+ { 0x0033, 4274 }, { 0x0034, 2617 }, { 0x0035, 2593 }, { 0x0036, 4163 },
+ { 0x0037, 4117 }, { 0x0038, 2380 }, { 0x0039, 3311 }, { 0x003a, 2110 },
+ { 0x003b, 4107 }, { 0x003c, 3128 }, { 0x003d, 2467 }, { 0x003e, 2718 },
+ { 0x003f, 3828 }, { 0x0040, 1869 }, { 0x0041, 8 }, { 0x0042, 121 },
+ { 0x0043, 128 }, { 0x0044, 180 }, { 0x0045, 202 }, { 0x0046, 328 },
+ { 0x0047, 330 }, { 0x0048, 375 }, { 0x0049, 422 }, { 0x004a, 541 },
+ { 0x004b, 555 }, { 0x004c, 563 }, { 0x004d, 598 }, { 0x004e, 603 },
+ { 0x004f, 629 }, { 0x0050, 769 }, { 0x0051, 782 }, { 0x0052, 784 },
+ { 0x0053, 813 }, { 0x0054, 1216 }, { 0x0055, 1246 }, { 0x0056, 1386 },
+ { 0x0057, 1388 }, { 0x0058, 1426 }, { 0x0059, 1431 }, { 0x005a, 1469 },
+ { 0x005b, 1927 }, { 0x005c, 1881 }, { 0x005d, 1939 }, { 0x005e, 1824 },
+ { 0x005f, 4473 }, { 0x0060, 2702 }, { 0x0061, 1501 }, { 0x0062, 1879 },
+ { 0x0063, 1975 }, { 0x0064, 2165 }, { 0x0065, 2317 }, { 0x0066, 2552 },
+ { 0x0067, 2637 }, { 0x0068, 2797 }, { 0x0069, 2862 }, { 0x006a, 3065 },
+ { 0x006b, 3079 }, { 0x006c, 3100 }, { 0x006d, 3217 }, { 0x006e, 3283 },
+ { 0x006f, 3367 }, { 0x0070, 3625 }, { 0x0071, 3826 }, { 0x0072, 3961 },
+ { 0x0073, 4055 }, { 0x0074, 4227 }, { 0x0075, 4400 }, { 0x0076, 4601 },
+ { 0x0077, 4603 }, { 0x0078, 4653 }, { 0x0079, 4658 }, { 0x007a, 4700 },
+ { 0x007b, 1906 }, { 0x007c, 1891 }, { 0x007d, 1916 }, { 0x007e, 1836 },
+ { 0x00a1, 2529 }, { 0x00a2, 2052 }, { 0x00a3, 4195 }, { 0x00a4, 2156 },
+ { 0x00a5, 4689 }, { 0x00a6, 1958 }, { 0x00a7, 4099 }, { 0x00a8, 2219 },
+ { 0x00a9, 2146 }, { 0x00aa, 3563 }, { 0x00ab, 2739 }, { 0x00ac, 3167 },
+ { 0x00ae, 4013 }, { 0x00af, 3219 }, { 0x00b0, 2198 }, { 0x00b1, 3750 },
+ { 0x00b4, 1529 }, { 0x00b5, 3244 }, { 0x00b6, 3627 }, { 0x00b7, 3685 },
+ { 0x00b8, 2044 }, { 0x00ba, 3575 }, { 0x00bb, 2753 }, { 0x00bc, 3532 },
+ { 0x00bd, 3524 }, { 0x00be, 4293 }, { 0x00bf, 3837 }, { 0x00c0, 57 },
+ { 0x00c1, 21 }, { 0x00c2, 35 }, { 0x00c3, 114 }, { 0x00c4, 47 },
+ { 0x00c5, 97 }, { 0x00c6, 10 }, { 0x00c7, 144 }, { 0x00c8, 258 },
+ { 0x00c9, 204 }, { 0x00ca, 225 }, { 0x00cb, 237 }, { 0x00cc, 483 },
+ { 0x00cd, 427 }, { 0x00ce, 441 }, { 0x00cf, 453 }, { 0x00d0, 319 },
+ { 0x00d1, 619 }, { 0x00d2, 670 }, { 0x00d3, 634 }, { 0x00d4, 648 },
+ { 0x00d5, 762 }, { 0x00d6, 660 }, { 0x00d7, 3247 }, { 0x00d8, 743 },
+ { 0x00d9, 1284 }, { 0x00da, 1248 }, { 0x00db, 1262 }, { 0x00dc, 1274 },
+ { 0x00dd, 1433 }, { 0x00de, 1240 }, { 0x00df, 2682 }, { 0x00e0, 1566 },
+ { 0x00e1, 1503 }, { 0x00e2, 1517 }, { 0x00e3, 1872 }, { 0x00e4, 1545 },
+ { 0x00e5, 1671 }, { 0x00e6, 1555 }, { 0x00e7, 2012 }, { 0x00e8, 2373 },
+ { 0x00e9, 2319 }, { 0x00ea, 2340 }, { 0x00eb, 2352 }, { 0x00ec, 2900 },
+ { 0x00ed, 2864 }, { 0x00ee, 2878 }, { 0x00ef, 2890 }, { 0x00f0, 2508 },
+ { 0x00f1, 3346 }, { 0x00f2, 3415 }, { 0x00f3, 3369 }, { 0x00f4, 3383 },
+ { 0x00f5, 3618 }, { 0x00f6, 3395 }, { 0x00f7, 2242 }, { 0x00f8, 3599 },
+ { 0x00f9, 4438 }, { 0x00fa, 4402 }, { 0x00fb, 4416 }, { 0x00fc, 4428 },
+ { 0x00fd, 4660 }, { 0x00fe, 4268 }, { 0x00ff, 4679 }, { 0x0100, 81 },
+ { 0x0101, 1596 }, { 0x0102, 28 }, { 0x0103, 1510 }, { 0x0104, 89 },
+ { 0x0105, 1651 }, { 0x0106, 130 }, { 0x0107, 1977 }, { 0x0108, 153 },
+ { 0x0109, 2021 }, { 0x010a, 165 }, { 0x010b, 2033 }, { 0x010c, 137 },
+ { 0x010d, 2005 }, { 0x010e, 182 }, { 0x010f, 2184 }, { 0x0110, 189 },
+ { 0x0111, 2191 }, { 0x0112, 265 }, { 0x0113, 2403 }, { 0x0114, 211 },
+ { 0x0115, 2326 }, { 0x0116, 247 }, { 0x0117, 2362 }, { 0x0118, 277 },
+ { 0x0119, 2438 }, { 0x011a, 218 }, { 0x011b, 2333 }, { 0x011c, 352 },
+ { 0x011d, 2659 }, { 0x011e, 338 }, { 0x011f, 2645 }, { 0x0120, 364 },
+ { 0x0121, 2671 }, { 0x0124, 410 }, { 0x0125, 2804 }, { 0x0126, 405 },
+ { 0x0127, 2799 }, { 0x0128, 534 }, { 0x0129, 3058 }, { 0x012a, 490 },
+ { 0x012b, 2910 }, { 0x012c, 434 }, { 0x012d, 2871 }, { 0x012e, 498 },
+ { 0x012f, 3004 }, { 0x0130, 463 }, { 0x0131, 2300 }, { 0x0132, 424 },
+ { 0x0133, 2907 }, { 0x0134, 543 }, { 0x0135, 3067 }, { 0x0138, 3087 },
+ { 0x0139, 565 }, { 0x013a, 3102 }, { 0x013d, 579 }, { 0x013e, 3116 },
+ { 0x013f, 586 }, { 0x0140, 3123 }, { 0x0141, 591 }, { 0x0142, 3202 },
+ { 0x0143, 605 }, { 0x0144, 3285 }, { 0x0147, 612 }, { 0x0148, 3304 },
+ { 0x0149, 3292 }, { 0x014a, 273 }, { 0x014b, 2434 }, { 0x014c, 697 },
+ { 0x014d, 3442 }, { 0x014e, 641 }, { 0x014f, 3376 }, { 0x0150, 683 },
+ { 0x0151, 3428 }, { 0x0152, 631 }, { 0x0153, 3405 }, { 0x0154, 786 },
+ { 0x0155, 3963 }, { 0x0158, 793 }, { 0x0159, 3978 }, { 0x015a, 1175 },
+ { 0x015b, 4057 }, { 0x015c, 1198 }, { 0x015d, 4080 }, { 0x015e, 1189 },
+ { 0x015f, 4071 }, { 0x0160, 1182 }, { 0x0161, 4064 }, { 0x0164, 1227 },
+ { 0x0165, 4238 }, { 0x0166, 1222 }, { 0x0167, 4233 }, { 0x0168, 1379 },
+ { 0x0169, 4594 }, { 0x016a, 1311 }, { 0x016b, 4465 }, { 0x016c, 1255 },
+ { 0x016d, 4409 }, { 0x016e, 1373 }, { 0x016f, 4588 }, { 0x0170, 1297 },
+ { 0x0171, 4451 }, { 0x0172, 1319 }, { 0x0173, 4514 }, { 0x0174, 1397 },
+ { 0x0175, 4612 }, { 0x0176, 1440 }, { 0x0177, 4667 }, { 0x0178, 1452 },
+ { 0x0179, 1471 }, { 0x017a, 4702 }, { 0x017b, 1485 }, { 0x017c, 4716 },
+ { 0x017d, 1478 }, { 0x017e, 4709 }, { 0x017f, 3188 }, { 0x0192, 2610 },
+ { 0x01a0, 677 }, { 0x01a1, 3422 }, { 0x01af, 1291 }, { 0x01b0, 4445 },
+ { 0x01e6, 345 }, { 0x01e7, 2652 }, { 0x01fa, 103 }, { 0x01fb, 1677 },
+ { 0x01fc, 13 }, { 0x01fd, 1558 }, { 0x01fe, 750 }, { 0x01ff, 3606 },
+ { 0x02c6, 2094 }, { 0x02c7, 1984 }, { 0x02d8, 1952 }, { 0x02d9, 2277 },
+ { 0x02da, 4042 }, { 0x02db, 3408 }, { 0x02dc, 4307 }, { 0x02dd, 2842 },
+ { 0x0300, 2708 }, { 0x0301, 1535 }, { 0x0303, 4313 }, { 0x0309, 2822 },
+ { 0x0323, 2287 }, { 0x0384, 4323 }, { 0x0385, 2228 }, { 0x0386, 70 },
+ { 0x0387, 1641 }, { 0x0388, 293 }, { 0x0389, 310 }, { 0x038a, 524 },
+ { 0x038c, 730 }, { 0x038e, 1360 }, { 0x038f, 711 }, { 0x0390, 3030 },
+ { 0x0391, 64 }, { 0x0392, 123 }, { 0x0393, 332 }, { 0x0395, 285 },
+ { 0x0396, 1496 }, { 0x0397, 306 }, { 0x0398, 1234 }, { 0x0399, 506 },
+ { 0x039a, 557 }, { 0x039b, 572 }, { 0x039c, 600 }, { 0x039d, 626 },
+ { 0x039e, 1428 }, { 0x039f, 722 }, { 0x03a0, 775 }, { 0x03a1, 809 },
+ { 0x03a3, 1210 }, { 0x03a4, 1218 }, { 0x03a5, 1327 }, { 0x03a6, 771 },
+ { 0x03a7, 176 }, { 0x03a8, 778 }, { 0x03aa, 511 }, { 0x03ab, 1344 },
+ { 0x03ac, 1585 }, { 0x03ad, 2454 }, { 0x03ae, 2499 }, { 0x03af, 3048 },
+ { 0x03b0, 4554 }, { 0x03b1, 1579 }, { 0x03b2, 1895 }, { 0x03b3, 2639 },
+ { 0x03b4, 2205 }, { 0x03b5, 2446 }, { 0x03b6, 4732 }, { 0x03b7, 2495 },
+ { 0x03b8, 4255 }, { 0x03b9, 3012 }, { 0x03ba, 3081 }, { 0x03bb, 3109 },
+ { 0x03bd, 3353 }, { 0x03be, 4655 }, { 0x03bf, 3474 }, { 0x03c0, 3742 },
+ { 0x03c1, 4038 }, { 0x03c2, 4148 }, { 0x03c3, 4142 }, { 0x03c4, 4229 },
+ { 0x03c5, 4530 }, { 0x03c6, 3733 }, { 0x03c7, 2057 }, { 0x03c8, 3822 },
+ { 0x03c9, 3450 }, { 0x03ca, 3017 }, { 0x03cb, 4538 }, { 0x03cc, 3482 },
+ { 0x03cd, 4575 }, { 0x03ce, 3463 }, { 0x03d1, 4261 }, { 0x03d2, 1335 },
+ { 0x03d5, 3737 }, { 0x03d6, 3456 }, { 0x1e80, 1419 }, { 0x1e81, 4646 },
+ { 0x1e82, 1390 }, { 0x1e83, 4605 }, { 0x1e84, 1409 }, { 0x1e85, 4624 },
+ { 0x1ef2, 1462 }, { 0x1ef3, 4693 }, { 0x2012, 2561 }, { 0x2013, 2427 },
+ { 0x2014, 2411 }, { 0x2017, 4484 }, { 0x2018, 3899 }, { 0x2019, 3923 },
+ { 0x201a, 3934 }, { 0x201b, 3909 }, { 0x201c, 3872 }, { 0x201d, 3885 },
+ { 0x201e, 3859 }, { 0x2020, 2167 }, { 0x2021, 2174 }, { 0x2022, 1968 },
+ { 0x2024, 3499 }, { 0x2025, 4375 }, { 0x2026, 2394 }, { 0x2030, 3714 },
+ { 0x2032, 3237 }, { 0x2033, 4092 }, { 0x2039, 2768 }, { 0x203a, 2782 },
+ { 0x203c, 2519 }, { 0x2044, 2622 }, { 0x20a1, 2116 }, { 0x20a3, 2631 },
+ { 0x20a4, 3151 }, { 0x20a7, 3726 }, { 0x20ab, 2272 }, { 0x20ac, 323 },
+ { 0x2111, 474 }, { 0x2118, 4634 }, { 0x211c, 800 }, { 0x211e, 3760 },
+ { 0x2122, 4329 }, { 0x2126, 705 }, { 0x212e, 2485 }, { 0x2135, 1573 },
+ { 0x2153, 3543 }, { 0x2154, 4390 }, { 0x215b, 3514 }, { 0x215c, 4280 },
+ { 0x215d, 2598 }, { 0x215e, 4123 }, { 0x2190, 1772 }, { 0x2191, 1793 },
+ { 0x2192, 1782 }, { 0x2193, 1762 }, { 0x2194, 1688 }, { 0x2195, 1801 },
+ { 0x21a8, 1811 }, { 0x21b5, 1990 }, { 0x21d0, 1724 }, { 0x21d1, 1751 },
+ { 0x21d2, 1737 }, { 0x21d3, 1711 }, { 0x21d4, 1698 }, { 0x2200, 4504 },
+ { 0x2202, 3658 }, { 0x2203, 2540 }, { 0x2205, 2418 }, { 0x2206, 196 },
+ { 0x2207, 2693 }, { 0x2208, 2386 }, { 0x2209, 3316 }, { 0x220b, 4204 },
+ { 0x220f, 3773 }, { 0x2211, 4213 }, { 0x2212, 3231 }, { 0x2217, 1856 },
+ { 0x221a, 3970 }, { 0x221d, 3809 }, { 0x221e, 2918 }, { 0x221f, 3588 },
+ { 0x2220, 1614 }, { 0x2227, 3156 }, { 0x2228, 3178 }, { 0x2229, 2958 },
+ { 0x222a, 4498 }, { 0x222b, 2927 }, { 0x2234, 4245 }, { 0x223c, 4155 },
+ { 0x2245, 2136 }, { 0x2248, 1659 }, { 0x2260, 3327 }, { 0x2261, 2473 },
+ { 0x2264, 3133 }, { 0x2265, 2726 }, { 0x2282, 3781 }, { 0x2283, 3794 },
+ { 0x2284, 3336 }, { 0x2286, 3985 }, { 0x2287, 3998 }, { 0x2295, 2083 },
+ { 0x2297, 2068 }, { 0x22a5, 3700 }, { 0x22c5, 2309 }, { 0x2302, 2836 },
+ { 0x2310, 4024 }, { 0x2320, 2947 }, { 0x2321, 2936 }, { 0x2329, 1620 },
+ { 0x232a, 1630 }, { 0x2500, 896 }, { 0x2502, 905 }, { 0x250c, 815 },
+ { 0x2510, 833 }, { 0x2514, 824 }, { 0x2518, 842 }, { 0x251c, 878 },
+ { 0x2524, 887 }, { 0x252c, 860 }, { 0x2534, 869 }, { 0x253c, 851 },
+ { 0x2550, 1067 }, { 0x2551, 959 }, { 0x2552, 1139 }, { 0x2553, 1148 },
+ { 0x2554, 1031 }, { 0x2555, 941 }, { 0x2556, 932 }, { 0x2557, 968 },
+ { 0x2558, 1130 }, { 0x2559, 1121 }, { 0x255a, 1022 }, { 0x255b, 995 },
+ { 0x255c, 986 }, { 0x255d, 977 }, { 0x255e, 1004 }, { 0x255f, 1013 },
+ { 0x2560, 1058 }, { 0x2561, 914 }, { 0x2562, 923 }, { 0x2563, 950 },
+ { 0x2564, 1103 }, { 0x2565, 1112 }, { 0x2566, 1049 }, { 0x2567, 1085 },
+ { 0x2568, 1094 }, { 0x2569, 1040 }, { 0x256a, 1166 }, { 0x256b, 1157 },
+ { 0x256c, 1076 }, { 0x2580, 4522 }, { 0x2584, 2257 }, { 0x2588, 1900 },
+ { 0x258c, 3143 }, { 0x2590, 4047 }, { 0x2591, 3209 }, { 0x2592, 4136 },
+ { 0x2593, 2249 }, { 0x25a0, 2572 }, { 0x25a1, 398 }, { 0x25aa, 384 },
+ { 0x25ab, 391 }, { 0x25ac, 2582 }, { 0x25b2, 4363 }, { 0x25ba, 4355 },
+ { 0x25bc, 4339 }, { 0x25c4, 4347 }, { 0x25ca, 3194 }, { 0x25cb, 2061 },
+ { 0x25cf, 377 }, { 0x25d8, 2971 }, { 0x25d9, 2981 }, { 0x25e6, 3552 },
+ { 0x263a, 4173 }, { 0x263b, 2991 }, { 0x263c, 4223 }, { 0x2640, 2554 },
+ { 0x2642, 3226 }, { 0x2660, 4189 }, { 0x2663, 2105 }, { 0x2665, 2816 },
+ { 0x2666, 2211 }, { 0x266a, 3256 }, { 0x266b, 3268 }
+};
+
+enum { unicode_to_agl_map_size = sizeof(unicode_to_agl_map) / sizeof(unicode_to_agl_map[0]) };
+
+}