diff options
author | Werner Lemberg <wl@gnu.org> | 2017-02-26 11:23:07 +0100 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2017-02-28 15:27:43 +0100 |
commit | b653a2307921c0319043c5f5ecc1243ee9786d87 (patch) | |
tree | 3fd520f6db501146c6a19312e9bc00b1fa98091e /src/sfnt/sfdriver.c | |
parent | c1abd6aa4715db225a71ecbe006fd7dbedf82fcf (diff) | |
download | freetype2-b653a2307921c0319043c5f5ecc1243ee9786d87.tar.gz |
[sfnt] Split off another bit of `sfnt_get_ps_name'.
* src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some
functionality into...
(search_name_id): ... New function.
Diffstat (limited to 'src/sfnt/sfdriver.c')
-rw-r--r-- | src/sfnt/sfdriver.c | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c index a7bde1668..5c70de989 100644 --- a/src/sfnt/sfdriver.c +++ b/src/sfnt/sfdriver.c @@ -306,36 +306,51 @@ } - static const char* - sfnt_get_ps_name( TT_Face face ) + static int + search_name_id( TT_Face face, + FT_Int id, + FT_Int *win, + FT_Int *apple ) { - FT_Int n, found_win, found_apple; - const char* result = NULL; + FT_Int n; - if ( face->postscript_name ) - return face->postscript_name; - - /* scan the name table to see whether we have a Postscript name here, */ - /* either in Macintosh or Windows platform encodings */ - found_win = -1; - found_apple = -1; + *win = -1; + *apple = -1; for ( n = 0; n < face->num_names; n++ ) { TT_Name name = face->name_table.names + n; - if ( name->nameID == 6 && name->stringLength > 0 ) + if ( name->nameID == id && name->stringLength > 0 ) { if ( IS_WIN( name ) ) - found_win = n; + *win = n; if ( IS_APPLE( name ) ) - found_apple = n; + *apple = n; } } + return *win || *apple; + } + + + static const char* + sfnt_get_ps_name( TT_Face face ) + { + FT_Int found_win, found_apple; + const char* result = NULL; + + + if ( face->postscript_name ) + return face->postscript_name; + + /* scan the name table to see whether we have a Postscript name here, */ + /* either in Macintosh or Windows platform encodings */ + search_name_id( face, 6, &found_win, &found_apple ); + /* prefer Windows entries over Apple */ if ( found_win != -1 ) result = get_win_string( face->root.memory, |