shithub: freetype+ttf2subf

Download patch

ref: e9920c6972f72f188d2029ca13f69eede4022ea5
parent: 24bf96c5cca24e6a2ce0b721e4bcc57b6d9b58b3
author: Werner Lemberg <[email protected]>
date: Wed Jun 2 17:22:32 EDT 2004

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

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-06-01  Werner Lemberg  <[email protected]>
+
+	* 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  <[email protected]>
 
 	* src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
--- 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 )