From 3dbd46716299883761be9c4c4173a5f0402b2f7c Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 18 Apr 2016 15:14:39 +0200 Subject: [PATCH] riched20: Don't allow negative margins in ME_WrapTextParagraph. Signed-off-by: Piotr Caban Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- dlls/riched20/tests/editor.c | 2 +- dlls/riched20/wrap.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c index 5f4cc056696..ae9c0a5dc3c 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -732,7 +732,7 @@ static void test_EM_POSFROMCHAR(void) SendMessageA(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)"{\\rtf1\\pard\\fi-200\\li-200\\f1 TestSomeText\\par}"); SendMessageA(hwndRichEdit, EM_POSFROMCHAR, (WPARAM)&pt, 0); - todo_wine ok(pt.x == 1, "pt.x = %d\n", pt.x); + ok(pt.x == 1, "pt.x = %d\n", pt.x); fmt.cbSize = sizeof(fmt); SendMessageA(hwndRichEdit, EM_GETPARAFORMAT, 0, (LPARAM)&fmt); diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c index 49a62cef448..b488bf17f87 100644 --- a/dlls/riched20/wrap.c +++ b/dlls/riched20/wrap.c @@ -879,6 +879,11 @@ static void ME_WrapTextParagraph(ME_Context *c, ME_DisplayItem *tp) { wc.nFirstMargin = ME_twips2pointsX(c, dxStartIndent); wc.nLeftMargin = wc.nFirstMargin + ME_twips2pointsX(c, pFmt->dxOffset); wc.nRightMargin = ME_twips2pointsX(c, pFmt->dxRightIndent); + + if (wc.nFirstMargin < 0) + wc.nFirstMargin = 0; + if (wc.nLeftMargin < 0) + wc.nLeftMargin = 0; } if (c->editor->bEmulateVersion10 && /* v1.0 - 3.0 */ pFmt->dwMask & PFM_TABLE && pFmt->wEffects & PFE_TABLE)