ref: 5c9a571a5a25da31507f0c70030296bf569acacc
parent: a9369f2dc96eec2f8cdb00c4bde5b452e5b462b8
author: David Turner <[email protected]>
date: Thu Feb 10 08:10:32 EST 2000
new psnames module
--- /dev/null
+++ b/src/psnames/module.mk
@@ -1,0 +1,6 @@
+make_module_list: add_psnames_driver
+
+add_psnames_driver:
+ $(OPEN_DRIVER)psnames_driver_interface$(CLOSE_DRIVER)
+ $(ECHO_DRIVER)psnames $(ECHO_DRIVER_DESC) Postscript & Unicode Glyph name handling $(ECHO_DRIVER_DONE)
+
--- /dev/null
+++ b/src/psnames/psdriver.c
@@ -1,0 +1,258 @@
+#include <psdriver.h>
+#include <psnames.h>
+#include <ftobjs.h>
+#include <stdlib.h>
+
+#ifndef FT_CONFIG_OPTION_NO_POSTSCRIPT_NAMES
+
+/* see the python script "freetype2/docs/glnames.py" which is used */
+/* to generate the following tables... */
+#include <pstables.h>
+
+#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
+ /* return the Unicode value corresponding to a given glyph. Note that */
+ /* we do deal with glyph variants by detecting a non-initial dot */
+ /* in the name, as in "A.swash" or "e.final", etc.. */
+ /* */
+ static
+ FT_ULong PS_Unicode_Value( const char* glyph_name )
+ {
+ FT_Int n;
+ char first = glyph_name[0];
+ char temp[64];
+
+ /* if the name begins with "uni", then the glyph name may be a */
+ /* hard-coded unicode character code.. */
+ if ( glyph_name[0] == 'u' &&
+ glyph_name[1] == 'n' &&
+ glyph_name[2] == 'i' )
+ {
+ /* determine wether the following characters are hexadecimal */
+ FT_Int count;
+ FT_ULong value = 0;
+ const char* p = glyph_name + 4;
+
+ for ( count = 4;count > 0; count--, p++ )
+ {
+ char c = *p;
+ unsigned char d;
+
+ d = (unsigned char)c-'0';
+ if (d >= 10)
+ {
+ d = (unsigned char)c - 'A';
+ if ( d >= 6 )
+ d = 16;
+ else
+ d += 10;
+ }
+ /* exit if one non-uppercase-hexadecimal character was found */
+ if (d >= 16)
+ break;
+
+ value = (value << 4) + d;
+ if (count == 0)
+ return value;
+ }
+ }
+
+ /* look for a non-initial dot in the glyph name in order to */
+ /* sort-out variants like "A.swash", "e.final", etc.. */
+ {
+ const char* p;
+ int len;
+
+ p = glyph_name;
+ while ( *p && *p != '.' ) p++;
+ len = p-glyph_name;
+
+ if ( *p && len < 64 )
+ {
+ strncpy( temp, glyph_name, len );
+ temp[len] = 0;
+ glyph_name = temp;
+ }
+ }
+
+ /* now, lookup the glyph in the Adobe Glyph List */
+ for ( n = 0; n < NUM_ADOBE_GLYPHS; n++ )
+ {
+ const char* name = t1_standard_glyphs[n];
+
+ if ( first == name[0] && strcmp( glyph_name, name ) == 0 )
+ return names_to_unicode[n];
+ }
+ /* not found, there is probably no Unicode value for this glyph name */
+ return 0;
+ }
+
+
+ /* qsort callback to sort the unicode map */
+ static
+ int compare_uni_maps( const void* a, const void* b )
+ {
+ PS_UniMap* map1 = (PS_UniMap*)a;
+ PS_UniMap* map2 = (PS_UniMap*)b;
+
+ return ( map1->unicode < map2->unicode ? -1 :
+ map1->unicode > map2->unicode ? 1 : 0 );
+ }
+
+
+ /* Builds a table that maps Unicode values to glyph indices */
+ static
+ FT_Error PS_Build_Unicode_Table( FT_Memory memory,
+ FT_UInt num_glyphs,
+ const char** glyph_names,
+ PS_Unicodes *table )
+ {
+ FT_Error error;
+
+ /* we first allocate the table */
+ table->num_maps = 0;
+ table->maps = 0;
+
+ if ( !ALLOC_ARRAY( table->maps, num_glyphs, PS_UniMap ) )
+ {
+ FT_UInt n;
+ FT_UInt count;
+ PS_UniMap* map;
+ FT_ULong uni_char;
+
+ map = table->maps;
+ for ( n = 0; n < num_glyphs; n++ )
+ {
+ const char* gname = glyph_names[n];
+ if (gname)
+ {
+ uni_char = PS_Unicode_Value(gname);
+ if (uni_char && uni_char != 0xFFFF)
+ {
+ map->unicode = uni_char;
+ map->glyph_index = n;
+ map++;
+ }
+ }
+ }
+
+ /* now, compress the table a bit */
+ count = map - table->maps;
+ if ( count > 0 && REALLOC( table->maps,
+ num_glyphs*sizeof(PS_UniMap),
+ count*sizeof(PS_UniMap) ) )
+ {
+ count = 0;
+ }
+
+ if (count == 0)
+ {
+ FREE( table->maps );
+ if (!error)
+ error = FT_Err_Invalid_Argument; /* no unicode chars here !! */
+ }
+ else
+ /* sort the table in increasing order of unicode values */
+ qsort( table->maps, count, sizeof(PS_UniMap), compare_uni_maps );
+
+ table->num_maps = count;
+ }
+ return error;
+ }
+
+ static
+ FT_UInt PS_Lookup_Unicode( PS_Unicodes* table,
+ FT_ULong unicode )
+ {
+ PS_UniMap *min, *max, *mid;
+ /* perform a binary search on the table */
+ min = table->maps;
+ max = min + table->num_maps - 1;
+
+ while (min <= max)
+ {
+ mid = min + (max-min)/2;
+ if ( mid->unicode == unicode )
+ return mid->glyph_index;
+
+ if (min == max)
+ break;
+
+ if ( mid->unicode < unicode ) min = mid+1;
+ else max = mid-1;
+ }
+
+ return 0xFFFF;
+ }
+
+#endif
+
+ static
+ const char* PS_Macintosh_Name( FT_UInt name_index )
+ {
+ if (name_index >= 258)
+ name_index = 0;
+
+ return standard_glyph_names[ mac_standard_names[name_index] ];
+ }
+
+
+ static
+ const char* PS_Standard_Strings( FT_UInt sid )
+ {
+ return (sid < NUM_STD_GLYPHS ? t1_standard_glyphs[sid] : 0);
+ }
+
+ static const PSNames_Interface psnames_interface =
+ {
+#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
+ (PS_Unicode_Value_Func) PS_Unicode_Value,
+ (PS_Build_Unicodes_Func) PS_Build_Unicode_Table,
+ (PS_Lookup_Unicode_Func) PS_Lookup_Unicode,
+#else
+ 0,
+ 0,
+ 0,
+#endif
+
+ (PS_Macintosh_Name_Func) PS_Macintosh_Name,
+ (PS_Adobe_Std_Strings_Func) PS_Standard_Strings,
+
+ t1_standard_encoding,
+ t1_expert_encoding
+ };
+
+
+ EXPORT_FUNC
+ const FT_DriverInterface psnames_driver_interface =
+ {
+ sizeof(FT_DriverRec),
+ 0,
+ 0,
+ 0,
+
+ "psnames", /* driver name */
+ 100, /* driver version */
+ 200, /* driver requires FreeType 2 or above */
+
+ (void*)&psnames_interface
+ };
+
+#else
+
+ EXPORT_FUNC
+ const FT_DriverInterface psnames_driver_interface =
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+
+ 0,
+ 100, /* driver version */
+ 200, /* driver requires FreeType 2 or above */
+
+ 0,
+ };
+
+#endif /* !FT_CONFIG_OPTION_NO_POSTSCRIPT_NAMES */
+
--- /dev/null
+++ b/src/psnames/psdriver.h
@@ -1,0 +1,31 @@
+/***************************************************************************/
+/* */
+/* psdriver.h */
+/* */
+/* High-level PSNames driver interface (specification). */
+/* */
+/* Copyright 1996-1999 by */
+/* David Turner, Robert Wilhelm, and Werner Lemberg. */
+/* */
+/* This file is part of the FreeType project, and may only be used, */
+/* modified, and distributed under the terms of the FreeType project */
+/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
+/* this file you indicate that you have read the license and */
+/* understand and accept it fully. */
+/* */
+/***************************************************************************/
+
+
+#ifndef PSDRIVER_H
+#define PSDRIVER_H
+
+#include <freetype.h>
+#include <ftdriver.h>
+
+ EXPORT_DEF
+ const FT_DriverInterface psnames_driver_interface;
+
+#endif /* PSDRIVER_H */
+
+
+/* END */
--- /dev/null
+++ b/src/psnames/psnames.c
@@ -1,0 +1,1 @@
+#include <psdriver.c>
--- /dev/null
+++ b/src/psnames/pstables.h
@@ -1,0 +1,2259 @@
+/* the following tables are generated automatically - do not edit */
+
+static const char* standard_glyph_names[] = {
+ ".null",
+ "CR",
+ "registered",
+ "notequal",
+ "infinity",
+ "lessequal",
+ "greaterequal",
+ "partialdiff",
+ "summation",
+ "product",
+ "pi",
+ "integral",
+ "Omega",
+ "radical",
+ "approxequal",
+ "Delta",
+ "guillemotleft",
+ "guillemotright",
+ "nbspace",
+ "lozenge",
+ "periodcentered",
+ "apple",
+ "lslash",
+ "franc",
+ "Gbreve",
+ "gbreve",
+ "Idot",
+ "Scedilla",
+ "scedilla",
+ "Cacute",
+ "cacute",
+ "Ccaron",
+ "ccaron",
+ "dmacron",
+ ".notdef",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quoteright",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "quoteleft",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "exclamdown",
+ "cent",
+ "sterling",
+ "fraction",
+ "yen",
+ "florin",
+ "section",
+ "currency",
+ "quotesingle",
+ "quotedblleft",
+ "quillemotleft",
+ "guilsinglleft",
+ "guilsinglright",
+ "fi",
+ "fl",
+ "endash",
+ "dagger",
+ "daggerdbl",
+ "periodcenter",
+ "paragraph",
+ "bullet",
+ "quotesinglbase",
+ "quotedblbase",
+ "quotedblright",
+ "quillemotright",
+ "ellipsis",
+ "perthousand",
+ "questiondown",
+ "grave",
+ "acute",
+ "circumflex",
+ "tilde",
+ "macron",
+ "breve",
+ "dotaccent",
+ "dieresis",
+ "ring",
+ "cedilla",
+ "hungarumlaut",
+ "ogonek",
+ "caron",
+ "emdash",
+ "AE",
+ "ordfeminine",
+ "Lslash",
+ "Oslash",
+ "OE",
+ "ordmasculine",
+ "ae",
+ "dotlessi",
+ "Islash",
+ "oslash",
+ "oe",
+ "germandbls",
+ "onesuperior",
+ "logicalnot",
+ "mu",
+ "trademark",
+ "Eth",
+ "onehalf",
+ "plusminus",
+ "Thorn",
+ "onequarter",
+ "divide",
+ "brokenbar",
+ "degree",
+ "thorn",
+ "threequarters",
+ "twosuperior",
+ "regitered",
+ "minus",
+ "eth",
+ "multiply",
+ "threesuperior",
+ "copyright",
+ "Aacute",
+ "Acircumflex",
+ "Adieresis",
+ "Agrave",
+ "Aring",
+ "Atilde",
+ "Ccedilla",
+ "Eacute",
+ "Ecircumflex",
+ "Edieresis",
+ "Egrave",
+ "Iacute",
+ "Icircumflex",
+ "Idieresis",
+ "Igrave",
+ "Ntilde",
+ "Oacute",
+ "Ocircumflex",
+ "Odieresis",
+ "Ograve",
+ "Otilde",
+ "Scaron",
+ "Uacute",
+ "Ucircumflex",
+ "Udieresis",
+ "Ugrave",
+ "Yacute",
+ "Ydieresis",
+ "Zcaron",
+ "aacute",
+ "acircumflex",
+ "adieresis",
+ "agrave",
+ "aring",
+ "atilde",
+ "ccedilla",
+ "eacute",
+ "ecircumflex",
+ "edieresis",
+ "egrave",
+ "iacute",
+ "icircumflex",
+ "idieresis",
+ "igrave",
+ "ntilde",
+ "oacute",
+ "ocircumflex",
+ "odieresis",
+ "ograve",
+ "otilde",
+ "scaron",
+ "uacute",
+ "ucircumflex",
+ "udieresis",
+ "ugrave",
+ "yacute",
+ "ydieresis",
+ "zcaron",
+ "exclamsmall",
+ "Hungarumlautsmall",
+ "dollaroldstyle",
+ "dollarsuperior",
+ "ampersandsmall",
+ "Acutesmall",
+ "parenleftsuperior",
+ "parenrightsuperior",
+ "twodotenleader",
+ "onedotenleader",
+ "zerooldstyle",
+ "oneoldstyle",
+ "twooldstyle",
+ "threeoldstyle",
+ "fouroldstyle",
+ "fiveoldstyle",
+ "sixoldstyle",
+ "sevenoldstyle",
+ "eightoldstyle",
+ "nineoldstyle",
+ "commasuperior",
+ "threequartersemdash",
+ "periodsuperior",
+ "questionsmall",
+ "asuperior",
+ "bsuperior",
+ "centsuperior",
+ "dsuperior",
+ "esuperior",
+ "isuperior",
+ "lsuperior",
+ "msuperior",
+ "nsuperior",
+ "osuperior",
+ "rsuperior",
+ "ssuperior",
+ "tsuperior",
+ "ff",
+ "ffi",
+ "ffl",
+ "parenleftinferior",
+ "parenrightinferior",
+ "Circumflexsmall",
+ "hyphensuperior",
+ "Gravesmall",
+ "Asmall",
+ "Bsmall",
+ "Csmall",
+ "Dsmall",
+ "Esmall",
+ "Fsmall",
+ "Gsmall",
+ "Hsmall",
+ "Ismall",
+ "Jsmall",
+ "Ksmall",
+ "Lsmall",
+ "Msmall",
+ "Nsmall",
+ "Osmall",
+ "Psmall",
+ "Qsmall",
+ "Rsmall",
+ "Ssmall",
+ "Tsmall",
+ "Usmall",
+ "Vsmall",
+ "Wsmall",
+ "Xsmall",
+ "Ysmall",
+ "Zsmall",
+ "colonmonetary",
+ "onefitted",
+ "rupiah",
+ "Tildesmall",
+ "exclamdownsmall",
+ "centoldstyle",
+ "Lslashsmall",
+ "Scaronsmall",
+ "Zcaronsmall",
+ "Dieresissmall",
+ "Brevesmall",
+ "Caronsmall",
+ "Dotaccentsmall",
+ "Macronsmall",
+ "figuredash",
+ "hypheninferior",
+ "Ogoneksmall",
+ "Ringsmall",
+ "Cedillasmall",
+ "questiondownsmall",
+ "oneeighth",
+ "threeeighths",
+ "fiveeighths",
+ "seveneighths",
+ "onethird",
+ "twothirds",
+ "zerosuperior",
+ "foursuperior",
+ "fivesuperior",
+ "sixsuperior",
+ "sevensuperior",
+ "eightsuperior",
+ "ninesuperior",
+ "zeroinferior",
+ "oneinferior",
+ "twoinferior",
+ "threeinferior",
+ "fourinferior",
+ "fiveinferior",
+ "sixinferior",
+ "seveninferior",
+ "eightinferior",
+ "nineinferior",
+ "centinferior",
+ "dollarinferior",
+ "periodinferior",
+ "commainferior",
+ "Agravesmall",
+ "Aacutesmall",
+ "Acircumflexsmall",
+ "Atildesmall",
+ "Adieresissmall",
+ "Aringsmall",
+ "AEsmall",
+ "Ccedillasmall",
+ "Egravesmall",
+ "Eacutesmall",
+ "Ecircumflexsmall",
+ "Edieresissmall",
+ "Igravesmall",
+ "Iacutesmall",
+ "Icircumflexsmall",
+ "Idieresissmall",
+ "Ethsmall",
+ "Ntildesmall",
+ "Ogravesmall",
+ "Oacutesmall",
+ "Ocircumflexsmall",
+ "Otildesmall",
+ "Odieresissmall",
+ "OEsmall",
+ "Oslashsmall",
+ "Ugravesmall",
+ "Uacautesmall",
+ "Ucircumflexsmall",
+ "Udieresissmall",
+ "Yacutesmall",
+ "Thornsmall",
+ "Ydieresissmall",
+ "001.000",
+ "001.001",
+ "001.002",
+ "001.003",
+ "Black",
+ "Bold",
+ "Book",
+ "Light",
+ "Medium",
+ "Regular",
+ "Roman",
+ "Semibold",
+#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
+ "AEacute",
+ "Abreve",
+ "Acute",
+ "Alpha",
+ "Alphatonos",
+ "Amacron",
+ "Aogonek",
+ "Aringacute",
+ "Beta",
+ "Caron",
+ "Ccircumflex",
+ "Cdotaccent",
+ "Chi",
+ "Dcaron",
+ "Dcroat",
+ "Dieresis",
+ "DieresisAcute",
+ "DieresisGrave",
+ "Ebreve",
+ "Ecaron",
+ "Edotaccent",
+ "Emacron",
+ "Eng",
+ "Eogonek",
+ "Epsilon",
+ "Epsilontonos",
+ "Eta",
+ "Etatonos",
+ "Euro",
+ "Gamma",
+ "Gcaron",
+ "Gcircumflex",
+ "Gcommaaccent",
+ "Gdotaccent",
+ "Grave",
+ "H18533",
+ "H18543",
+ "H18551",
+ "H22073",
+ "Hbar",
+ "Hcircumflex",
+ "Hungarumlaut",
+ "IJ",
+ "Ibreve",
+ "Idotaccent",
+ "Ifraktur",
+ "Imacron",
+ "Iogonek",
+ "Iota",
+ "Iotadieresis",
+ "Iotatonos",
+ "Itilde",
+ "Jcircumflex",
+ "Kappa",
+ "Kcommaaccent",
+ "LL",
+ "Lacute",
+ "Lambda",
+ "Lcaron",
+ "Lcommaaccent",
+ "Ldot",
+ "Macron",
+ "Mu",
+ "Nacute",
+ "Ncaron",
+ "Ncommaaccent",
+ "Nu",
+ "Obreve",
+ "Ohorn",
+ "Ohungarumlaut",
+ "Omacron",
+ "Omegatonos",
+ "Omicron",
+ "Omicrontonos",
+ "Oslashacute",
+ "Phi",
+ "Pi",
+ "Psi",
+ "Racute",
+ "Rcaron",
+ "Rcommaaccent",
+ "Rfraktur",
+ "Rho",
+ "SF010000",
+ "SF020000",
+ "SF030000",
+ "SF040000",
+ "SF050000",
+ "SF060000",
+ "SF070000",
+ "SF080000",
+ "SF090000",
+ "SF100000",
+ "SF110000",
+ "SF190000",
+ "SF200000",
+ "SF210000",
+ "SF220000",
+ "SF230000",
+ "SF240000",
+ "SF250000",
+ "SF260000",
+ "SF270000",
+ "SF280000",
+ "SF360000",
+ "SF370000",
+ "SF380000",
+ "SF390000",
+ "SF400000",
+ "SF410000",
+ "SF420000",
+ "SF430000",
+ "SF440000",
+ "SF450000",
+ "SF460000",
+ "SF470000",
+ "SF480000",
+ "SF490000",
+ "SF500000",
+ "SF510000",
+ "SF520000",
+ "SF530000",
+ "SF540000",
+ "Sacute",
+ "Scircumflex",
+ "Scommaaccent",
+ "Sigma",
+ "Tau",
+ "Tbar",
+ "Tcaron",
+ "Tcommaaccent",
+ "Tcommaaccent",
+ "Theta",
+ "Uacutesmall",
+ "Ubreve",
+ "Uhorn",
+ "Uhungarumlaut",
+ "Umacron",
+ "Uogonek",
+ "Upsilon",
+ "Upsilon1",
+ "Upsilondieresis",
+ "Upsilontonos",
+ "Uring",
+ "Utilde",
+ "Wacute",
+ "Wcircumflex",
+ "Wdieresis",
+ "Wgrave",
+ "Xi",
+ "Ycircumflex",
+ "Ygrave",
+ "Zacute",
+ "Zdotaccent",
+ "Zeta",
+ "abreve",
+ "acutecomb",
+ "aeacute",
+ "afii00208",
+ "afii10017",
+ "afii10018",
+ "afii10019",
+ "afii10020",
+ "afii10021",
+ "afii10022",
+ "afii10023",
+ "afii10024",
+ "afii10025",
+ "afii10026",
+ "afii10027",
+ "afii10028",
+ "afii10029",
+ "afii10030",
+ "afii10031",
+ "afii10032",
+ "afii10033",
+ "afii10034",
+ "afii10035",
+ "afii10036",
+ "afii10037",
+ "afii10038",
+ "afii10039",
+ "afii10040",
+ "afii10041",
+ "afii10042",
+ "afii10043",
+ "afii10044",
+ "afii10045",
+ "afii10046",
+ "afii10047",
+ "afii10048",
+ "afii10049",
+ "afii10050",
+ "afii10051",
+ "afii10052",
+ "afii10053",
+ "afii10054",
+ "afii10055",
+ "afii10056",
+ "afii10057",
+ "afii10058",
+ "afii10059",
+ "afii10060",
+ "afii10061",
+ "afii10062",
+ "afii10063",
+ "afii10064",
+ "afii10065",
+ "afii10066",
+ "afii10067",
+ "afii10068",
+ "afii10069",
+ "afii10070",
+ "afii10071",
+ "afii10072",
+ "afii10073",
+ "afii10074",
+ "afii10075",
+ "afii10076",
+ "afii10077",
+ "afii10078",
+ "afii10079",
+ "afii10080",
+ "afii10081",
+ "afii10082",
+ "afii10083",
+ "afii10084",
+ "afii10085",
+ "afii10086",
+ "afii10087",
+ "afii10088",
+ "afii10089",
+ "afii10090",
+ "afii10091",
+ "afii10092",
+ "afii10093",
+ "afii10094",
+ "afii10095",
+ "afii10096",
+ "afii10097",
+ "afii10098",
+ "afii10099",
+ "afii10100",
+ "afii10101",
+ "afii10102",
+ "afii10103",
+ "afii10104",
+ "afii10105",
+ "afii10106",
+ "afii10107",
+ "afii10108",
+ "afii10109",
+ "afii10110",
+ "afii10145",
+ "afii10146",
+ "afii10147",
+ "afii10148",
+ "afii10192",
+ "afii10193",
+ "afii10194",
+ "afii10195",
+ "afii10196",
+ "afii10831",
+ "afii10832",
+ "afii10846",
+ "afii299",
+ "afii300",
+ "afii301",
+ "afii57381",
+ "afii57388",
+ "afii57392",
+ "afii57393",
+ "afii57394",
+ "afii57395",
+ "afii57396",
+ "afii57397",
+ "afii57398",
+ "afii57399",
+ "afii57400",
+ "afii57401",
+ "afii57403",
+ "afii57407",
+ "afii57409",
+ "afii57410",
+ "afii57411",
+ "afii57412",
+ "afii57413",
+ "afii57414",
+ "afii57415",
+ "afii57416",
+ "afii57417",
+ "afii57418",
+ "afii57419",
+ "afii57420",
+ "afii57421",
+ "afii57422",
+ "afii57423",
+ "afii57424",
+ "afii57425",
+ "afii57426",
+ "afii57427",
+ "afii57428",
+ "afii57429",
+ "afii57430",
+ "afii57431",
+ "afii57432",
+ "afii57433",
+ "afii57434",
+ "afii57440",
+ "afii57441",
+ "afii57442",
+ "afii57443",
+ "afii57444",
+ "afii57445",
+ "afii57446",
+ "afii57448",
+ "afii57449",
+ "afii57450",
+ "afii57451",
+ "afii57452",
+ "afii57453",
+ "afii57454",
+ "afii57455",
+ "afii57456",
+ "afii57457",
+ "afii57458",
+ "afii57470",
+ "afii57505",
+ "afii57506",
+ "afii57507",
+ "afii57508",
+ "afii57509",
+ "afii57511",
+ "afii57512",
+ "afii57513",
+ "afii57514",
+ "afii57519",
+ "afii57534",
+ "afii57636",
+ "afii57645",
+ "afii57658",
+ "afii57664",
+ "afii57665",
+ "afii57666",
+ "afii57667",
+ "afii57668",
+ "afii57669",
+ "afii57670",
+ "afii57671",
+ "afii57672",
+ "afii57673",
+ "afii57674",
+ "afii57675",
+ "afii57676",
+ "afii57677",
+ "afii57678",
+ "afii57679",
+ "afii57680",
+ "afii57681",
+ "afii57682",
+ "afii57683",
+ "afii57684",
+ "afii57685",
+ "afii57686",
+ "afii57687",
+ "afii57688",
+ "afii57689",
+ "afii57690",
+ "afii57694",
+ "afii57695",
+ "afii57700",
+ "afii57705",
+ "afii57716",
+ "afii57717",
+ "afii57718",
+ "afii57723",
+ "afii57793",
+ "afii57794",
+ "afii57795",
+ "afii57796",
+ "afii57797",
+ "afii57798",
+ "afii57799",
+ "afii57800",
+ "afii57801",
+ "afii57802",
+ "afii57803",
+ "afii57804",
+ "afii57806",
+ "afii57807",
+ "afii57839",
+ "afii57841",
+ "afii57842",
+ "afii57929",
+ "afii61248",
+ "afii61289",
+ "afii61352",
+ "afii61573",
+ "afii61574",
+ "afii61575",
+ "afii61664",
+ "afii63167",
+ "afii64937",
+ "aleph",
+ "alpha",
+ "alphatonos",
+ "amacron",
+ "angle",
+ "angleleft",
+ "angleright",
+ "anoteleia",
+ "aogonek",
+ "aringacute",
+ "arrowboth",
+ "arrowdblboth",
+ "arrowdbldown",
+ "arrowdblleft",
+ "arrowdblright",
+ "arrowdblup",
+ "arrowdown",
+ "arrowhorizex",
+ "arrowleft",
+ "arrowright",
+ "arrowup",
+ "arrowupdn",
+ "arrowupdnbse",
+ "arrowvertex",
+ "asteriskmath",
+ "beta",
+ "block",
+ "braceex",
+ "braceleftbt",
+ "braceleftmid",
+ "bracelefttp",
+ "bracerightbt",
+ "bracerightmid",
+ "bracerighttp",
+ "bracketleftbt",
+ "bracketleftex",
+ "bracketlefttp",
+ "bracketrightbt",
+ "bracketrightex",
+ "bracketrighttp",
+ "carriagereturn",
+ "ccircumflex",
+ "cdotaccent",
+ "chi",
+ "circle",
+ "circlemultiply",
+ "circleplus",
+ "club",
+ "commaaccent",
+ "congruent",
+ "copyrightsans",
+ "copyrightserif",
+ "cyrBreve",
+ "cyrFlex",
+ "cyrbreve",
+ "cyrflex",
+ "dblGrave",
+ "dblgrave",
+ "dcaron",
+ "dcroat",
+ "delta",
+ "diamond",
+ "dieresisacute",
+ "dieresisgrave",
+ "dieresistonos",
+ "dkshade",
+ "dnblock",
+ "dong",
+ "dotbelowcomb",
+ "dotlessj",
+ "dotmath",
+ "ebreve",
+ "ecaron",
+ "edotaccent",
+ "element",
+ "emacron",
+ "emptyset",
+ "eng",
+ "eogonek",
+ "epsilon",
+ "epsilontonos",
+ "equivalence",
+ "estimated",
+ "eta",
+ "etatonos",
+ "exclamdbl",
+ "existential",
+ "female",
+ "filledbox",
+ "filledrect",
+ "gamma",
+ "gcaron",
+ "gcircumflex",
+ "gcommaaccent",
+ "gdotaccent",
+ "gradient",
+ "gravecomb",
+ "hbar",
+ "hcircumflex",
+ "heart",
+ "hookabovecomb",
+ "house",
+ "ibreve",
+ "ij",
+ "imacron",
+ "integralbt",
+ "integralex",
+ "integraltp",
+ "intersection",
+ "invbullet",
+ "invcircle",
+ "invsmileface",
+ "iogonek",
+ "iota",
+ "iotadieresis",
+ "iotadieresistonos",
+ "iotatonos",
+ "itilde",
+ "jcircumflex",
+ "kappa",
+ "kcommaaccent",
+ "kgreenlandic",
+ "lacute",
+ "lambda",
+ "lcaron",
+ "lcommaaccent",
+ "ldot",
+ "lfblock",
+ "lira",
+ "ll",
+ "logicaland",
+ "logicalor",
+ "longs",
+ "ltshade",
+ "male",
+ "minute",
+ "musicalnote",
+ "musicalnotedbl",
+ "nacute",
+ "napostrophe",
+ "ncaron",
+ "ncommaaccent",
+ "notelement",
+ "notsubset",
+ "nu",
+ "obreve",
+ "ohorn",
+ "ohungarumlaut",
+ "omacron",
+ "omega",
+ "omega1",
+ "omegatonos",
+ "omicron",
+ "omicrontonos",
+ "openbullet",
+ "orthogonal",
+ "oslashacute",
+ "parenleftbt",
+ "parenleftex",
+ "parenlefttp",
+ "parenrightbt",
+ "parenrightex",
+ "parenrighttp",
+ "perpendicular",
+ "peseta",
+ "phi",
+ "phi1",
+ "prescription",
+ "propersubset",
+ "propersuperset",
+ "proportional",
+ "psi",
+ "quotereversed",
+ "racute",
+ "radicalex",
+ "rcaron",
+ "rcommaaccent",
+ "reflexsubset",
+ "reflexsuperset",
+ "registersans",
+ "registerserif",
+ "revlogicalnot",
+ "rho",
+ "rtblock",
+ "sacute",
+ "scircumflex",
+ "scommaaccent",
+ "second",
+ "shade",
+ "sigma",
+ "sigma1",
+ "similar",
+ "smileface",
+ "spade",
+ "suchthat",
+ "sun",
+ "tau",
+ "tbar",
+ "tcaron",
+ "tcommaaccent",
+ "tcommaaccent",
+ "therefore",
+ "theta",
+ "theta1",
+ "tildecomb",
+ "tonos",
+ "trademarksans",
+ "trademarkserif",
+ "triagdn",
+ "triaglf",
+ "triagrt",
+ "triagup",
+ "ubreve",
+ "uhorn",
+ "uhungarumlaut",
+ "umacron",
+ "underscoredbl",
+ "union",
+ "universal",
+ "uogonek",
+ "upblock",
+ "upsilon",
+ "upsilondieresis",
+ "upsilondieresistonos",
+ "upsilontonos",
+ "uring",
+ "utilde",
+ "wacute",
+ "wcircumflex",
+ "wdieresis",
+ "weierstrass",
+ "wgrave",
+ "xi",
+ "ycircumflex",
+ "ygrave",
+ "zacute",
+ "zdotaccent",
+ "zeta",
+#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
+ 0 };
+
+static const char** t1_standard_glyphs = standard_glyph_names + 34;
+
+#define NUM_STD_GLYPHS 391
+
+#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
+#define NUM_ADOBE_GLYPHS 1032
+#else
+#define NUM_ADOBE_GLYPHS 391
+#endif
+
+static const unsigned short mac_standard_names[259] = {
+ 0,
+ 0,
+ 1,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 104,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 124,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 173,
+ 175,
+ 177,
+ 178,
+ 186,
+ 189,
+ 195,
+ 200,
+ 203,
+ 201,
+ 202,
+ 205,
+ 204,
+ 206,
+ 207,
+ 210,
+ 208,
+ 209,
+ 211,
+ 214,
+ 212,
+ 213,
+ 215,
+ 216,
+ 219,
+ 217,
+ 218,
+ 220,
+ 222,
+ 225,
+ 223,
+ 224,
+ 112,
+ 161,
+ 97,
+ 98,
+ 102,
+ 116,
+ 115,
+ 149,
+ 2,
+ 170,
+ 153,
+ 125,
+ 131,
+ 3,
+ 138,
+ 141,
+ 4,
+ 156,
+ 5,
+ 6,
+ 100,
+ 152,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 139,
+ 143,
+ 12,
+ 144,
+ 147,
+ 123,
+ 96,
+ 151,
+ 13,
+ 101,
+ 14,
+ 15,
+ 16,
+ 17,
+ 121,
+ 18,
+ 174,
+ 176,
+ 191,
+ 142,
+ 148,
+ 111,
+ 137,
+ 105,
+ 119,
+ 65,
+ 8,
+ 159,
+ 19,
+ 227,
+ 198,
+ 99,
+ 103,
+ 107,
+ 108,
+ 109,
+ 110,
+ 113,
+ 20,
+ 117,
+ 118,
+ 122,
+ 172,
+ 179,
+ 171,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 187,
+ 188,
+ 21,
+ 190,
+ 193,
+ 194,
+ 196,
+ 145,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 140,
+ 22,
+ 192,
+ 221,
+ 199,
+ 228,
+ 160,
+ 154,
+ 167,
+ 197,
+ 226,
+ 157,
+ 162,
+ 166,
+ 168,
+ 150,
+ 164,
+ 169,
+ 155,
+ 158,
+ 163,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 0 };
+
+#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
+static const unsigned short names_to_unicode[392] = {
+ 0,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x2019,
+ 0x0028,
+ 0x0029,
+ 0x002A,
+ 0x002B,
+ 0x002C,
+ 0x002D,
+ 0x002E,
+ 0x002F,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003A,
+ 0x003B,
+ 0x003C,
+ 0x003D,
+ 0x003E,
+ 0x003F,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004A,
+ 0x004B,
+ 0x004C,
+ 0x004D,
+ 0x004E,
+ 0x004F,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005A,
+ 0x005B,
+ 0x005C,
+ 0x005D,
+ 0x005E,
+ 0x005F,
+ 0x2018,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006A,
+ 0x006B,
+ 0x006C,
+ 0x006D,
+ 0x006E,
+ 0x006F,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007A,
+ 0x007B,
+ 0x007C,
+ 0x007D,
+ 0x007E,
+ 0x00A1,
+ 0x00A2,
+ 0x00A3,
+ 0x2044,
+ 0x00A5,
+ 0x0192,
+ 0x00A7,
+ 0x00A4,
+ 0x0027,
+ 0x201C,
+ 0,
+ 0x2039,
+ 0x203A,
+ 0xFB01,
+ 0xFB02,
+ 0x2013,
+ 0x2020,
+ 0x2021,
+ 0,
+ 0x00B6,
+ 0x2022,
+ 0x201A,
+ 0x201E,
+ 0x201D,
+ 0,
+ 0x2026,
+ 0x2030,
+ 0x00BF,
+ 0x0060,
+ 0x00B4,
+ 0x02C6,
+ 0x02DC,
+ 0x00AF,
+ 0x02D8,
+ 0x02D9,
+ 0x00A8,
+ 0x02DA,
+ 0x00B8,
+ 0x02DD,
+ 0x02DB,
+ 0x02C7,
+ 0x2014,
+ 0x00C6,
+ 0x00AA,
+ 0x0141,
+ 0x00D8,
+ 0x0152,
+ 0x00BA,
+ 0x00E6,
+ 0x0131,
+ 0,
+ 0x00F8,
+ 0x0153,
+ 0x00DF,
+ 0x00B9,
+ 0x00AC,
+ 0x00B5,
+ 0x2122,
+ 0x00D0,
+ 0x00BD,
+ 0x00B1,
+ 0x00DE,
+ 0x00BC,
+ 0x00F7,
+ 0x00A6,
+ 0x00B0,
+ 0x00FE,
+ 0x00BE,
+ 0x00B2,
+ 0,
+ 0x2212,
+ 0x00F0,
+ 0x00D7,
+ 0x00B3,
+ 0x00A9,
+ 0x00C1,
+ 0x00C2,
+ 0x00C4,
+ 0x00C0,
+ 0x00C5,
+ 0x00C3,
+ 0x00C7,
+ 0x00C9,
+ 0x00CA,
+ 0x00CB,
+ 0x00C8,
+ 0x00CD,
+ 0x00CE,
+ 0x00CF,
+ 0x00CC,
+ 0x00D1,
+ 0x00D3,
+ 0x00D4,
+ 0x00D6,
+ 0x00D2,
+ 0x00D5,
+ 0x0160,
+ 0x00DA,
+ 0x00DB,
+ 0x00DC,
+ 0x00D9,
+ 0x00DD,
+ 0x0178,
+ 0x017D,
+ 0x00E1,
+ 0x00E2,
+ 0x00E4,
+ 0x00E0,
+ 0x00E5,
+ 0x00E3,
+ 0x00E7,
+ 0x00E9,
+ 0x00EA,
+ 0x00EB,
+ 0x00E8,
+ 0x00ED,
+ 0x00EE,
+ 0x00EF,
+ 0x00EC,
+ 0x00F1,
+ 0x00F3,
+ 0x00F4,
+ 0x00F6,
+ 0x00F2,
+ 0x00F5,
+ 0x0161,
+ 0x00FA,
+ 0x00FB,
+ 0x00FC,
+ 0x00F9,
+ 0x00FD,
+ 0x00FF,
+ 0x017E,
+ 0xF721,
+ 0xF6F8,
+ 0xF724,
+ 0xF6E4,
+ 0xF726,
+ 0xF7B4,
+ 0x207D,
+ 0x207E,
+ 0x2025,
+ 0x2024,
+ 0xF730,
+ 0xF731,
+ 0xF732,
+ 0xF733,
+ 0xF734,
+ 0xF735,
+ 0xF736,
+ 0xF737,
+ 0xF738,
+ 0xF739,
+ 0xF6E2,
+ 0xF6DE,
+ 0xF6E8,
+ 0xF73F,
+ 0xF6E9,
+ 0xF6EA,
+ 0xF6E0,
+ 0xF6EB,
+ 0xF6EC,
+ 0xF6ED,
+ 0xF6EE,
+ 0xF6EF,
+ 0x207F,
+ 0xF6F0,
+ 0xF6F1,
+ 0xF6F2,
+ 0xF6F3,
+ 0xFB00,
+ 0xFB03,
+ 0xFB04,
+ 0x208D,
+ 0x208E,
+ 0xF6F6,
+ 0xF6E6,
+ 0xF760,
+ 0xF761,
+ 0xF762,
+ 0xF763,
+ 0xF764,
+ 0xF765,
+ 0xF766,
+ 0xF767,
+ 0xF768,
+ 0xF769,
+ 0xF76A,
+ 0xF76B,
+ 0xF76C,
+ 0xF76D,
+ 0xF76E,
+ 0xF76F,
+ 0xF770,
+ 0xF771,
+ 0xF772,
+ 0xF773,
+ 0xF774,
+ 0xF775,
+ 0xF776,
+ 0xF777,
+ 0xF778,
+ 0xF779,
+ 0xF77A,
+ 0x20A1,
+ 0xF6DC,
+ 0xF6DD,
+ 0xF6FE,
+ 0xF7A1,
+ 0xF7A2,
+ 0xF6F9,
+ 0xF6FD,
+ 0xF6FF,
+ 0xF7A8,
+ 0xF6F4,
+ 0xF6F5,
+ 0xF6F7,
+ 0xF7AF,
+ 0x2012,
+ 0xF6E5,
+ 0xF6FB,
+ 0xF6FC,
+ 0xF7B8,
+ 0xF7BF,
+ 0x215B,
+ 0x215C,
+ 0x215D,
+ 0x215E,
+ 0x2153,
+ 0x2154,
+ 0x2070,
+ 0x2074,
+ 0x2075,
+ 0x2076,
+ 0x2077,
+ 0x2078,
+ 0x2079,
+ 0x2080,
+ 0x2081,
+ 0x2082,
+ 0x2083,
+ 0x2084,
+ 0x2085,
+ 0x2086,
+ 0x2087,
+ 0x2088,
+ 0x2089,
+ 0xF6DF,
+ 0xF6E3,
+ 0xF6E7,
+ 0xF6E1,
+ 0xF7E0,
+ 0xF7E1,
+ 0xF7E2,
+ 0xF7E3,
+ 0xF7E4,
+ 0xF7E5,
+ 0xF7E6,
+ 0xF7E7,
+ 0xF7E8,
+ 0xF7E9,
+ 0xF7EA,
+ 0xF7EB,
+ 0xF7EC,
+ 0xF7ED,
+ 0xF7EE,
+ 0xF7EF,
+ 0xF7F0,
+ 0xF7F1,
+ 0xF7F2,
+ 0xF7F3,
+ 0xF7F4,
+ 0xF7F5,
+ 0xF7F6,
+ 0xF6FA,
+ 0xF7F8,
+ 0xF7F9,
+ 0,
+ 0xF7FB,
+ 0xF7FC,
+ 0xF7FD,
+ 0xF7FE,
+ 0xF7FF,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 };
+#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
+
+static const unsigned short t1_standard_encoding[257] = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 0,
+ 111,
+ 112,
+ 113,
+ 114,
+ 0,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 0,
+ 123,
+ 0,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 0,
+ 132,
+ 133,
+ 0,
+ 134,
+ 135,
+ 136,
+ 137,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 138,
+ 0,
+ 139,
+ 0,
+ 0,
+ 0,
+ 0,
+ 140,
+ 141,
+ 142,
+ 143,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 144,
+ 0,
+ 0,
+ 0,
+ 145,
+ 0,
+ 0,
+ 146,
+ 147,
+ 148,
+ 149,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0 };
+
+static const unsigned short t1_expert_encoding[257] = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 229,
+ 230,
+ 0,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 13,
+ 14,
+ 15,
+ 99,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 27,
+ 28,
+ 249,
+ 250,
+ 251,
+ 252,
+ 0,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 0,
+ 0,
+ 0,
+ 258,
+ 0,
+ 0,
+ 259,
+ 260,
+ 261,
+ 262,
+ 0,
+ 0,
+ 263,
+ 264,
+ 265,
+ 0,
+ 266,
+ 109,
+ 110,
+ 267,
+ 268,
+ 269,
+ 0,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 304,
+ 305,
+ 306,
+ 0,
+ 0,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 0,
+ 312,
+ 0,
+ 0,
+ 312,
+ 0,
+ 0,
+ 314,
+ 315,
+ 0,
+ 0,
+ 316,
+ 317,
+ 318,
+ 0,
+ 0,
+ 0,
+ 158,
+ 155,
+ 163,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 0,
+ 0,
+ 326,
+ 150,
+ 164,
+ 169,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 0 };
+
+/* end of automatically-generated tables */
--- /dev/null
+++ b/src/psnames/rules.mk
@@ -1,0 +1,91 @@
+#****************************************************************************
+#* *
+#* PSNames driver Makefile *
+#* *
+#* Copyright 1996-2000 by *
+#* David Turner, Robert Wilhelm, and Werner Lemberg. *
+#* *
+#* This file is part of the FreeType project, and may only be used *
+#* modified and distributed under the terms of the FreeType project *
+#* license, LICENSE.TXT. By continuing to use, modify, or distribute *
+#* this file you indicate that you have read the license and *
+#* understand and accept it fully. *
+#* *
+#****************************************************************************
+
+
+ifndef PSNAMES_INCLUDE
+PSNAMES_INCLUDED := 1
+
+include $(SRC_)shared/rules.mk
+
+# PSNAMES driver directory
+#
+PSNAMES_DIR := $(SRC_)psnames
+PSNAMES_DIR_ := $(PSNAMES_DIR)$(SEP)
+
+# additional include flags used when compiling the driver
+#
+PSNAMES_INCLUDE := $(SHARED) $(PSNAMES_DIR)
+
+
+# compilation flags for the driver
+#
+PSNAMES_CFLAGS := $(PSNAMES_INCLUDE:%=$I%)
+PSNAMES_COMPILE := $(FT_COMPILE) $(PSNAMES_CFLAGS)
+
+
+# TrueType driver sources (i.e., C files)
+#
+PSNAMES_DRV_SRC := $(PSNAMES_DIR_)psdriver.c
+
+
+# TrueType driver headers
+#
+PSNAMES_DRV_H := $(SHARED_H) \
+ $(PSNAMES_DIR_)psdriver.h \
+ $(PSNAMES_DIR_)pstables.h
+
+
+# driver object(s)
+#
+# PSNAMES_DRV_OBJ_M is used during `debug' builds
+# PSNAMES_DRV_OBJ_S is used during `release' builds
+#
+PSNAMES_DRV_OBJ_M := $(PSNAMES_DRV_SRC:$(PSNAMES_DIR_)%.c=$(OBJ_)%.$O)
+PSNAMES_DRV_OBJ_S := $(OBJ_)psnames.$O
+
+
+# driver root source file(s)
+#
+PSNAMES_DRV_SRC_M := $(PSNAMES_DRV_SRC)
+PSNAMES_DRV_SRC_S := $(PSNAMES_DIR_)psdriver.c
+
+
+# driver - single object
+#
+# the driver is recompiled if any of the header or source files is changed
+# as well as any of the shared source files found in `shared/sfnt'
+#
+$(PSNAMES_DRV_OBJ_S): $(BASE_H) $(SHARED_H) $(PSNAMES_DRV_H) $(PSNAMES_DRV_SRC) $(PSNAMES_DRV_SRC_S)
+ $(PSNAMES_COMPILE) $T$@ $(PSNAMES_DRV_SRC_S)
+
+
+
+# driver - multiple objects
+#
+# All objects are recompiled if any of the header files is changed
+#
+$(OBJ_)tt%.$O: $(PSNAMES_DIR_)tt%.c $(BASE_H) $(SHARED_H) $(PSNAMES_DRV_H)
+ $(PSNAMES_COMPILE) $T$@ $<
+
+$(OBJ_)sf%.$O: $(PSNAMES_DIR_)sf%.c $(BASE_H) $(SHARED_H) $(PSNAMES_DRV_H)
+ $(PSNAMES_COMPILE) $T$@ $<
+
+# update main driver object lists
+#
+DRV_OBJS_S += $(PSNAMES_DRV_OBJ_S)
+DRV_OBJS_M += $(PSNAMES_DRV_OBJ_M)
+
+endif
+# END