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