Commit b653a2307921c0319043c5f5ecc1243ee9786d87

Werner Lemberg 2017-02-26T11:23:07

[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.

diff --git a/ChangeLog b/ChangeLog
index 8b715c8..8c81015 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2017-02-23  Werner Lemberg  <wl@gnu.org>
 
+	[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  <wl@gnu.org>
+
 	[sfnt] Modularize `sfnt_get_ps_name'.
 
 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c
index a7bde16..5c70de9 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,