* src/tools/glnames.py: Formatted.
Format output to be in sync with other FreeType code. Import `re' and `os.path'. (StringTable) <__init__>: Add parameter to initialize master table name. (StringTable) <dump>: Don't pass master table name. (StringTable) <dump_sublist>: Emit explanatory comment. Simplify and make output more human readable. (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused. (main): Use `basename' for file name in header. * src/psnames/pstables.h: Regenerated. Other formatting.
This commit is contained in:
parent
705620beeb
commit
56ef6bc4d6
33
ChangeLog
33
ChangeLog
|
@ -1,16 +1,33 @@
|
|||
2005-03-10 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* src/tools/glnames.py: Formatted.
|
||||
Format output to be in sync with other FreeType code.
|
||||
Import `re' and `os.path'.
|
||||
(StringTable) <__init__>: Add parameter to initialize master table
|
||||
name.
|
||||
(StringTable) <dump>: Don't pass master table name.
|
||||
(StringTable) <dump_sublist>: Emit explanatory comment.
|
||||
Simplify and make output more human readable.
|
||||
(t1_bias, glyph_list, adobe_glyph_names): Removed. Unused.
|
||||
(main): Use `basename' for file name in header.
|
||||
|
||||
* src/psnames/pstables.h: Regenerated.
|
||||
|
||||
2005-03-09 David Turner <david@freetype.org>
|
||||
|
||||
* src/tools/glnames.py: rewrote the generator for the 'pstables.h'
|
||||
header, which contains various constant tables related to glyph
|
||||
names. It now uses a different storage scheme that saves about 20
|
||||
Kb and closes bug #12262
|
||||
* src/tools/glnames.py: Rewrite the generator for the `pstables.h'
|
||||
header file which contains various constant tables related to glyph
|
||||
names. It now uses a different, more compact storage scheme that
|
||||
saves about 20KB. This also closes Savannah bug #12262.
|
||||
|
||||
* src/psnames/pstables.h: re-generated header file
|
||||
* src/psnames/pstables.h: Regenerated.
|
||||
|
||||
* src/psnames/psmodule.c: rewrote some parts to comply with recent
|
||||
changes in 'pstables.h'
|
||||
* src/psnames/psmodule.c (ps_unicode_value): Use
|
||||
`ft_get_adobe_glyph_index', a new function defined in `pstables.h'.
|
||||
(ps_get_macintosh_name, ps_get_standard_strings): Updated.
|
||||
|
||||
* src/base/ftobjs.c (FT_Set_Char_Sizes): fix for bug #12263
|
||||
* src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes
|
||||
more carefully. This fixes Savannah bug #12263.
|
||||
|
||||
2005-03-06 David Turner <david@freetype.org>
|
||||
|
||||
|
|
|
@ -2011,11 +2011,16 @@
|
|||
FT_UShort x_ppem = (FT_UShort)( ( dim_x + 32 ) >> 6 );
|
||||
FT_UShort y_ppem = (FT_UShort)( ( dim_y + 32 ) >> 6 );
|
||||
|
||||
/* this code is disabled, for an explanation, see bug#12263 */
|
||||
|
||||
/* Don't take, say, 12.5x12.5 equal to 13x13. If working with */
|
||||
/* fractional font sizes this would hide slightly different */
|
||||
/* font metrics. Consequently, the next two lines are */
|
||||
/* disabled. */
|
||||
#if 0
|
||||
if ( x_ppem == metrics->x_ppem && y_ppem == metrics->y_ppem )
|
||||
return FT_Err_Ok;
|
||||
#endif
|
||||
|
||||
metrics->x_ppem = x_ppem;
|
||||
metrics->y_ppem = y_ppem;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* PSNames module implementation (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001, 2002, 2003 by */
|
||||
/* Copyright 1996-2001, 2002, 2003, 2005 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -32,9 +32,9 @@
|
|||
#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
|
||||
|
||||
|
||||
/* return the Unicode value corresponding to a given glyph. Note that */
|
||||
/* 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. */
|
||||
/* the name, as in `A.swash' or `e.final'. */
|
||||
/* */
|
||||
static FT_UInt32
|
||||
ps_unicode_value( const char* glyph_name )
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* ../psnames/pstables.h */
|
||||
/* pstables.h */
|
||||
/* */
|
||||
/* PostScript glyph names. */
|
||||
/* */
|
||||
|
@ -16,247 +16,440 @@
|
|||
/***************************************************************************/
|
||||
|
||||
|
||||
/* ALL of this file has been generated automatically -- do not edit! */
|
||||
/* This file has been generated automatically -- do not edit! */
|
||||
|
||||
|
||||
static const char ft_standard_glyph_names[3696] =
|
||||
{
|
||||
'.','n','u','l','l', 0 ,'n','o','n','m','a','r','k','i','n','g',
|
||||
'r','e','t','u','r','n', 0 ,'n','o','t','e','q','u','a','l', 0 ,
|
||||
'i','n','f','i','n','i','t','y', 0 ,'l','e','s','s','e','q','u',
|
||||
'a','l', 0 ,'g','r','e','a','t','e','r','e','q','u','a','l', 0 ,
|
||||
'p','a','r','t','i','a','l','d','i','f','f', 0 ,'s','u','m','m',
|
||||
'a','t','i','o','n', 0 ,'p','r','o','d','u','c','t', 0 ,'p','i',
|
||||
0 ,'i','n','t','e','g','r','a','l', 0 ,'O','m','e','g','a', 0 ,
|
||||
'r','a','d','i','c','a','l', 0 ,'a','p','p','r','o','x','e','q',
|
||||
'u','a','l', 0 ,'D','e','l','t','a', 0 ,'n','o','n','b','r','e',
|
||||
'a','k','i','n','g','s','p','a','c','e', 0 ,'l','o','z','e','n',
|
||||
'g','e', 0 ,'a','p','p','l','e', 0 ,'f','r','a','n','c', 0 ,'G',
|
||||
'b','r','e','v','e', 0 ,'g','b','r','e','v','e', 0 ,'I','d','o',
|
||||
't','a','c','c','e','n','t', 0 ,'S','c','e','d','i','l','l','a',
|
||||
0 ,'s','c','e','d','i','l','l','a', 0 ,'C','a','c','u','t','e',
|
||||
0 ,'c','a','c','u','t','e', 0 ,'C','c','a','r','o','n', 0 ,'c',
|
||||
'c','a','r','o','n', 0 ,'d','c','r','o','a','t', 0 ,'.','n','o',
|
||||
't','d','e','f', 0 ,'s','p','a','c','e', 0 ,'e','x','c','l','a',
|
||||
'm', 0 ,'q','u','o','t','e','d','b','l', 0 ,'n','u','m','b','e',
|
||||
'r','s','i','g','n', 0 ,'d','o','l','l','a','r', 0 ,'p','e','r',
|
||||
'c','e','n','t', 0 ,'a','m','p','e','r','s','a','n','d', 0 ,'q',
|
||||
'u','o','t','e','r','i','g','h','t', 0 ,'p','a','r','e','n','l',
|
||||
'e','f','t', 0 ,'p','a','r','e','n','r','i','g','h','t', 0 ,'a',
|
||||
's','t','e','r','i','s','k', 0 ,'p','l','u','s', 0 ,'c','o','m',
|
||||
'm','a', 0 ,'h','y','p','h','e','n', 0 ,'p','e','r','i','o','d',
|
||||
0 ,'s','l','a','s','h', 0 ,'z','e','r','o', 0 ,'o','n','e', 0 ,
|
||||
't','w','o', 0 ,'t','h','r','e','e', 0 ,'f','o','u','r', 0 ,'f',
|
||||
'i','v','e', 0 ,'s','i','x', 0 ,'s','e','v','e','n', 0 ,'e','i',
|
||||
'g','h','t', 0 ,'n','i','n','e', 0 ,'c','o','l','o','n', 0 ,'s',
|
||||
'e','m','i','c','o','l','o','n', 0 ,'l','e','s','s', 0 ,'e','q',
|
||||
'u','a','l', 0 ,'g','r','e','a','t','e','r', 0 ,'q','u','e','s',
|
||||
't','i','o','n', 0 ,'a','t', 0 ,'A', 0 ,'B', 0 ,'C', 0 ,'D', 0 ,
|
||||
'E', 0 ,'F', 0 ,'G', 0 ,'H', 0 ,'I', 0 ,'J', 0 ,'K', 0 ,'L', 0 ,
|
||||
'M', 0 ,'N', 0 ,'O', 0 ,'P', 0 ,'Q', 0 ,'R', 0 ,'S', 0 ,'T', 0 ,
|
||||
'U', 0 ,'V', 0 ,'W', 0 ,'X', 0 ,'Y', 0 ,'Z', 0 ,'b','r','a','c',
|
||||
'k','e','t','l','e','f','t', 0 ,'b','a','c','k','s','l','a','s',
|
||||
'h', 0 ,'b','r','a','c','k','e','t','r','i','g','h','t', 0 ,'a',
|
||||
's','c','i','i','c','i','r','c','u','m', 0 ,'u','n','d','e','r',
|
||||
's','c','o','r','e', 0 ,'q','u','o','t','e','l','e','f','t', 0 ,
|
||||
'a', 0 ,'b', 0 ,'c', 0 ,'d', 0 ,'e', 0 ,'f', 0 ,'g', 0 ,'h', 0 ,
|
||||
'i', 0 ,'j', 0 ,'k', 0 ,'l', 0 ,'m', 0 ,'n', 0 ,'o', 0 ,'p', 0 ,
|
||||
'q', 0 ,'r', 0 ,'s', 0 ,'t', 0 ,'u', 0 ,'v', 0 ,'w', 0 ,'x', 0 ,
|
||||
'y', 0 ,'z', 0 ,'b','r','a','c','e','l','e','f','t', 0 ,'b','a',
|
||||
'r', 0 ,'b','r','a','c','e','r','i','g','h','t', 0 ,'a','s','c',
|
||||
'i','i','t','i','l','d','e', 0 ,'e','x','c','l','a','m','d','o',
|
||||
'w','n', 0 ,'c','e','n','t', 0 ,'s','t','e','r','l','i','n','g',
|
||||
0 ,'f','r','a','c','t','i','o','n', 0 ,'y','e','n', 0 ,'f','l',
|
||||
'o','r','i','n', 0 ,'s','e','c','t','i','o','n', 0 ,'c','u','r',
|
||||
'r','e','n','c','y', 0 ,'q','u','o','t','e','s','i','n','g','l',
|
||||
'e', 0 ,'q','u','o','t','e','d','b','l','l','e','f','t', 0 ,'g',
|
||||
'u','i','l','l','e','m','o','t','l','e','f','t', 0 ,'g','u','i',
|
||||
'l','s','i','n','g','l','l','e','f','t', 0 ,'g','u','i','l','s',
|
||||
'i','n','g','l','r','i','g','h','t', 0 ,'f','i', 0 ,'f','l', 0 ,
|
||||
'e','n','d','a','s','h', 0 ,'d','a','g','g','e','r', 0 ,'d','a',
|
||||
'g','g','e','r','d','b','l', 0 ,'p','e','r','i','o','d','c','e',
|
||||
'n','t','e','r','e','d', 0 ,'p','a','r','a','g','r','a','p','h',
|
||||
0 ,'b','u','l','l','e','t', 0 ,'q','u','o','t','e','s','i','n',
|
||||
'g','l','b','a','s','e', 0 ,'q','u','o','t','e','d','b','l','b',
|
||||
'a','s','e', 0 ,'q','u','o','t','e','d','b','l','r','i','g','h',
|
||||
't', 0 ,'g','u','i','l','l','e','m','o','t','r','i','g','h','t',
|
||||
0 ,'e','l','l','i','p','s','i','s', 0 ,'p','e','r','t','h','o',
|
||||
'u','s','a','n','d', 0 ,'q','u','e','s','t','i','o','n','d','o',
|
||||
'w','n', 0 ,'g','r','a','v','e', 0 ,'a','c','u','t','e', 0 ,'c',
|
||||
'i','r','c','u','m','f','l','e','x', 0 ,'t','i','l','d','e', 0 ,
|
||||
'm','a','c','r','o','n', 0 ,'b','r','e','v','e', 0 ,'d','o','t',
|
||||
'a','c','c','e','n','t', 0 ,'d','i','e','r','e','s','i','s', 0 ,
|
||||
'r','i','n','g', 0 ,'c','e','d','i','l','l','a', 0 ,'h','u','n',
|
||||
'g','a','r','u','m','l','a','u','t', 0 ,'o','g','o','n','e','k',
|
||||
0 ,'c','a','r','o','n', 0 ,'e','m','d','a','s','h', 0 ,'A','E',
|
||||
0 ,'o','r','d','f','e','m','i','n','i','n','e', 0 ,'L','s','l',
|
||||
'a','s','h', 0 ,'O','s','l','a','s','h', 0 ,'O','E', 0 ,'o','r',
|
||||
'd','m','a','s','c','u','l','i','n','e', 0 ,'a','e', 0 ,'d','o',
|
||||
't','l','e','s','s','i', 0 ,'l','s','l','a','s','h', 0 ,'o','s',
|
||||
'l','a','s','h', 0 ,'o','e', 0 ,'g','e','r','m','a','n','d','b',
|
||||
'l','s', 0 ,'o','n','e','s','u','p','e','r','i','o','r', 0 ,'l',
|
||||
'o','g','i','c','a','l','n','o','t', 0 ,'m','u', 0 ,'t','r','a',
|
||||
'd','e','m','a','r','k', 0 ,'E','t','h', 0 ,'o','n','e','h','a',
|
||||
'l','f', 0 ,'p','l','u','s','m','i','n','u','s', 0 ,'T','h','o',
|
||||
'r','n', 0 ,'o','n','e','q','u','a','r','t','e','r', 0 ,'d','i',
|
||||
'v','i','d','e', 0 ,'b','r','o','k','e','n','b','a','r', 0 ,'d',
|
||||
'e','g','r','e','e', 0 ,'t','h','o','r','n', 0 ,'t','h','r','e',
|
||||
'e','q','u','a','r','t','e','r','s', 0 ,'t','w','o','s','u','p',
|
||||
'e','r','i','o','r', 0 ,'r','e','g','i','s','t','e','r','e','d',
|
||||
0 ,'m','i','n','u','s', 0 ,'e','t','h', 0 ,'m','u','l','t','i',
|
||||
'p','l','y', 0 ,'t','h','r','e','e','s','u','p','e','r','i','o',
|
||||
'r', 0 ,'c','o','p','y','r','i','g','h','t', 0 ,'A','a','c','u',
|
||||
't','e', 0 ,'A','c','i','r','c','u','m','f','l','e','x', 0 ,'A',
|
||||
'd','i','e','r','e','s','i','s', 0 ,'A','g','r','a','v','e', 0 ,
|
||||
'A','r','i','n','g', 0 ,'A','t','i','l','d','e', 0 ,'C','c','e',
|
||||
'd','i','l','l','a', 0 ,'E','a','c','u','t','e', 0 ,'E','c','i',
|
||||
'r','c','u','m','f','l','e','x', 0 ,'E','d','i','e','r','e','s',
|
||||
'i','s', 0 ,'E','g','r','a','v','e', 0 ,'I','a','c','u','t','e',
|
||||
0 ,'I','c','i','r','c','u','m','f','l','e','x', 0 ,'I','d','i',
|
||||
'e','r','e','s','i','s', 0 ,'I','g','r','a','v','e', 0 ,'N','t',
|
||||
'i','l','d','e', 0 ,'O','a','c','u','t','e', 0 ,'O','c','i','r',
|
||||
'c','u','m','f','l','e','x', 0 ,'O','d','i','e','r','e','s','i',
|
||||
's', 0 ,'O','g','r','a','v','e', 0 ,'O','t','i','l','d','e', 0 ,
|
||||
'S','c','a','r','o','n', 0 ,'U','a','c','u','t','e', 0 ,'U','c',
|
||||
'i','r','c','u','m','f','l','e','x', 0 ,'U','d','i','e','r','e',
|
||||
's','i','s', 0 ,'U','g','r','a','v','e', 0 ,'Y','a','c','u','t',
|
||||
'e', 0 ,'Y','d','i','e','r','e','s','i','s', 0 ,'Z','c','a','r',
|
||||
'o','n', 0 ,'a','a','c','u','t','e', 0 ,'a','c','i','r','c','u',
|
||||
'm','f','l','e','x', 0 ,'a','d','i','e','r','e','s','i','s', 0 ,
|
||||
'a','g','r','a','v','e', 0 ,'a','r','i','n','g', 0 ,'a','t','i',
|
||||
'l','d','e', 0 ,'c','c','e','d','i','l','l','a', 0 ,'e','a','c',
|
||||
'u','t','e', 0 ,'e','c','i','r','c','u','m','f','l','e','x', 0 ,
|
||||
'e','d','i','e','r','e','s','i','s', 0 ,'e','g','r','a','v','e',
|
||||
0 ,'i','a','c','u','t','e', 0 ,'i','c','i','r','c','u','m','f',
|
||||
'l','e','x', 0 ,'i','d','i','e','r','e','s','i','s', 0 ,'i','g',
|
||||
'r','a','v','e', 0 ,'n','t','i','l','d','e', 0 ,'o','a','c','u',
|
||||
't','e', 0 ,'o','c','i','r','c','u','m','f','l','e','x', 0 ,'o',
|
||||
'd','i','e','r','e','s','i','s', 0 ,'o','g','r','a','v','e', 0 ,
|
||||
'o','t','i','l','d','e', 0 ,'s','c','a','r','o','n', 0 ,'u','a',
|
||||
'c','u','t','e', 0 ,'u','c','i','r','c','u','m','f','l','e','x',
|
||||
0 ,'u','d','i','e','r','e','s','i','s', 0 ,'u','g','r','a','v',
|
||||
'e', 0 ,'y','a','c','u','t','e', 0 ,'y','d','i','e','r','e','s',
|
||||
'i','s', 0 ,'z','c','a','r','o','n', 0 ,'e','x','c','l','a','m',
|
||||
's','m','a','l','l', 0 ,'H','u','n','g','a','r','u','m','l','a',
|
||||
'u','t','s','m','a','l','l', 0 ,'d','o','l','l','a','r','o','l',
|
||||
'd','s','t','y','l','e', 0 ,'d','o','l','l','a','r','s','u','p',
|
||||
'e','r','i','o','r', 0 ,'a','m','p','e','r','s','a','n','d','s',
|
||||
'm','a','l','l', 0 ,'A','c','u','t','e','s','m','a','l','l', 0 ,
|
||||
'p','a','r','e','n','l','e','f','t','s','u','p','e','r','i','o',
|
||||
'r', 0 ,'p','a','r','e','n','r','i','g','h','t','s','u','p','e',
|
||||
'r','i','o','r', 0 ,'t','w','o','d','o','t','e','n','l','e','a',
|
||||
'd','e','r', 0 ,'o','n','e','d','o','t','e','n','l','e','a','d',
|
||||
'e','r', 0 ,'z','e','r','o','o','l','d','s','t','y','l','e', 0 ,
|
||||
'o','n','e','o','l','d','s','t','y','l','e', 0 ,'t','w','o','o',
|
||||
'l','d','s','t','y','l','e', 0 ,'t','h','r','e','e','o','l','d',
|
||||
's','t','y','l','e', 0 ,'f','o','u','r','o','l','d','s','t','y',
|
||||
'l','e', 0 ,'f','i','v','e','o','l','d','s','t','y','l','e', 0 ,
|
||||
's','i','x','o','l','d','s','t','y','l','e', 0 ,'s','e','v','e',
|
||||
'n','o','l','d','s','t','y','l','e', 0 ,'e','i','g','h','t','o',
|
||||
'l','d','s','t','y','l','e', 0 ,'n','i','n','e','o','l','d','s',
|
||||
't','y','l','e', 0 ,'c','o','m','m','a','s','u','p','e','r','i',
|
||||
'o','r', 0 ,'t','h','r','e','e','q','u','a','r','t','e','r','s',
|
||||
'e','m','d','a','s','h', 0 ,'p','e','r','i','o','d','s','u','p',
|
||||
'e','r','i','o','r', 0 ,'q','u','e','s','t','i','o','n','s','m',
|
||||
'a','l','l', 0 ,'a','s','u','p','e','r','i','o','r', 0 ,'b','s',
|
||||
'u','p','e','r','i','o','r', 0 ,'c','e','n','t','s','u','p','e',
|
||||
'r','i','o','r', 0 ,'d','s','u','p','e','r','i','o','r', 0 ,'e',
|
||||
's','u','p','e','r','i','o','r', 0 ,'i','s','u','p','e','r','i',
|
||||
'o','r', 0 ,'l','s','u','p','e','r','i','o','r', 0 ,'m','s','u',
|
||||
'p','e','r','i','o','r', 0 ,'n','s','u','p','e','r','i','o','r',
|
||||
0 ,'o','s','u','p','e','r','i','o','r', 0 ,'r','s','u','p','e',
|
||||
'r','i','o','r', 0 ,'s','s','u','p','e','r','i','o','r', 0 ,'t',
|
||||
's','u','p','e','r','i','o','r', 0 ,'f','f', 0 ,'f','f','i', 0 ,
|
||||
'f','f','l', 0 ,'p','a','r','e','n','l','e','f','t','i','n','f',
|
||||
'e','r','i','o','r', 0 ,'p','a','r','e','n','r','i','g','h','t',
|
||||
'i','n','f','e','r','i','o','r', 0 ,'C','i','r','c','u','m','f',
|
||||
'l','e','x','s','m','a','l','l', 0 ,'h','y','p','h','e','n','s',
|
||||
'u','p','e','r','i','o','r', 0 ,'G','r','a','v','e','s','m','a',
|
||||
'l','l', 0 ,'A','s','m','a','l','l', 0 ,'B','s','m','a','l','l',
|
||||
0 ,'C','s','m','a','l','l', 0 ,'D','s','m','a','l','l', 0 ,'E',
|
||||
's','m','a','l','l', 0 ,'F','s','m','a','l','l', 0 ,'G','s','m',
|
||||
'a','l','l', 0 ,'H','s','m','a','l','l', 0 ,'I','s','m','a','l',
|
||||
'l', 0 ,'J','s','m','a','l','l', 0 ,'K','s','m','a','l','l', 0 ,
|
||||
'L','s','m','a','l','l', 0 ,'M','s','m','a','l','l', 0 ,'N','s',
|
||||
'm','a','l','l', 0 ,'O','s','m','a','l','l', 0 ,'P','s','m','a',
|
||||
'l','l', 0 ,'Q','s','m','a','l','l', 0 ,'R','s','m','a','l','l',
|
||||
0 ,'S','s','m','a','l','l', 0 ,'T','s','m','a','l','l', 0 ,'U',
|
||||
's','m','a','l','l', 0 ,'V','s','m','a','l','l', 0 ,'W','s','m',
|
||||
'a','l','l', 0 ,'X','s','m','a','l','l', 0 ,'Y','s','m','a','l',
|
||||
'l', 0 ,'Z','s','m','a','l','l', 0 ,'c','o','l','o','n','m','o',
|
||||
'n','e','t','a','r','y', 0 ,'o','n','e','f','i','t','t','e','d',
|
||||
0 ,'r','u','p','i','a','h', 0 ,'T','i','l','d','e','s','m','a',
|
||||
'l','l', 0 ,'e','x','c','l','a','m','d','o','w','n','s','m','a',
|
||||
'l','l', 0 ,'c','e','n','t','o','l','d','s','t','y','l','e', 0 ,
|
||||
'L','s','l','a','s','h','s','m','a','l','l', 0 ,'S','c','a','r',
|
||||
'o','n','s','m','a','l','l', 0 ,'Z','c','a','r','o','n','s','m',
|
||||
'a','l','l', 0 ,'D','i','e','r','e','s','i','s','s','m','a','l',
|
||||
'l', 0 ,'B','r','e','v','e','s','m','a','l','l', 0 ,'C','a','r',
|
||||
'o','n','s','m','a','l','l', 0 ,'D','o','t','a','c','c','e','n',
|
||||
't','s','m','a','l','l', 0 ,'M','a','c','r','o','n','s','m','a',
|
||||
'l','l', 0 ,'f','i','g','u','r','e','d','a','s','h', 0 ,'h','y',
|
||||
'p','h','e','n','i','n','f','e','r','i','o','r', 0 ,'O','g','o',
|
||||
'n','e','k','s','m','a','l','l', 0 ,'R','i','n','g','s','m','a',
|
||||
'l','l', 0 ,'C','e','d','i','l','l','a','s','m','a','l','l', 0 ,
|
||||
'q','u','e','s','t','i','o','n','d','o','w','n','s','m','a','l',
|
||||
'l', 0 ,'o','n','e','e','i','g','h','t','h', 0 ,'t','h','r','e',
|
||||
'e','e','i','g','h','t','h','s', 0 ,'f','i','v','e','e','i','g',
|
||||
'h','t','h','s', 0 ,'s','e','v','e','n','e','i','g','h','t','h',
|
||||
's', 0 ,'o','n','e','t','h','i','r','d', 0 ,'t','w','o','t','h',
|
||||
'i','r','d','s', 0 ,'z','e','r','o','s','u','p','e','r','i','o',
|
||||
'r', 0 ,'f','o','u','r','s','u','p','e','r','i','o','r', 0 ,'f',
|
||||
'i','v','e','s','u','p','e','r','i','o','r', 0 ,'s','i','x','s',
|
||||
'u','p','e','r','i','o','r', 0 ,'s','e','v','e','n','s','u','p',
|
||||
'e','r','i','o','r', 0 ,'e','i','g','h','t','s','u','p','e','r',
|
||||
'i','o','r', 0 ,'n','i','n','e','s','u','p','e','r','i','o','r',
|
||||
0 ,'z','e','r','o','i','n','f','e','r','i','o','r', 0 ,'o','n',
|
||||
'e','i','n','f','e','r','i','o','r', 0 ,'t','w','o','i','n','f',
|
||||
'e','r','i','o','r', 0 ,'t','h','r','e','e','i','n','f','e','r',
|
||||
'i','o','r', 0 ,'f','o','u','r','i','n','f','e','r','i','o','r',
|
||||
0 ,'f','i','v','e','i','n','f','e','r','i','o','r', 0 ,'s','i',
|
||||
'x','i','n','f','e','r','i','o','r', 0 ,'s','e','v','e','n','i',
|
||||
'n','f','e','r','i','o','r', 0 ,'e','i','g','h','t','i','n','f',
|
||||
'e','r','i','o','r', 0 ,'n','i','n','e','i','n','f','e','r','i',
|
||||
'o','r', 0 ,'c','e','n','t','i','n','f','e','r','i','o','r', 0 ,
|
||||
'd','o','l','l','a','r','i','n','f','e','r','i','o','r', 0 ,'p',
|
||||
'e','r','i','o','d','i','n','f','e','r','i','o','r', 0 ,'c','o',
|
||||
'm','m','a','i','n','f','e','r','i','o','r', 0 ,'A','g','r','a',
|
||||
'v','e','s','m','a','l','l', 0 ,'A','a','c','u','t','e','s','m',
|
||||
'a','l','l', 0 ,'A','c','i','r','c','u','m','f','l','e','x','s',
|
||||
'm','a','l','l', 0 ,'A','t','i','l','d','e','s','m','a','l','l',
|
||||
0 ,'A','d','i','e','r','e','s','i','s','s','m','a','l','l', 0 ,
|
||||
'A','r','i','n','g','s','m','a','l','l', 0 ,'A','E','s','m','a',
|
||||
'l','l', 0 ,'C','c','e','d','i','l','l','a','s','m','a','l','l',
|
||||
0 ,'E','g','r','a','v','e','s','m','a','l','l', 0 ,'E','a','c',
|
||||
'u','t','e','s','m','a','l','l', 0 ,'E','c','i','r','c','u','m',
|
||||
'f','l','e','x','s','m','a','l','l', 0 ,'E','d','i','e','r','e',
|
||||
's','i','s','s','m','a','l','l', 0 ,'I','g','r','a','v','e','s',
|
||||
'm','a','l','l', 0 ,'I','a','c','u','t','e','s','m','a','l','l',
|
||||
0 ,'I','c','i','r','c','u','m','f','l','e','x','s','m','a','l',
|
||||
'l', 0 ,'I','d','i','e','r','e','s','i','s','s','m','a','l','l',
|
||||
0 ,'E','t','h','s','m','a','l','l', 0 ,'N','t','i','l','d','e',
|
||||
's','m','a','l','l', 0 ,'O','g','r','a','v','e','s','m','a','l',
|
||||
'l', 0 ,'O','a','c','u','t','e','s','m','a','l','l', 0 ,'O','c',
|
||||
'i','r','c','u','m','f','l','e','x','s','m','a','l','l', 0 ,'O',
|
||||
't','i','l','d','e','s','m','a','l','l', 0 ,'O','d','i','e','r',
|
||||
'e','s','i','s','s','m','a','l','l', 0 ,'O','E','s','m','a','l',
|
||||
'l', 0 ,'O','s','l','a','s','h','s','m','a','l','l', 0 ,'U','g',
|
||||
'r','a','v','e','s','m','a','l','l', 0 ,'U','a','c','u','t','e',
|
||||
's','m','a','l','l', 0 ,'U','c','i','r','c','u','m','f','l','e',
|
||||
'x','s','m','a','l','l', 0 ,'U','d','i','e','r','e','s','i','s',
|
||||
's','m','a','l','l', 0 ,'Y','a','c','u','t','e','s','m','a','l',
|
||||
'l', 0 ,'T','h','o','r','n','s','m','a','l','l', 0 ,'Y','d','i',
|
||||
'e','r','e','s','i','s','s','m','a','l','l', 0 ,'0','0','1','.',
|
||||
'0','0','0', 0 ,'0','0','1','.','0','0','1', 0 ,'0','0','1','.',
|
||||
'0','0','2', 0 ,'0','0','1','.','0','0','3', 0 ,'B','l','a','c',
|
||||
'k', 0 ,'B','o','l','d', 0 ,'B','o','o','k', 0 ,'L','i','g','h',
|
||||
't', 0 ,'M','e','d','i','u','m', 0 ,'R','e','g','u','l','a','r',
|
||||
0 ,'R','o','m','a','n', 0 ,'S','e','m','i','b','o','l','d', 0 };
|
||||
static const char ft_standard_glyph_names[3696] =
|
||||
{
|
||||
'.','n','u','l','l', 0,
|
||||
'n','o','n','m','a','r','k','i','n','g','r','e','t','u','r','n', 0,
|
||||
'n','o','t','e','q','u','a','l', 0,
|
||||
'i','n','f','i','n','i','t','y', 0,
|
||||
'l','e','s','s','e','q','u','a','l', 0,
|
||||
'g','r','e','a','t','e','r','e','q','u','a','l', 0,
|
||||
'p','a','r','t','i','a','l','d','i','f','f', 0,
|
||||
's','u','m','m','a','t','i','o','n', 0,
|
||||
'p','r','o','d','u','c','t', 0,
|
||||
'p','i', 0,
|
||||
'i','n','t','e','g','r','a','l', 0,
|
||||
'O','m','e','g','a', 0,
|
||||
'r','a','d','i','c','a','l', 0,
|
||||
'a','p','p','r','o','x','e','q','u','a','l', 0,
|
||||
'D','e','l','t','a', 0,
|
||||
'n','o','n','b','r','e','a','k','i','n','g','s','p','a','c','e', 0,
|
||||
'l','o','z','e','n','g','e', 0,
|
||||
'a','p','p','l','e', 0,
|
||||
'f','r','a','n','c', 0,
|
||||
'G','b','r','e','v','e', 0,
|
||||
'g','b','r','e','v','e', 0,
|
||||
'I','d','o','t','a','c','c','e','n','t', 0,
|
||||
'S','c','e','d','i','l','l','a', 0,
|
||||
's','c','e','d','i','l','l','a', 0,
|
||||
'C','a','c','u','t','e', 0,
|
||||
'c','a','c','u','t','e', 0,
|
||||
'C','c','a','r','o','n', 0,
|
||||
'c','c','a','r','o','n', 0,
|
||||
'd','c','r','o','a','t', 0,
|
||||
'.','n','o','t','d','e','f', 0,
|
||||
's','p','a','c','e', 0,
|
||||
'e','x','c','l','a','m', 0,
|
||||
'q','u','o','t','e','d','b','l', 0,
|
||||
'n','u','m','b','e','r','s','i','g','n', 0,
|
||||
'd','o','l','l','a','r', 0,
|
||||
'p','e','r','c','e','n','t', 0,
|
||||
'a','m','p','e','r','s','a','n','d', 0,
|
||||
'q','u','o','t','e','r','i','g','h','t', 0,
|
||||
'p','a','r','e','n','l','e','f','t', 0,
|
||||
'p','a','r','e','n','r','i','g','h','t', 0,
|
||||
'a','s','t','e','r','i','s','k', 0,
|
||||
'p','l','u','s', 0,
|
||||
'c','o','m','m','a', 0,
|
||||
'h','y','p','h','e','n', 0,
|
||||
'p','e','r','i','o','d', 0,
|
||||
's','l','a','s','h', 0,
|
||||
'z','e','r','o', 0,
|
||||
'o','n','e', 0,
|
||||
't','w','o', 0,
|
||||
't','h','r','e','e', 0,
|
||||
'f','o','u','r', 0,
|
||||
'f','i','v','e', 0,
|
||||
's','i','x', 0,
|
||||
's','e','v','e','n', 0,
|
||||
'e','i','g','h','t', 0,
|
||||
'n','i','n','e', 0,
|
||||
'c','o','l','o','n', 0,
|
||||
's','e','m','i','c','o','l','o','n', 0,
|
||||
'l','e','s','s', 0,
|
||||
'e','q','u','a','l', 0,
|
||||
'g','r','e','a','t','e','r', 0,
|
||||
'q','u','e','s','t','i','o','n', 0,
|
||||
'a','t', 0,
|
||||
'A', 0,
|
||||
'B', 0,
|
||||
'C', 0,
|
||||
'D', 0,
|
||||
'E', 0,
|
||||
'F', 0,
|
||||
'G', 0,
|
||||
'H', 0,
|
||||
'I', 0,
|
||||
'J', 0,
|
||||
'K', 0,
|
||||
'L', 0,
|
||||
'M', 0,
|
||||
'N', 0,
|
||||
'O', 0,
|
||||
'P', 0,
|
||||
'Q', 0,
|
||||
'R', 0,
|
||||
'S', 0,
|
||||
'T', 0,
|
||||
'U', 0,
|
||||
'V', 0,
|
||||
'W', 0,
|
||||
'X', 0,
|
||||
'Y', 0,
|
||||
'Z', 0,
|
||||
'b','r','a','c','k','e','t','l','e','f','t', 0,
|
||||
'b','a','c','k','s','l','a','s','h', 0,
|
||||
'b','r','a','c','k','e','t','r','i','g','h','t', 0,
|
||||
'a','s','c','i','i','c','i','r','c','u','m', 0,
|
||||
'u','n','d','e','r','s','c','o','r','e', 0,
|
||||
'q','u','o','t','e','l','e','f','t', 0,
|
||||
'a', 0,
|
||||
'b', 0,
|
||||
'c', 0,
|
||||
'd', 0,
|
||||
'e', 0,
|
||||
'f', 0,
|
||||
'g', 0,
|
||||
'h', 0,
|
||||
'i', 0,
|
||||
'j', 0,
|
||||
'k', 0,
|
||||
'l', 0,
|
||||
'm', 0,
|
||||
'n', 0,
|
||||
'o', 0,
|
||||
'p', 0,
|
||||
'q', 0,
|
||||
'r', 0,
|
||||
's', 0,
|
||||
't', 0,
|
||||
'u', 0,
|
||||
'v', 0,
|
||||
'w', 0,
|
||||
'x', 0,
|
||||
'y', 0,
|
||||
'z', 0,
|
||||
'b','r','a','c','e','l','e','f','t', 0,
|
||||
'b','a','r', 0,
|
||||
'b','r','a','c','e','r','i','g','h','t', 0,
|
||||
'a','s','c','i','i','t','i','l','d','e', 0,
|
||||
'e','x','c','l','a','m','d','o','w','n', 0,
|
||||
'c','e','n','t', 0,
|
||||
's','t','e','r','l','i','n','g', 0,
|
||||
'f','r','a','c','t','i','o','n', 0,
|
||||
'y','e','n', 0,
|
||||
'f','l','o','r','i','n', 0,
|
||||
's','e','c','t','i','o','n', 0,
|
||||
'c','u','r','r','e','n','c','y', 0,
|
||||
'q','u','o','t','e','s','i','n','g','l','e', 0,
|
||||
'q','u','o','t','e','d','b','l','l','e','f','t', 0,
|
||||
'g','u','i','l','l','e','m','o','t','l','e','f','t', 0,
|
||||
'g','u','i','l','s','i','n','g','l','l','e','f','t', 0,
|
||||
'g','u','i','l','s','i','n','g','l','r','i','g','h','t', 0,
|
||||
'f','i', 0,
|
||||
'f','l', 0,
|
||||
'e','n','d','a','s','h', 0,
|
||||
'd','a','g','g','e','r', 0,
|
||||
'd','a','g','g','e','r','d','b','l', 0,
|
||||
'p','e','r','i','o','d','c','e','n','t','e','r','e','d', 0,
|
||||
'p','a','r','a','g','r','a','p','h', 0,
|
||||
'b','u','l','l','e','t', 0,
|
||||
'q','u','o','t','e','s','i','n','g','l','b','a','s','e', 0,
|
||||
'q','u','o','t','e','d','b','l','b','a','s','e', 0,
|
||||
'q','u','o','t','e','d','b','l','r','i','g','h','t', 0,
|
||||
'g','u','i','l','l','e','m','o','t','r','i','g','h','t', 0,
|
||||
'e','l','l','i','p','s','i','s', 0,
|
||||
'p','e','r','t','h','o','u','s','a','n','d', 0,
|
||||
'q','u','e','s','t','i','o','n','d','o','w','n', 0,
|
||||
'g','r','a','v','e', 0,
|
||||
'a','c','u','t','e', 0,
|
||||
'c','i','r','c','u','m','f','l','e','x', 0,
|
||||
't','i','l','d','e', 0,
|
||||
'm','a','c','r','o','n', 0,
|
||||
'b','r','e','v','e', 0,
|
||||
'd','o','t','a','c','c','e','n','t', 0,
|
||||
'd','i','e','r','e','s','i','s', 0,
|
||||
'r','i','n','g', 0,
|
||||
'c','e','d','i','l','l','a', 0,
|
||||
'h','u','n','g','a','r','u','m','l','a','u','t', 0,
|
||||
'o','g','o','n','e','k', 0,
|
||||
'c','a','r','o','n', 0,
|
||||
'e','m','d','a','s','h', 0,
|
||||
'A','E', 0,
|
||||
'o','r','d','f','e','m','i','n','i','n','e', 0,
|
||||
'L','s','l','a','s','h', 0,
|
||||
'O','s','l','a','s','h', 0,
|
||||
'O','E', 0,
|
||||
'o','r','d','m','a','s','c','u','l','i','n','e', 0,
|
||||
'a','e', 0,
|
||||
'd','o','t','l','e','s','s','i', 0,
|
||||
'l','s','l','a','s','h', 0,
|
||||
'o','s','l','a','s','h', 0,
|
||||
'o','e', 0,
|
||||
'g','e','r','m','a','n','d','b','l','s', 0,
|
||||
'o','n','e','s','u','p','e','r','i','o','r', 0,
|
||||
'l','o','g','i','c','a','l','n','o','t', 0,
|
||||
'm','u', 0,
|
||||
't','r','a','d','e','m','a','r','k', 0,
|
||||
'E','t','h', 0,
|
||||
'o','n','e','h','a','l','f', 0,
|
||||
'p','l','u','s','m','i','n','u','s', 0,
|
||||
'T','h','o','r','n', 0,
|
||||
'o','n','e','q','u','a','r','t','e','r', 0,
|
||||
'd','i','v','i','d','e', 0,
|
||||
'b','r','o','k','e','n','b','a','r', 0,
|
||||
'd','e','g','r','e','e', 0,
|
||||
't','h','o','r','n', 0,
|
||||
't','h','r','e','e','q','u','a','r','t','e','r','s', 0,
|
||||
't','w','o','s','u','p','e','r','i','o','r', 0,
|
||||
'r','e','g','i','s','t','e','r','e','d', 0,
|
||||
'm','i','n','u','s', 0,
|
||||
'e','t','h', 0,
|
||||
'm','u','l','t','i','p','l','y', 0,
|
||||
't','h','r','e','e','s','u','p','e','r','i','o','r', 0,
|
||||
'c','o','p','y','r','i','g','h','t', 0,
|
||||
'A','a','c','u','t','e', 0,
|
||||
'A','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'A','d','i','e','r','e','s','i','s', 0,
|
||||
'A','g','r','a','v','e', 0,
|
||||
'A','r','i','n','g', 0,
|
||||
'A','t','i','l','d','e', 0,
|
||||
'C','c','e','d','i','l','l','a', 0,
|
||||
'E','a','c','u','t','e', 0,
|
||||
'E','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'E','d','i','e','r','e','s','i','s', 0,
|
||||
'E','g','r','a','v','e', 0,
|
||||
'I','a','c','u','t','e', 0,
|
||||
'I','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'I','d','i','e','r','e','s','i','s', 0,
|
||||
'I','g','r','a','v','e', 0,
|
||||
'N','t','i','l','d','e', 0,
|
||||
'O','a','c','u','t','e', 0,
|
||||
'O','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'O','d','i','e','r','e','s','i','s', 0,
|
||||
'O','g','r','a','v','e', 0,
|
||||
'O','t','i','l','d','e', 0,
|
||||
'S','c','a','r','o','n', 0,
|
||||
'U','a','c','u','t','e', 0,
|
||||
'U','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'U','d','i','e','r','e','s','i','s', 0,
|
||||
'U','g','r','a','v','e', 0,
|
||||
'Y','a','c','u','t','e', 0,
|
||||
'Y','d','i','e','r','e','s','i','s', 0,
|
||||
'Z','c','a','r','o','n', 0,
|
||||
'a','a','c','u','t','e', 0,
|
||||
'a','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'a','d','i','e','r','e','s','i','s', 0,
|
||||
'a','g','r','a','v','e', 0,
|
||||
'a','r','i','n','g', 0,
|
||||
'a','t','i','l','d','e', 0,
|
||||
'c','c','e','d','i','l','l','a', 0,
|
||||
'e','a','c','u','t','e', 0,
|
||||
'e','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'e','d','i','e','r','e','s','i','s', 0,
|
||||
'e','g','r','a','v','e', 0,
|
||||
'i','a','c','u','t','e', 0,
|
||||
'i','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'i','d','i','e','r','e','s','i','s', 0,
|
||||
'i','g','r','a','v','e', 0,
|
||||
'n','t','i','l','d','e', 0,
|
||||
'o','a','c','u','t','e', 0,
|
||||
'o','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'o','d','i','e','r','e','s','i','s', 0,
|
||||
'o','g','r','a','v','e', 0,
|
||||
'o','t','i','l','d','e', 0,
|
||||
's','c','a','r','o','n', 0,
|
||||
'u','a','c','u','t','e', 0,
|
||||
'u','c','i','r','c','u','m','f','l','e','x', 0,
|
||||
'u','d','i','e','r','e','s','i','s', 0,
|
||||
'u','g','r','a','v','e', 0,
|
||||
'y','a','c','u','t','e', 0,
|
||||
'y','d','i','e','r','e','s','i','s', 0,
|
||||
'z','c','a','r','o','n', 0,
|
||||
'e','x','c','l','a','m','s','m','a','l','l', 0,
|
||||
'H','u','n','g','a','r','u','m','l','a','u','t','s','m','a','l','l', 0,
|
||||
'd','o','l','l','a','r','o','l','d','s','t','y','l','e', 0,
|
||||
'd','o','l','l','a','r','s','u','p','e','r','i','o','r', 0,
|
||||
'a','m','p','e','r','s','a','n','d','s','m','a','l','l', 0,
|
||||
'A','c','u','t','e','s','m','a','l','l', 0,
|
||||
'p','a','r','e','n','l','e','f','t','s','u','p','e','r','i','o','r', 0,
|
||||
'p','a','r','e','n','r','i','g','h','t','s','u','p','e','r','i','o','r', 0,
|
||||
't','w','o','d','o','t','e','n','l','e','a','d','e','r', 0,
|
||||
'o','n','e','d','o','t','e','n','l','e','a','d','e','r', 0,
|
||||
'z','e','r','o','o','l','d','s','t','y','l','e', 0,
|
||||
'o','n','e','o','l','d','s','t','y','l','e', 0,
|
||||
't','w','o','o','l','d','s','t','y','l','e', 0,
|
||||
't','h','r','e','e','o','l','d','s','t','y','l','e', 0,
|
||||
'f','o','u','r','o','l','d','s','t','y','l','e', 0,
|
||||
'f','i','v','e','o','l','d','s','t','y','l','e', 0,
|
||||
's','i','x','o','l','d','s','t','y','l','e', 0,
|
||||
's','e','v','e','n','o','l','d','s','t','y','l','e', 0,
|
||||
'e','i','g','h','t','o','l','d','s','t','y','l','e', 0,
|
||||
'n','i','n','e','o','l','d','s','t','y','l','e', 0,
|
||||
'c','o','m','m','a','s','u','p','e','r','i','o','r', 0,
|
||||
't','h','r','e','e','q','u','a','r','t','e','r','s','e','m','d','a','s','h', 0,
|
||||
'p','e','r','i','o','d','s','u','p','e','r','i','o','r', 0,
|
||||
'q','u','e','s','t','i','o','n','s','m','a','l','l', 0,
|
||||
'a','s','u','p','e','r','i','o','r', 0,
|
||||
'b','s','u','p','e','r','i','o','r', 0,
|
||||
'c','e','n','t','s','u','p','e','r','i','o','r', 0,
|
||||
'd','s','u','p','e','r','i','o','r', 0,
|
||||
'e','s','u','p','e','r','i','o','r', 0,
|
||||
'i','s','u','p','e','r','i','o','r', 0,
|
||||
'l','s','u','p','e','r','i','o','r', 0,
|
||||
'm','s','u','p','e','r','i','o','r', 0,
|
||||
'n','s','u','p','e','r','i','o','r', 0,
|
||||
'o','s','u','p','e','r','i','o','r', 0,
|
||||
'r','s','u','p','e','r','i','o','r', 0,
|
||||
's','s','u','p','e','r','i','o','r', 0,
|
||||
't','s','u','p','e','r','i','o','r', 0,
|
||||
'f','f', 0,
|
||||
'f','f','i', 0,
|
||||
'f','f','l', 0,
|
||||
'p','a','r','e','n','l','e','f','t','i','n','f','e','r','i','o','r', 0,
|
||||
'p','a','r','e','n','r','i','g','h','t','i','n','f','e','r','i','o','r', 0,
|
||||
'C','i','r','c','u','m','f','l','e','x','s','m','a','l','l', 0,
|
||||
'h','y','p','h','e','n','s','u','p','e','r','i','o','r', 0,
|
||||
'G','r','a','v','e','s','m','a','l','l', 0,
|
||||
'A','s','m','a','l','l', 0,
|
||||
'B','s','m','a','l','l', 0,
|
||||
'C','s','m','a','l','l', 0,
|
||||
'D','s','m','a','l','l', 0,
|
||||
'E','s','m','a','l','l', 0,
|
||||
'F','s','m','a','l','l', 0,
|
||||
'G','s','m','a','l','l', 0,
|
||||
'H','s','m','a','l','l', 0,
|
||||
'I','s','m','a','l','l', 0,
|
||||
'J','s','m','a','l','l', 0,
|
||||
'K','s','m','a','l','l', 0,
|
||||
'L','s','m','a','l','l', 0,
|
||||
'M','s','m','a','l','l', 0,
|
||||
'N','s','m','a','l','l', 0,
|
||||
'O','s','m','a','l','l', 0,
|
||||
'P','s','m','a','l','l', 0,
|
||||
'Q','s','m','a','l','l', 0,
|
||||
'R','s','m','a','l','l', 0,
|
||||
'S','s','m','a','l','l', 0,
|
||||
'T','s','m','a','l','l', 0,
|
||||
'U','s','m','a','l','l', 0,
|
||||
'V','s','m','a','l','l', 0,
|
||||
'W','s','m','a','l','l', 0,
|
||||
'X','s','m','a','l','l', 0,
|
||||
'Y','s','m','a','l','l', 0,
|
||||
'Z','s','m','a','l','l', 0,
|
||||
'c','o','l','o','n','m','o','n','e','t','a','r','y', 0,
|
||||
'o','n','e','f','i','t','t','e','d', 0,
|
||||
'r','u','p','i','a','h', 0,
|
||||
'T','i','l','d','e','s','m','a','l','l', 0,
|
||||
'e','x','c','l','a','m','d','o','w','n','s','m','a','l','l', 0,
|
||||
'c','e','n','t','o','l','d','s','t','y','l','e', 0,
|
||||
'L','s','l','a','s','h','s','m','a','l','l', 0,
|
||||
'S','c','a','r','o','n','s','m','a','l','l', 0,
|
||||
'Z','c','a','r','o','n','s','m','a','l','l', 0,
|
||||
'D','i','e','r','e','s','i','s','s','m','a','l','l', 0,
|
||||
'B','r','e','v','e','s','m','a','l','l', 0,
|
||||
'C','a','r','o','n','s','m','a','l','l', 0,
|
||||
'D','o','t','a','c','c','e','n','t','s','m','a','l','l', 0,
|
||||
'M','a','c','r','o','n','s','m','a','l','l', 0,
|
||||
'f','i','g','u','r','e','d','a','s','h', 0,
|
||||
'h','y','p','h','e','n','i','n','f','e','r','i','o','r', 0,
|
||||
'O','g','o','n','e','k','s','m','a','l','l', 0,
|
||||
'R','i','n','g','s','m','a','l','l', 0,
|
||||
'C','e','d','i','l','l','a','s','m','a','l','l', 0,
|
||||
'q','u','e','s','t','i','o','n','d','o','w','n','s','m','a','l','l', 0,
|
||||
'o','n','e','e','i','g','h','t','h', 0,
|
||||
't','h','r','e','e','e','i','g','h','t','h','s', 0,
|
||||
'f','i','v','e','e','i','g','h','t','h','s', 0,
|
||||
's','e','v','e','n','e','i','g','h','t','h','s', 0,
|
||||
'o','n','e','t','h','i','r','d', 0,
|
||||
't','w','o','t','h','i','r','d','s', 0,
|
||||
'z','e','r','o','s','u','p','e','r','i','o','r', 0,
|
||||
'f','o','u','r','s','u','p','e','r','i','o','r', 0,
|
||||
'f','i','v','e','s','u','p','e','r','i','o','r', 0,
|
||||
's','i','x','s','u','p','e','r','i','o','r', 0,
|
||||
's','e','v','e','n','s','u','p','e','r','i','o','r', 0,
|
||||
'e','i','g','h','t','s','u','p','e','r','i','o','r', 0,
|
||||
'n','i','n','e','s','u','p','e','r','i','o','r', 0,
|
||||
'z','e','r','o','i','n','f','e','r','i','o','r', 0,
|
||||
'o','n','e','i','n','f','e','r','i','o','r', 0,
|
||||
't','w','o','i','n','f','e','r','i','o','r', 0,
|
||||
't','h','r','e','e','i','n','f','e','r','i','o','r', 0,
|
||||
'f','o','u','r','i','n','f','e','r','i','o','r', 0,
|
||||
'f','i','v','e','i','n','f','e','r','i','o','r', 0,
|
||||
's','i','x','i','n','f','e','r','i','o','r', 0,
|
||||
's','e','v','e','n','i','n','f','e','r','i','o','r', 0,
|
||||
'e','i','g','h','t','i','n','f','e','r','i','o','r', 0,
|
||||
'n','i','n','e','i','n','f','e','r','i','o','r', 0,
|
||||
'c','e','n','t','i','n','f','e','r','i','o','r', 0,
|
||||
'd','o','l','l','a','r','i','n','f','e','r','i','o','r', 0,
|
||||
'p','e','r','i','o','d','i','n','f','e','r','i','o','r', 0,
|
||||
'c','o','m','m','a','i','n','f','e','r','i','o','r', 0,
|
||||
'A','g','r','a','v','e','s','m','a','l','l', 0,
|
||||
'A','a','c','u','t','e','s','m','a','l','l', 0,
|
||||
'A','c','i','r','c','u','m','f','l','e','x','s','m','a','l','l', 0,
|
||||
'A','t','i','l','d','e','s','m','a','l','l', 0,
|
||||
'A','d','i','e','r','e','s','i','s','s','m','a','l','l', 0,
|
||||
'A','r','i','n','g','s','m','a','l','l', 0,
|
||||
'A','E','s','m','a','l','l', 0,
|
||||
'C','c','e','d','i','l','l','a','s','m','a','l','l', 0,
|
||||
'E','g','r','a','v','e','s','m','a','l','l', 0,
|
||||
'E','a','c','u','t','e','s','m','a','l','l', 0,
|
||||
'E','c','i','r','c','u','m','f','l','e','x','s','m','a','l','l', 0,
|
||||
'E','d','i','e','r','e','s','i','s','s','m','a','l','l', 0,
|
||||
'I','g','r','a','v','e','s','m','a','l','l', 0,
|
||||
'I','a','c','u','t','e','s','m','a','l','l', 0,
|
||||
'I','c','i','r','c','u','m','f','l','e','x','s','m','a','l','l', 0,
|
||||
'I','d','i','e','r','e','s','i','s','s','m','a','l','l', 0,
|
||||
'E','t','h','s','m','a','l','l', 0,
|
||||
'N','t','i','l','d','e','s','m','a','l','l', 0,
|
||||
'O','g','r','a','v','e','s','m','a','l','l', 0,
|
||||
'O','a','c','u','t','e','s','m','a','l','l', 0,
|
||||
'O','c','i','r','c','u','m','f','l','e','x','s','m','a','l','l', 0,
|
||||
'O','t','i','l','d','e','s','m','a','l','l', 0,
|
||||
'O','d','i','e','r','e','s','i','s','s','m','a','l','l', 0,
|
||||
'O','E','s','m','a','l','l', 0,
|
||||
'O','s','l','a','s','h','s','m','a','l','l', 0,
|
||||
'U','g','r','a','v','e','s','m','a','l','l', 0,
|
||||
'U','a','c','u','t','e','s','m','a','l','l', 0,
|
||||
'U','c','i','r','c','u','m','f','l','e','x','s','m','a','l','l', 0,
|
||||
'U','d','i','e','r','e','s','i','s','s','m','a','l','l', 0,
|
||||
'Y','a','c','u','t','e','s','m','a','l','l', 0,
|
||||
'T','h','o','r','n','s','m','a','l','l', 0,
|
||||
'Y','d','i','e','r','e','s','i','s','s','m','a','l','l', 0,
|
||||
'0','0','1','.','0','0','0', 0,
|
||||
'0','0','1','.','0','0','1', 0,
|
||||
'0','0','1','.','0','0','2', 0,
|
||||
'0','0','1','.','0','0','3', 0,
|
||||
'B','l','a','c','k', 0,
|
||||
'B','o','l','d', 0,
|
||||
'B','o','o','k', 0,
|
||||
'L','i','g','h','t', 0,
|
||||
'M','e','d','i','u','m', 0,
|
||||
'R','e','g','u','l','a','r', 0,
|
||||
'R','o','m','a','n', 0,
|
||||
'S','e','m','i','b','o','l','d', 0,
|
||||
};
|
||||
|
||||
|
||||
#define FT_NUM_MAC_NAMES 258
|
||||
|
||||
static const short ft_mac_names[258] =
|
||||
{
|
||||
/* Values are offsets into the `ft_standard_glyph_names' table */
|
||||
|
||||
static const short ft_mac_names[FT_NUM_MAC_NAMES] =
|
||||
{
|
||||
253, 0, 6, 261, 267, 274, 283, 294, 301, 309, 758, 330, 340, 351,
|
||||
360, 365, 371, 378, 385, 391, 396, 400, 404, 410, 415, 420, 424, 430,
|
||||
436, 441, 447, 457, 462, 468, 476, 485, 488, 490, 492, 494, 496, 498,
|
||||
|
@ -276,12 +469,15 @@ static const short ft_mac_names[258] =
|
|||
1066,1073,1101,1143,1536,1783,1596,1843,1253,1207,1319,1579,1826,1229,
|
||||
1270,1313,1323,1171,1290,1332,1211,1235,1276, 169, 175, 182, 189, 200,
|
||||
209, 218, 225, 232, 239, 246
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
#define FT_NUM_SID_NAMES 391
|
||||
|
||||
static const short ft_sid_names[391] =
|
||||
{
|
||||
/* Values are offsets into the `ft_standard_glyph_names' table */
|
||||
|
||||
static const short ft_sid_names[FT_NUM_SID_NAMES] =
|
||||
{
|
||||
253, 261, 267, 274, 283, 294, 301, 309, 319, 330, 340, 351, 360, 365,
|
||||
371, 378, 385, 391, 396, 400, 404, 410, 415, 420, 424, 430, 436, 441,
|
||||
447, 457, 462, 468, 476, 485, 488, 490, 492, 494, 496, 498, 500, 502,
|
||||
|
@ -310,11 +506,12 @@ static const short ft_sid_names[391] =
|
|||
3237,3249,3264,3275,3283,3297,3309,3321,3338,3353,3365,3377,3394,3409,
|
||||
3418,3430,3442,3454,3471,3483,3498,3506,3518,3530,3542,3559,3574,3586,
|
||||
3597,3612,3620,3628,3636,3644,3650,3655,3660,3666,3673,3681,3687
|
||||
};
|
||||
};
|
||||
|
||||
/* the following are indices into the SID name table */
|
||||
static const unsigned short t1_standard_encoding[256] =
|
||||
{
|
||||
|
||||
/* the following are indices into the SID name table */
|
||||
static const unsigned short t1_standard_encoding[256] =
|
||||
{
|
||||
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,
|
||||
|
@ -331,11 +528,12 @@ static const unsigned short t1_standard_encoding[256] =
|
|||
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
|
||||
};
|
||||
};
|
||||
|
||||
/* the following are indices into the SID name table */
|
||||
static const unsigned short t1_expert_encoding[256] =
|
||||
{
|
||||
|
||||
/* the following are indices into the SID name table */
|
||||
static const unsigned short t1_expert_encoding[256] =
|
||||
{
|
||||
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,
|
||||
|
@ -352,19 +550,19 @@ static const unsigned short t1_expert_encoding[256] =
|
|||
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
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/* this table is a compressed version of the Adobe Glyph List
|
||||
* which has been optimized for efficient searching. It has
|
||||
* been generated by the 'glnames.py' python script located
|
||||
* in the 'src/tools' directory.
|
||||
/*
|
||||
* This table is a compressed version of the Adobe Glyph List (AGL),
|
||||
* optimized for efficient searching. It has been generated by the
|
||||
* `glnames.py' python script located in the `src/tools' directory.
|
||||
*
|
||||
* the corresponding lookup function is defined just below
|
||||
* the table (several pages down this text :-)
|
||||
* The lookup function to get the Unicode value for a given string
|
||||
* is defined below the table.
|
||||
*/
|
||||
static const unsigned char ft_adobe_glyph_list[54791] =
|
||||
{
|
||||
static const unsigned char ft_adobe_glyph_list[54791] =
|
||||
{
|
||||
0, 52, 0,106, 2,167, 3, 63, 4,220, 6,125, 9,143, 10, 23,
|
||||
11,137, 12,199, 14,246, 15, 87, 16,233, 17,219, 18,104, 19, 88,
|
||||
22,110, 23, 32, 23, 71, 24, 77, 27,156, 29, 73, 31,247, 32,107,
|
||||
|
@ -3790,11 +3988,11 @@ static const unsigned char ft_adobe_glyph_list[54791] =
|
|||
2,144,243,244,242,239,235,101,128, 1,182,117, 2,213,241,213,
|
||||
252,232,233,242,225,231,225,238, 97,128, 48, 90,235,225,244,225,
|
||||
235,225,238, 97,128, 48,186
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/* this is the wicked routine used to search our compressed
|
||||
* table efficiently
|
||||
/*
|
||||
* This function searches the compressed table efficiently.
|
||||
*/
|
||||
static unsigned long
|
||||
ft_get_adobe_glyph_index( const char* name,
|
||||
|
@ -3804,6 +4002,7 @@ static const unsigned char ft_adobe_glyph_list[54791] =
|
|||
int count, min, max;
|
||||
const unsigned char* p = ft_adobe_glyph_list;
|
||||
|
||||
|
||||
if ( name == 0 || name >= limit )
|
||||
goto NotFound;
|
||||
|
||||
|
@ -3816,11 +4015,12 @@ static const unsigned char ft_adobe_glyph_list[54791] =
|
|||
|
||||
while ( min < max )
|
||||
{
|
||||
int mid = (min+max) >> 1;
|
||||
const unsigned char* q = p + mid*2;
|
||||
int mid = ( min + max ) >> 1;
|
||||
const unsigned char* q = p + mid * 2;
|
||||
int c2;
|
||||
|
||||
q = ft_adobe_glyph_list + (((int)q[0] << 8) | q[1]);
|
||||
|
||||
q = ft_adobe_glyph_list + ( ( (int)q[0] << 8 ) | q[1] );
|
||||
|
||||
c2 = q[0] & 127;
|
||||
if ( c2 == c )
|
||||
|
@ -3829,7 +4029,7 @@ static const unsigned char ft_adobe_glyph_list[54791] =
|
|||
goto Found;
|
||||
}
|
||||
if ( c2 < c )
|
||||
min = mid+1;
|
||||
min = mid + 1;
|
||||
else
|
||||
max = mid;
|
||||
}
|
||||
|
@ -3844,7 +4044,7 @@ static const unsigned char ft_adobe_glyph_list[54791] =
|
|||
{
|
||||
if ( (p[0] & 128) == 0 &&
|
||||
(p[1] & 128) != 0 )
|
||||
return (unsigned long)(((int)p[2] << 8) | p[3]);
|
||||
return (unsigned long)( ( (int)p[2] << 8 ) | p[3] );
|
||||
|
||||
goto NotFound;
|
||||
}
|
||||
|
@ -3867,10 +4067,10 @@ static const unsigned char ft_adobe_glyph_list[54791] =
|
|||
|
||||
for ( ; count > 0; count--, p += 2 )
|
||||
{
|
||||
int offset = ((int)p[0] << 8) | p[1];
|
||||
int offset = ( (int)p[0] << 8 ) | p[1];
|
||||
const unsigned char* q = ft_adobe_glyph_list + offset;
|
||||
|
||||
if ( c == (q[0] & 127) )
|
||||
if ( c == ( q[0] & 127 ) )
|
||||
{
|
||||
p = q;
|
||||
goto NextIter;
|
||||
|
@ -3886,4 +4086,5 @@ static const unsigned char ft_adobe_glyph_list[54791] =
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* END */
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#
|
||||
|
||||
|
||||
# Copyright 1996-2000, 2003 by
|
||||
# Copyright 1996-2000, 2003, 2005 by
|
||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
#
|
||||
# This file is part of the FreeType project, and may only be used, modified,
|
||||
|
@ -20,20 +20,23 @@
|
|||
|
||||
usage: %s <output-file>
|
||||
|
||||
This very simple python script is used to generate the glyph names
|
||||
tables defined in the PSNames module.
|
||||
This python script generates the glyph names tables defined in the
|
||||
PSNames module.
|
||||
|
||||
Its single argument is the name of the header file to be created.
|
||||
"""
|
||||
|
||||
|
||||
import sys, string, struct
|
||||
import sys, string, struct, re, os.path
|
||||
|
||||
|
||||
# This table is used to name the glyphs according to the Macintosh
|
||||
# specification. It is used by the TrueType Postscript names table.
|
||||
# This table lists the glyphs according to the Macintosh specification.
|
||||
# It is used by the TrueType Postscript names table.
|
||||
#
|
||||
# See
|
||||
#
|
||||
# http://fonts.apple.com/TTRefMan/RM06/Chap6post.html
|
||||
#
|
||||
# See http://fonts.apple.com/TTRefMan/RM06/Chap6post.html
|
||||
# for the official list.
|
||||
#
|
||||
mac_standard_names = \
|
||||
|
@ -145,8 +148,9 @@ mac_standard_names = \
|
|||
]
|
||||
|
||||
|
||||
# The list of standard "SID" glyph names. For the official list,
|
||||
# The list of standard `SID' glyph names. For the official list,
|
||||
# see Annex A of document at
|
||||
#
|
||||
# http://partners.adobe.com/asn/developer/pdfs/tn/5176.CFF.pdf.
|
||||
#
|
||||
sid_standard_names = \
|
||||
|
@ -4702,54 +4706,46 @@ zukatakana;30BA
|
|||
# string table management
|
||||
#
|
||||
class StringTable:
|
||||
def __init__(self,name_list):
|
||||
def __init__( self, name_list, master_table_name ):
|
||||
self.names = name_list
|
||||
self.master_table = master_table_name
|
||||
self.indices = {}
|
||||
index = 0
|
||||
|
||||
for name in name_list:
|
||||
self.indices[name] = index
|
||||
index += len(name) + 1
|
||||
index += len( name ) + 1
|
||||
|
||||
self.total = index
|
||||
|
||||
def dump(self,file,table_name):
|
||||
def dump( self, file ):
|
||||
write = file.write
|
||||
write( "static const char " + table_name + "["+repr(self.total)+"] =\n" )
|
||||
write( "{\n" )
|
||||
column = 0
|
||||
line = " "
|
||||
comma = ""
|
||||
write( " static const char " + self.master_table +
|
||||
"[" + repr( self.total ) + "] =\n" )
|
||||
write( " {\n" )
|
||||
|
||||
line = ""
|
||||
for name in self.names:
|
||||
for n in range(len(name)):
|
||||
line += comma
|
||||
line += "'%c'" % name[n]
|
||||
comma = ","
|
||||
column += 1
|
||||
if column == 16:
|
||||
column = 0
|
||||
comma = ",\n "
|
||||
line += comma
|
||||
line += " 0 "
|
||||
comma = ","
|
||||
column += 1
|
||||
if column == 16:
|
||||
column = 0
|
||||
comma = ",\n "
|
||||
line += " '"
|
||||
line += string.join( ( re.findall( ".", name ) ), "','" )
|
||||
line += "', 0,\n"
|
||||
|
||||
if column != 0:
|
||||
line += "\n"
|
||||
write( line + " };\n\n\n" )
|
||||
|
||||
write( line + "};\n\n" )
|
||||
|
||||
def dump_sublist(self,file,table_name,macro_name,sublist):
|
||||
def dump_sublist( self, file, table_name, macro_name, sublist ):
|
||||
write = file.write
|
||||
write( "#define "+macro_name+" "+repr(len(sublist))+"\n\n" )
|
||||
write( "static const short " + table_name + "["+repr(len(sublist))+"] =\n" )
|
||||
write( "{\n" )
|
||||
write( "#define " + macro_name + " " + repr( len( sublist ) ) + "\n\n" )
|
||||
|
||||
write( " /* Values are offsets into the `" +
|
||||
self.master_table + "' table */\n\n" )
|
||||
write( " static const short " + table_name +
|
||||
"[" + macro_name + "] =\n" )
|
||||
write( " {\n" )
|
||||
|
||||
line = " "
|
||||
comma = ""
|
||||
col = 0
|
||||
|
||||
for name in sublist:
|
||||
line += comma
|
||||
line += "%4d" % self.indices[name]
|
||||
|
@ -4759,71 +4755,78 @@ class StringTable:
|
|||
col = 0
|
||||
comma = ",\n "
|
||||
|
||||
write( line + "\n};\n\n" )
|
||||
write( line + "\n };\n\n\n" )
|
||||
|
||||
|
||||
class StringNode:
|
||||
def __init__(self,letter,value):
|
||||
def __init__( self, letter, value ):
|
||||
self.letter = letter
|
||||
self.value = value
|
||||
self.children = {}
|
||||
|
||||
def __cmp__(self,other):
|
||||
return ord(self.letter[0]) - ord(other.letter[0])
|
||||
def __cmp__( self, other ):
|
||||
return ord( self.letter[0] ) - ord( other.letter[0] )
|
||||
|
||||
def add(self,word,value):
|
||||
if len(word) == 0:
|
||||
def add( self, word, value ):
|
||||
if len( word ) == 0:
|
||||
self.value = value
|
||||
return
|
||||
|
||||
letter = word[0]
|
||||
word = word[1:]
|
||||
if self.children.has_key(letter):
|
||||
|
||||
if self.children.has_key( letter ):
|
||||
child = self.children[letter]
|
||||
else:
|
||||
child = StringNode(letter,0)
|
||||
child = StringNode( letter, 0 )
|
||||
self.children[letter] = child
|
||||
child.add(word,value)
|
||||
|
||||
def optimize(self):
|
||||
child.add( word, value )
|
||||
|
||||
def optimize( self ):
|
||||
# optimize all children first
|
||||
children = self.children.values()
|
||||
self.children = {}
|
||||
|
||||
for child in children:
|
||||
self.children[child.letter[0]] = child.optimize()
|
||||
|
||||
# don't optimize if there's a value,
|
||||
# if we don't have any child or if we
|
||||
# have more than one child
|
||||
if (self.value != 0) or (not children) or len(children) > 1:
|
||||
if ( self.value != 0 ) or ( not children ) or len( children ) > 1:
|
||||
return self
|
||||
|
||||
child = children[0]
|
||||
|
||||
self.letter += child.letter
|
||||
self.value = child.value
|
||||
self.children = child.children
|
||||
|
||||
return self
|
||||
|
||||
def dump_debug(self,write,margin):
|
||||
def dump_debug( self, write, margin ):
|
||||
# this is used during debugging
|
||||
line = margin + "+-"
|
||||
if len(self.letter) == 0:
|
||||
if len( self.letter ) == 0:
|
||||
line += "<NOLETTER>"
|
||||
else:
|
||||
line += self.letter
|
||||
|
||||
if self.value:
|
||||
line += " => " + repr(self.value)
|
||||
line += " => " + repr( self.value )
|
||||
|
||||
write( line + "\n" )
|
||||
|
||||
write( line+"\n" )
|
||||
if self.children:
|
||||
margin += "| "
|
||||
for child in self.children.values():
|
||||
child.dump_debug(write,margin)
|
||||
child.dump_debug( write, margin )
|
||||
|
||||
def locate(self,index):
|
||||
def locate( self, index ):
|
||||
self.index = index
|
||||
if len(self.letter) > 0:
|
||||
index += len(self.letter)+1
|
||||
if len( self.letter ) > 0:
|
||||
index += len( self.letter ) + 1
|
||||
else:
|
||||
index += 2
|
||||
|
||||
|
@ -4832,30 +4835,33 @@ class StringNode:
|
|||
|
||||
children = self.children.values()
|
||||
children.sort()
|
||||
index += 2*len(children)
|
||||
|
||||
index += 2 * len( children )
|
||||
for child in children:
|
||||
index = child.locate(index)
|
||||
index = child.locate( index )
|
||||
|
||||
return index
|
||||
|
||||
def store(self,storage):
|
||||
def store( self, storage ):
|
||||
# write the letters
|
||||
l = len(self.letter)
|
||||
l = len( self.letter )
|
||||
if l == 0:
|
||||
storage += struct.pack("B",0)
|
||||
storage += struct.pack( "B", 0 )
|
||||
else:
|
||||
for n in range(l):
|
||||
val = ord(self.letter[n])
|
||||
if n < l-1:
|
||||
for n in range( l ):
|
||||
val = ord( self.letter[n] )
|
||||
if n < l - 1:
|
||||
val += 128
|
||||
storage += struct.pack("B",val)
|
||||
storage += struct.pack( "B", val )
|
||||
|
||||
# write the count
|
||||
children = self.children.values()
|
||||
children.sort()
|
||||
count = len(children)
|
||||
|
||||
count = len( children )
|
||||
|
||||
if self.value != 0:
|
||||
storage += struct.pack( "!BH", count+128, self.value )
|
||||
storage += struct.pack( "!BH", count + 128, self.value )
|
||||
else:
|
||||
storage += struct.pack( "B", count )
|
||||
|
||||
|
@ -4863,28 +4869,10 @@ class StringNode:
|
|||
storage += struct.pack( "!H", child.index )
|
||||
|
||||
for child in children:
|
||||
storage = child.store(storage)
|
||||
storage = child.store( storage )
|
||||
|
||||
return storage
|
||||
|
||||
t1_bias = 0
|
||||
glyph_list = []
|
||||
|
||||
|
||||
def adobe_glyph_names():
|
||||
"""return the list of glyph names from the adobe list"""
|
||||
|
||||
lines = string.split( adobe_glyph_list, '\n' )
|
||||
glyphs = []
|
||||
|
||||
for line in lines:
|
||||
if line:
|
||||
fields = string.split( line, ';' )
|
||||
# print fields[1] + ' - ' + fields[0]
|
||||
glyphs.append( fields[0] )
|
||||
|
||||
return glyphs
|
||||
|
||||
|
||||
def adobe_glyph_values():
|
||||
"""return the list of glyph names and their unicode values"""
|
||||
|
@ -4906,7 +4894,7 @@ def adobe_glyph_values():
|
|||
|
||||
|
||||
def filter_glyph_names( alist, filter ):
|
||||
"""filter 'alist' by taking _out_ all glyph names that are in 'filter'"""
|
||||
"""filter `alist' by taking _out_ all glyph names that are in `filter'"""
|
||||
|
||||
count = 0
|
||||
extras = []
|
||||
|
@ -4920,15 +4908,14 @@ def filter_glyph_names( alist, filter ):
|
|||
return extras
|
||||
|
||||
|
||||
|
||||
def dump_encoding( file, encoding_name, encoding_list ):
|
||||
"""dumps a given encoding"""
|
||||
"""dump a given encoding"""
|
||||
|
||||
write = file.write
|
||||
write( "/* the following are indices into the SID name table */\n" )
|
||||
write( "static const unsigned short " + encoding_name + "[" + \
|
||||
repr( len( encoding_list ) ) + "] =\n" )
|
||||
write( "{\n" )
|
||||
write( " /* the following are indices into the SID name table */\n" )
|
||||
write( " static const unsigned short " + encoding_name +
|
||||
"[" + repr( len( encoding_list ) ) + "] =\n" )
|
||||
write( " {\n" )
|
||||
|
||||
line = " "
|
||||
comma = ""
|
||||
|
@ -4942,33 +4929,35 @@ def dump_encoding( file, encoding_name, encoding_list ):
|
|||
col = 0
|
||||
comma = ",\n "
|
||||
|
||||
write( line + "\n};\n\n" )
|
||||
write( line + "\n };\n\n\n" )
|
||||
|
||||
|
||||
def dump_array( the_array, write, array_name ):
|
||||
"""dumps a given encoding"""
|
||||
|
||||
write( "static const unsigned char " + array_name + "[" + \
|
||||
repr(len(the_array)) + "] =\n" )
|
||||
write( "{\n" )
|
||||
write( " static const unsigned char " + array_name +
|
||||
"[" + repr( len( the_array ) ) + "] =\n" )
|
||||
write( " {\n" )
|
||||
|
||||
line = ""
|
||||
comma = " "
|
||||
col = 0
|
||||
|
||||
for value in the_array:
|
||||
line += comma
|
||||
line += "%3d" % ord(value)
|
||||
line += "%3d" % ord( value )
|
||||
comma = ","
|
||||
col += 1
|
||||
|
||||
if col == 16:
|
||||
col = 0
|
||||
comma = ",\n "
|
||||
|
||||
if len(line) > 1024:
|
||||
if len( line ) > 1024:
|
||||
write( line )
|
||||
line = ""
|
||||
|
||||
write( line + "\n};\n\n" )
|
||||
|
||||
write( line + "\n };\n\n\n" )
|
||||
|
||||
|
||||
def main():
|
||||
|
@ -4983,23 +4972,22 @@ def main():
|
|||
|
||||
count_sid = len( sid_standard_names )
|
||||
|
||||
# 'mac_extras' contains the list of glyph names in the Macintosh standard
|
||||
# `mac_extras' contains the list of glyph names in the Macintosh standard
|
||||
# encoding which are not in the SID Standard Names.
|
||||
#
|
||||
mac_extras = filter_glyph_names( mac_standard_names, sid_standard_names )
|
||||
|
||||
# 'base_list' contains the names of our final glyph names table.
|
||||
# It consists of the 'mac_extras' glyph names, followed by the SID
|
||||
# Standard names.
|
||||
# `base_list' contains the names of our final glyph names table.
|
||||
# It consists of the `mac_extras' glyph names, followed by the SID
|
||||
# standard names.
|
||||
#
|
||||
mac_extras_count = len( mac_extras )
|
||||
t1_bias = mac_extras_count
|
||||
base_list = mac_extras + sid_standard_names
|
||||
|
||||
write( "/***************************************************************************/\n" )
|
||||
write( "/* */\n" )
|
||||
|
||||
write( "/* %-71s*/\n" % sys.argv[1] )
|
||||
write( "/* %-71s*/\n" % os.path.basename( sys.argv[1] ) )
|
||||
|
||||
write( "/* */\n" )
|
||||
write( "/* PostScript glyph names. */\n" )
|
||||
|
@ -5016,17 +5004,19 @@ def main():
|
|||
write( "/***************************************************************************/\n" )
|
||||
write( "\n" )
|
||||
write( "\n" )
|
||||
write( " /* ALL of this file has been generated automatically -- do not edit! */\n" )
|
||||
write( " /* This file has been generated automatically -- do not edit! */\n" )
|
||||
write( "\n" )
|
||||
write( "\n" )
|
||||
|
||||
# dump final glyph list (mac extras + sid standard names)
|
||||
#
|
||||
st = StringTable(base_list)
|
||||
st = StringTable( base_list, "ft_standard_glyph_names" )
|
||||
|
||||
st.dump(file,"ft_standard_glyph_names")
|
||||
st.dump_sublist(file,"ft_mac_names","FT_NUM_MAC_NAMES",mac_standard_names)
|
||||
st.dump_sublist(file,"ft_sid_names","FT_NUM_SID_NAMES",sid_standard_names)
|
||||
st.dump( file )
|
||||
st.dump_sublist( file, "ft_mac_names",
|
||||
"FT_NUM_MAC_NAMES", mac_standard_names )
|
||||
st.dump_sublist( file, "ft_sid_names",
|
||||
"FT_NUM_SID_NAMES", sid_standard_names )
|
||||
|
||||
dump_encoding( file, "t1_standard_encoding", t1_standard_encoding )
|
||||
dump_encoding( file, "t1_expert_encoding", t1_expert_encoding )
|
||||
|
@ -5035,31 +5025,32 @@ def main():
|
|||
#
|
||||
agl_glyphs, agl_values = adobe_glyph_values()
|
||||
dict = StringNode( "", 0 )
|
||||
for g in range(len(agl_glyphs)):
|
||||
dict.add(agl_glyphs[g],eval("0x"+agl_values[g]))
|
||||
|
||||
for g in range( len( agl_glyphs ) ):
|
||||
dict.add( agl_glyphs[g], eval( "0x" + agl_values[g] ) )
|
||||
|
||||
dict = dict.optimize()
|
||||
dict_len = dict.locate(0)
|
||||
dict_array = dict.store("")
|
||||
dict_len = dict.locate( 0 )
|
||||
dict_array = dict.store( "" )
|
||||
|
||||
write( """
|
||||
/* this table is a compressed version of the Adobe Glyph List
|
||||
* which has been optimized for efficient searching. It has
|
||||
* been generated by the 'glnames.py' python script located
|
||||
* in the 'src/tools' directory.
|
||||
write( """\
|
||||
/*
|
||||
* This table is a compressed version of the Adobe Glyph List (AGL),
|
||||
* optimized for efficient searching. It has been generated by the
|
||||
* `glnames.py' python script located in the `src/tools' directory.
|
||||
*
|
||||
* the corresponding lookup function is defined just below
|
||||
* the table (several pages down this text :-)
|
||||
* The lookup function to get the Unicode value for a given string
|
||||
* is defined below the table.
|
||||
*/
|
||||
""" )
|
||||
|
||||
dump_array(dict_array,write,"ft_adobe_glyph_list")
|
||||
dump_array( dict_array, write, "ft_adobe_glyph_list" )
|
||||
|
||||
# write the lookup routine now
|
||||
#
|
||||
write( """
|
||||
/* this is the wicked routine used to search our compressed
|
||||
* table efficiently
|
||||
write( """\
|
||||
/*
|
||||
* This function searches the compressed table efficiently.
|
||||
*/
|
||||
static unsigned long
|
||||
ft_get_adobe_glyph_index( const char* name,
|
||||
|
@ -5069,6 +5060,7 @@ def main():
|
|||
int count, min, max;
|
||||
const unsigned char* p = ft_adobe_glyph_list;
|
||||
|
||||
|
||||
if ( name == 0 || name >= limit )
|
||||
goto NotFound;
|
||||
|
||||
|
@ -5081,11 +5073,12 @@ def main():
|
|||
|
||||
while ( min < max )
|
||||
{
|
||||
int mid = (min+max) >> 1;
|
||||
const unsigned char* q = p + mid*2;
|
||||
int mid = ( min + max ) >> 1;
|
||||
const unsigned char* q = p + mid * 2;
|
||||
int c2;
|
||||
|
||||
q = ft_adobe_glyph_list + (((int)q[0] << 8) | q[1]);
|
||||
|
||||
q = ft_adobe_glyph_list + ( ( (int)q[0] << 8 ) | q[1] );
|
||||
|
||||
c2 = q[0] & 127;
|
||||
if ( c2 == c )
|
||||
|
@ -5094,7 +5087,7 @@ def main():
|
|||
goto Found;
|
||||
}
|
||||
if ( c2 < c )
|
||||
min = mid+1;
|
||||
min = mid + 1;
|
||||
else
|
||||
max = mid;
|
||||
}
|
||||
|
@ -5109,7 +5102,7 @@ def main():
|
|||
{
|
||||
if ( (p[0] & 128) == 0 &&
|
||||
(p[1] & 128) != 0 )
|
||||
return (unsigned long)(((int)p[2] << 8) | p[3]);
|
||||
return (unsigned long)( ( (int)p[2] << 8 ) | p[3] );
|
||||
|
||||
goto NotFound;
|
||||
}
|
||||
|
@ -5132,10 +5125,10 @@ def main():
|
|||
|
||||
for ( ; count > 0; count--, p += 2 )
|
||||
{
|
||||
int offset = ((int)p[0] << 8) | p[1];
|
||||
int offset = ( (int)p[0] << 8 ) | p[1];
|
||||
const unsigned char* q = ft_adobe_glyph_list + offset;
|
||||
|
||||
if ( c == (q[0] & 127) )
|
||||
if ( c == ( q[0] & 127 ) )
|
||||
{
|
||||
p = q;
|
||||
goto NextIter;
|
||||
|
@ -5161,31 +5154,34 @@ def main():
|
|||
|
||||
write( "static const char* const the_names[] = {\n" )
|
||||
for name in agl_glyphs:
|
||||
write( ' "'+name+'",\n' )
|
||||
write( ' "' + name + '",\n' )
|
||||
write( " 0\n};\n" )
|
||||
|
||||
write( "static const unsigned long the_values[] = {\n" )
|
||||
for val in agl_values:
|
||||
write( ' 0x'+val+',\n' )
|
||||
write( ' 0x' + val + ',\n' )
|
||||
write( " 0\n};\n" )
|
||||
|
||||
write( """
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main( void )
|
||||
int
|
||||
main( void )
|
||||
{
|
||||
int result = 0;
|
||||
const char* const* names = the_names;
|
||||
const unsigned long* values = the_values;
|
||||
|
||||
|
||||
for ( ; *names; names++, values++ )
|
||||
{
|
||||
const char* name = *names;
|
||||
unsigned long reference = *values;
|
||||
unsigned long value;
|
||||
|
||||
value = ft_get_adobe_glyph_index( name, name + strlen(name) );
|
||||
|
||||
value = ft_get_adobe_glyph_index( name, name + strlen( name ) );
|
||||
if ( value != reference )
|
||||
{
|
||||
result = 1;
|
||||
|
@ -5197,9 +5193,10 @@ def main():
|
|||
return result;
|
||||
}
|
||||
""" )
|
||||
|
||||
write( "#endif /* TEST */\n" )
|
||||
|
||||
write("/* END */\n")
|
||||
write("\n/* END */\n")
|
||||
|
||||
|
||||
# Now run the main routine
|
||||
|
|
Loading…
Reference in New Issue