summaryrefslogtreecommitdiff
path: root/src/sfnt/sfdriver.c
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2017-02-26 11:23:07 +0100
committerWerner Lemberg <wl@gnu.org>2017-02-28 15:27:43 +0100
commitb653a2307921c0319043c5f5ecc1243ee9786d87 (patch)
tree3fd520f6db501146c6a19312e9bc00b1fa98091e /src/sfnt/sfdriver.c
parentc1abd6aa4715db225a71ecbe006fd7dbedf82fcf (diff)
downloadfreetype2-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.c43
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,