[PATCH 5/5] user32: Ensure at least one character is used in TEXT_WordBreak().
Henri Verbeet
hverbeet at codeweavers.com
Fri Jun 13 03:01:22 CDT 2014
---
dlls/user32/tests/text.c | 8 ++++++++
dlls/user32/text.c | 5 +++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/tests/text.c b/dlls/user32/tests/text.c
index 19bcd72..06705a7 100644
--- a/dlls/user32/tests/text.c
+++ b/dlls/user32/tests/text.c
@@ -564,6 +564,10 @@ static void test_DrawTextCalcRect(void)
textheight = DrawTextA(hdc, wordbreak_text, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
ok(textheight == heightcheck * 2, "Got unexpected textheight %d, expected %d.\n",
textheight, heightcheck * 2);
+ SetRect(&rect, 0, 0, 1, 1);
+ textheight = DrawTextA(hdc, wordbreak_text, -1, &rect, DT_CALCRECT | DT_WORDBREAK | DT_EDITCONTROL);
+ ok(textheight >= heightcheck * 6, "Got unexpected textheight %d, expected at least %d.\n",
+ textheight, heightcheck * 6);
SetRect(&rect, 0, 0, 1, 1);
heightcheck = DrawTextW(hdc, wordbreak_textW, -1, &rect, DT_CALCRECT);
@@ -571,6 +575,10 @@ static void test_DrawTextCalcRect(void)
textheight = DrawTextW(hdc, wordbreak_textW, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
ok(textheight == heightcheck * 2, "Got unexpected textheight %d, expected %d.\n",
textheight, heightcheck * 2);
+ SetRect(&rect, 0, 0, 1, 1);
+ textheight = DrawTextW(hdc, wordbreak_textW, -1, &rect, DT_CALCRECT | DT_WORDBREAK | DT_EDITCONTROL);
+ ok(textheight >= heightcheck * 6, "Got unexpected textheight %d, expected at least %d.\n",
+ textheight, heightcheck * 6);
SelectObject(hdc, hOldFont);
ret = DeleteObject(hFont);
diff --git a/dlls/user32/text.c b/dlls/user32/text.c
index fdc3554..66a35d2 100644
--- a/dlls/user32/text.c
+++ b/dlls/user32/text.c
@@ -413,8 +413,9 @@ static void TEXT_WordBreak (HDC hdc, WCHAR *str, unsigned int max_str,
DT_EDITCONTROL)
{
/* break the word after the last character that fits (there must be
- * at least one; none is caught earlier).
- */
+ * at least one). */
+ if (!chars_fit)
+ ++chars_fit;
*len_str = chars_fit;
*chars_used = chars_fit;
--
1.7.10.4
More information about the wine-patches
mailing list