Dmitry Timoshkov : gdi32: ExtTextOut on a path with bitmap font selected shouldn't fail.

Alexandre Julliard julliard at winehq.org
Thu Nov 29 15:33:00 CST 2018


Module: wine
Branch: master
Commit: 3e9da621a249b32e5db86c42bda38c9f72d77e05
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=3e9da621a249b32e5db86c42bda38c9f72d77e05

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Thu Nov 29 12:28:24 2018 +0300

gdi32: ExtTextOut on a path with bitmap font selected shouldn't fail.

This just leads to empty path generated.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/path.c           | 2 +-
 dlls/gdi32/tests/metafile.c | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/dlls/gdi32/path.c b/dlls/gdi32/path.c
index 49e270c..402b082 100644
--- a/dlls/gdi32/path.c
+++ b/dlls/gdi32/path.c
@@ -1594,7 +1594,7 @@ static BOOL pathdrv_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, const REC
         void *outline;
 
         dwSize = GetGlyphOutlineW(dev->hdc, str[idx], ggo_flags, &gm, 0, NULL, &identity);
-        if (dwSize == GDI_ERROR) return FALSE;
+        if (dwSize == GDI_ERROR) continue;
 
         /* add outline only if char is printable */
         if(dwSize)
diff --git a/dlls/gdi32/tests/metafile.c b/dlls/gdi32/tests/metafile.c
index c683f58..b33437a 100644
--- a/dlls/gdi32/tests/metafile.c
+++ b/dlls/gdi32/tests/metafile.c
@@ -2439,7 +2439,6 @@ static void test_emf_ExtTextOut_on_path(void)
     ok(ret, "BeginPath error %d\n", GetLastError());
 
     ret = ExtTextOutA(hdcDisplay, 11, 22, 0, NULL, "Test", 4, dx);
-todo_wine
     ok(ret, "ExtTextOut error %d\n", GetLastError());
 
     ret = EndPath(hdcDisplay);
@@ -2455,7 +2454,7 @@ todo_wine
     ok(ret, "BeginPath error %d\n", GetLastError());
 
     ret = ExtTextOutA(hdcMetafile, 11, 22, 0, NULL, "Test", 4, dx);
-    todo_wine ok(ret, "ExtTextOut error %d\n", GetLastError());
+    ok(ret, "ExtTextOut error %d\n", GetLastError());
 
     ret = EndPath(hdcMetafile);
     ok(ret, "EndPath error %d\n", GetLastError());
@@ -2514,7 +2513,6 @@ todo_wine
     ok(ret, "BeginPath error %d\n", GetLastError());
 
     ret = ExtTextOutA(hdcMetafile, 11, 22, 0, NULL, "Test", 4, dx);
-todo_wine
     ok(ret, "ExtTextOut error %d\n", GetLastError());
 
     ret = EndPath(hdcMetafile);




More information about the wine-cvs mailing list