Qian Hong : gdi32: Fixed localized font full name (UNIQUE ID).

Alexandre Julliard julliard at winehq.org
Wed Sep 12 13:39:17 CDT 2012


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

Author: Qian Hong <fracting at gmail.com>
Date:   Wed Sep 12 21:42:04 2012 +0800

gdi32: Fixed localized font full name (UNIQUE ID).

---

 dlls/gdi32/freetype.c   |    4 +++-
 dlls/gdi32/tests/font.c |    7 ++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 9412df2..2587d99 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -6578,7 +6578,9 @@ static BOOL get_outline_text_metrics(GdiFont *font)
     }
     lenface = (strlenW(face_nameW) + 1) * sizeof(WCHAR);
 
-    full_nameW = get_face_name( ft_face, TT_NAME_ID_UNIQUE_ID, TT_MS_LANGID_ENGLISH_UNITED_STATES );
+    full_nameW = get_face_name( ft_face, TT_NAME_ID_UNIQUE_ID, GetSystemDefaultLangID() );
+    if (!full_nameW)
+        full_nameW = get_face_name( ft_face, TT_NAME_ID_UNIQUE_ID, TT_MS_LANGID_ENGLISH_UNITED_STATES );
     if (!full_nameW)
     {
         WCHAR fake_nameW[] = {'f','a','k','e',' ','n','a','m','e', 0};
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index 0c67fe7..3b79bd0 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -4147,7 +4147,12 @@ static void test_fullname2_helper(const char *Family)
 
         bufW[0] = 0;
         bufA[0] = 0;
-        ret = get_ttf_nametable_entry(hdc, TT_NAME_ID_UNIQUE_ID, bufW, buf_size, TT_MS_LANGID_ENGLISH_UNITED_STATES);
+        ret = get_ttf_nametable_entry(hdc, TT_NAME_ID_UNIQUE_ID, bufW, buf_size, GetSystemDefaultLangID());
+        if (!ret)
+        {
+            trace("no localized UNIQUE_ID found.\n");
+            ret = get_ttf_nametable_entry(hdc, TT_NAME_ID_UNIQUE_ID, bufW, buf_size, TT_MS_LANGID_ENGLISH_UNITED_STATES);
+        }
         ok(ret, "UNIQUE_ID (full name) could not be read\n");
         WideCharToMultiByte(CP_ACP, 0, bufW, -1, bufA, buf_size, NULL, FALSE);
         otmStr = (LPSTR)otm + (UINT_PTR)otm->otmpFullName;




More information about the wine-cvs mailing list