From b653a2307921c0319043c5f5ecc1243ee9786d87 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Sun, 26 Feb 2017 11:23:07 +0100 Subject: [PATCH] [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. --- ChangeLog | 8 +++++++ src/sfnt/sfdriver.c | 51 +++++++++++++++++++++++++++++---------------- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8b715c800..8c8101535 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2017-02-23 Werner Lemberg + + [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 [sfnt] Modularize `sfnt_get_ps_name'. 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,10 +306,41 @@ } + static int + search_name_id( TT_Face face, + FT_Int id, + FT_Int *win, + FT_Int *apple ) + { + FT_Int n; + + + *win = -1; + *apple = -1; + + for ( n = 0; n < face->num_names; n++ ) + { + TT_Name name = face->name_table.names + n; + + + if ( name->nameID == id && name->stringLength > 0 ) + { + if ( IS_WIN( name ) ) + *win = n; + + if ( IS_APPLE( name ) ) + *apple = n; + } + } + + return *win || *apple; + } + + static const char* sfnt_get_ps_name( TT_Face face ) { - FT_Int n, found_win, found_apple; + FT_Int found_win, found_apple; const char* result = NULL; @@ -318,23 +349,7 @@ /* 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 ( IS_WIN( name ) ) - found_win = n; - - if ( IS_APPLE( name ) ) - found_apple = n; - } - } + search_name_id( face, 6, &found_win, &found_apple ); /* prefer Windows entries over Apple */ if ( found_win != -1 )