Commit e9920c6972f72f188d2029ca13f69eede4022ea5

Werner Lemberg 2004-06-02T21:22:32

* src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English name record for the Apple platform is preferred to a non-English entry for the Microsoft platform. Problem reported by HANDA Ken'ichi.

diff --git a/ChangeLog b/ChangeLog
index 7e3f632..538269a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-06-01  Werner Lemberg  <wl@gnu.org>
+
+	* src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English
+	name record for the Apple platform is preferred to a non-English
+	entry for the Microsoft platform.  Problem reported by HANDA
+	Ken'ichi.
+
 2004-05-19  George Williams  <gww@silcom.com>
 
 	* src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c
index 5fca215..31281df 100644
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -160,6 +160,8 @@
     FT_Int            found_win     = -1;
     FT_Int            found_unicode = -1;
 
+    FT_Bool           is_english;
+
     TT_NameEntry_ConvertFunc  convert;
 
 
@@ -205,7 +207,8 @@
             case TT_MS_ID_SYMBOL_CS:
             case TT_MS_ID_UNICODE_CS:
             case TT_MS_ID_UCS_4:
-              found_win = n;
+              is_english = ( rec->languageID & 0x3FF ) == 0x009;
+              found_win  = n;
               break;
 
             default:
@@ -222,9 +225,10 @@
 
     /* some fonts contain invalid Unicode or Macintosh formatted entries; */
     /* we will thus favor names encoded in Windows formats if available   */
+    /* (provided it is an English name)                                   */
     /*                                                                    */
     convert = NULL;
-    if ( found_win >= 0 )
+    if ( found_win >= 0 && !( found_apple >= 0 && !is_english ) )
     {
       rec = face->name_table.names + found_win;
       switch ( rec->encodingID )