[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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
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,