Alexandre Julliard : gdi32: Use Microsoft and Unicode encodings in priority for font names.

Alexandre Julliard julliard at winehq.org
Fri Aug 16 14:23:47 CDT 2013


Module: wine
Branch: master
Commit: 87c2581c54fe8b28586b1958942dc5832155e126
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=87c2581c54fe8b28586b1958942dc5832155e126

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Aug 16 19:11:33 2013 +0200

gdi32: Use Microsoft and Unicode encodings in priority for font names.

---

 dlls/gdi32/freetype.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 0e6f4e1..2a2bde1 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -1306,10 +1306,12 @@ static inline WORD get_mac_code_page( const FT_SfntName *name )
 static int match_name_table_language( const FT_SfntName *name, LANGID lang )
 {
     LANGID name_lang;
+    int res = 0;
 
     switch (name->platform_id)
     {
     case TT_PLATFORM_MICROSOFT:
+        res += 5;  /* prefer the Microsoft name */
         switch (name->encoding_id)
         {
         case TT_MS_ID_UNICODE_CS:
@@ -1326,6 +1328,7 @@ static int match_name_table_language( const FT_SfntName *name, LANGID lang )
         name_lang = mac_langid_table[name->language_id];
         break;
     case TT_PLATFORM_APPLE_UNICODE:
+        res += 2;  /* prefer Unicode encodings */
         switch (name->encoding_id)
         {
         case TT_APPLE_ID_DEFAULT:
@@ -1341,10 +1344,10 @@ static int match_name_table_language( const FT_SfntName *name, LANGID lang )
     default:
         return 0;
     }
-    if (name_lang == lang) return 3;
-    if (PRIMARYLANGID( name_lang ) == PRIMARYLANGID( lang )) return 2;
-    if (name_lang == MAKELANGID( LANG_ENGLISH, SUBLANG_DEFAULT )) return 1;
-    return 0;
+    if (name_lang == lang) res += 30;
+    else if (PRIMARYLANGID( name_lang ) == PRIMARYLANGID( lang )) res += 20;
+    else if (name_lang == MAKELANGID( LANG_ENGLISH, SUBLANG_DEFAULT )) res += 10;
+    return res;
 }
 
 static WCHAR *copy_name_table_string( const FT_SfntName *name )




More information about the wine-cvs mailing list