From: Fabian Maurer Subject: [PATCH] riched32: On VK_RETURN don't add newline into text Message-Id: <20181209210046.31238-1-dark.shadow4@web.de> Date: Sun, 9 Dec 2018 22:00:46 +0100 This fixes an old regression when VK_RETURN handling was implemented Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=23282 Signed-off-by: Fabian Maurer --- dlls/riched20/editor.c | 2 -- dlls/riched20/tests/editor.c | 19 +++++++++++++++++++ dlls/riched32/tests/editor.c | 19 +++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 99c87bf61d..a9956d5d2f 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2637,8 +2637,6 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey) else if (!editor->bEmulateVersion10) ME_InsertTextFromCursor(editor, 0, &endl, 1, eop_style); - else - ME_InsertTextFromCursor(editor, 0, endlv10, 2, eop_style); ME_CommitCoalescingUndo(editor); SetCursor(NULL); diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c index 035869e134..b3e8c75fa4 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -8920,6 +8920,24 @@ static void test_EM_SELECTIONTYPE(void) DestroyWindow(hwnd); } +static void test_VK_RETURN(void) +{ + HWND hwnd_richedit = new_richedit(NULL); + char buffer[100]; + GETTEXTEX gettex = {sizeof(buffer)}; + int len; + + SendMessageW(hwnd_richedit, WM_CHAR, 'T', 0); + SendMessageW(hwnd_richedit, WM_KEYDOWN, VK_RETURN, 0); + SendMessageW(hwnd_richedit, WM_CHAR, 'S', 0); + SendMessageW(hwnd_richedit, WM_KEYDOWN, VK_RETURN, 0); + + len = SendMessageA(hwnd_richedit, EM_GETTEXTEX, &gettex, buffer); + + ok(len == 4, "Got %d\n", len); + ok(strcmp(buffer, "T\rS\r") == 0, "Got %s\n", buffer); +} + START_TEST( editor ) { BOOL ret; @@ -8995,6 +9013,7 @@ START_TEST( editor ) test_eop_char_fmt(); test_para_numbering(); test_EM_SELECTIONTYPE(); + test_VK_RETURN(); /* Set the environment variable WINETEST_RICHED20 to keep windows * responsive and open for 30 seconds. This is useful for debugging. diff --git a/dlls/riched32/tests/editor.c b/dlls/riched32/tests/editor.c index 7751d2b402..8cb28fa773 100644 --- a/dlls/riched32/tests/editor.c +++ b/dlls/riched32/tests/editor.c @@ -1412,6 +1412,24 @@ static void test_EM_SETSEL(void) DestroyWindow(hwndRichEdit); } +static void test_VK_RETURN(void) +{ + HWND hwnd_richedit = new_richedit(NULL); + char buffer[100]; + GETTEXTEX gettex = {sizeof(buffer)}; + int len; + + SendMessageW(hwnd_richedit, WM_CHAR, 'T', 0); + SendMessageW(hwnd_richedit, WM_KEYDOWN, VK_RETURN, 0); + SendMessageW(hwnd_richedit, WM_CHAR, 'S', 0); + SendMessageW(hwnd_richedit, WM_KEYDOWN, VK_RETURN, 0); + + len = SendMessageA(hwnd_richedit, EM_GETTEXTEX, &gettex, buffer); + + ok(len == 2, "Got %d\n", len); + ok(strcmp(buffer, "TS") == 0, "Got %s\n", buffer); +} + START_TEST( editor ) { MSG msg; @@ -1440,6 +1458,7 @@ START_TEST( editor ) test_enter(); test_EM_EXSETSEL(); test_EM_SETSEL(); + test_VK_RETURN(); /* Set the environment variable WINETEST_RICHED32 to keep windows * responsive and open for 30 seconds. This is useful for debugging. -- 2.19.2