[PATCH v2 2/2] gdi32: Handle 0 count in GetCharacterPlacementW.
Sven Baars
sbaars at codeweavers.com
Mon Feb 17 03:01:05 CST 2020
Signed-off-by: Sven Baars <sbaars at codeweavers.com>
---
v2: Now with some tests.
dlls/gdi32/font.c | 3 +++
dlls/gdi32/tests/font.c | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index d451f30c3e..8788426a2c 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -3313,6 +3313,9 @@ GetCharacterPlacementW(
TRACE("%s, %d, %d, 0x%08x\n",
debugstr_wn(lpString, uCount), uCount, nMaxExtent, dwFlags);
+ if (!uCount)
+ return 0;
+
if (!lpResults)
return GetTextExtentPoint32W(hdc, lpString, uCount, &size) ? MAKELONG(size.cx, size.cy) : 0;
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index 48f0710bf6..93b6ef8c08 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -4951,9 +4951,9 @@ static void test_GetCharacterPlacement(void)
result.nGlyphs = 20;
size2 = GetCharacterPlacementA(hdc, "Wine Test", 0, 0, &result, 0);
ok(!size2, "Expected GetCharacterPlacementA to fail\n");
- todo_wine ok(result.nGlyphs == 20, "Unexpected number of glyphs %u\n", result.nGlyphs);
+ ok(result.nGlyphs == 20, "Unexpected number of glyphs %u\n", result.nGlyphs);
ok(glyphs[0] == '!', "Unexpected first glyph %s\n", wine_dbgstr_wn(glyphs, 1));
- todo_wine ok(pos[0] == -1, "Unexpected caret position %d\n", pos[0]);
+ ok(pos[0] == -1, "Unexpected caret position %d\n", pos[0]);
pos[0] = -1;
glyphs[0] = '!';
--
2.24.0
More information about the wine-devel
mailing list