ref: b653a2307921c0319043c5f5ecc1243ee9786d87
parent: c1abd6aa4715db225a71ecbe006fd7dbedf82fcf
author: Werner Lemberg <[email protected]>
date: Sun Feb 26 06:23:07 EST 2017
[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.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2017-02-23 Werner Lemberg <[email protected]>
+ [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.
+
+2017-02-23 Werner Lemberg <[email protected]>
+
[sfnt] Modularize `sfnt_get_ps_name'.
* src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -306,35 +306,50 @@
}
- 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;
+ *win = -1;
+ *apple = -1;
- /* 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;
-
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 )