Huw Davies : gdi32: Using a bitmap font as the fallback sans serif is a very bad idea.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jul 5 13:31:26 CDT 2007


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Thu Jul  5 15:27:20 2007 +0100

gdi32: Using a bitmap font as the fallback sans serif is a very bad idea.

---

 dlls/gdi32/freetype.c   |    2 +-
 dlls/gdi32/tests/font.c |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 33c9f1d..9db2d3e 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -337,7 +337,7 @@ static struct list font_subst_list = LIST_INIT(font_subst_list);
 static struct list font_list = LIST_INIT(font_list);
 
 static const WCHAR defSerif[] = {'T','i','m','e','s',' ','N','e','w',' ','R','o','m','a','n','\0'};
-static const WCHAR defSans[] = {'M','S',' ','S','a','n','s',' ','S','e','r','i','f','\0'};
+static const WCHAR defSans[] = {'A','r','i','a','l','\0'};
 static const WCHAR defFixed[] = {'C','o','u','r','i','e','r',' ','N','e','w','\0'};
 
 static const WCHAR RegularW[] = {'R','e','g','u','l','a','r','\0'};
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index b51c89b..92aad9e 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -1654,6 +1654,36 @@ static void test_GetTextMetrics(void)
     ReleaseDC(0, hdc);
 }
 
+static void test_non_existent_font(void)
+{
+    LOGFONTA lf;
+    HDC hdc;
+    HFONT hfont;
+    char buf[LF_FACESIZE];
+
+    if (!is_truetype_font_installed("Arial Black"))
+    {
+        skip("Arial not installed\n");
+        return;
+    }
+
+    hdc = GetDC(0);
+
+    memset(&lf, 0, sizeof(lf));
+    lf.lfHeight = 100;
+    lf.lfWeight = FW_REGULAR;
+    lf.lfCharSet = ANSI_CHARSET;
+    lf.lfPitchAndFamily = FF_SWISS;
+    strcpy(lf.lfFaceName, "Non existent font");
+
+    hfont = CreateFontIndirectA(&lf);
+    hfont = SelectObject(hdc, hfont);
+    GetTextFaceA(hdc, sizeof(buf), buf);
+    ok(!lstrcmpiA(buf, "Arial"), "Got %s\n", buf);
+    DeleteObject(SelectObject(hdc, hfont));
+    ReleaseDC(0, hdc);
+}
+
 START_TEST(font)
 {
     init();
@@ -1670,6 +1700,8 @@ START_TEST(font)
     test_SetTextJustification();
     test_font_charset();
     test_GetFontUnicodeRanges();
+    test_non_existent_font();
+
     /* On Windows Arial has a lot of default charset aliases such as Arial Cyr,
      * I'd like to avoid them in this test.
      */




More information about the wine-cvs mailing list