Module: wine Branch: master Commit: 87c2581c54fe8b28586b1958942dc5832155e126 URL: http://source.winehq.org/git/wine.git/?a=commit;h=87c2581c54fe8b28586b195894...
Author: Alexandre Julliard julliard@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 )