shithub: freetype+ttf2subf

Download patch

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.

git/fs: mount .git/fs: mount/attach disallowed
--- 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 )