From 9210defdf77e6db5830fdb1206fb077df60ce00f Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Thu, 6 Sep 2007 15:42:49 -0700 Subject: [PATCH] riched20: Do not pass NULL lParam to ME_ToUnicode for EM_REPLACESEL. --- dlls/riched20/editor.c | 4 ++-- dlls/riched20/tests/editor.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index f46c4b20377..3e1cdf2385d 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -1822,8 +1822,8 @@ static LRESULT RichEditWndProc_common(HWND hWnd, UINT msg, WPARAM wParam, { int from, to; ME_Style *style; - LPWSTR wszText = ME_ToUnicode(unicode, (void *)lParam); - size_t len = lstrlenW(wszText); + LPWSTR wszText = lParam ? ME_ToUnicode(unicode, (void *)lParam) : NULL; + size_t len = wszText ? lstrlenW(wszText) : 0; TRACE("EM_REPLACESEL - %s\n", debugstr_w(wszText)); ME_GetSelection(editor, &from, &to); diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c index 1f1e8091926..a1407b7e6ec 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -1456,6 +1456,27 @@ static void test_EM_EXSETSEL(void) DestroyWindow(hwndRichEdit); } +static void test_EM_REPLACESEL(void) +{ + HWND hwndRichEdit = new_richedit(NULL); + char buffer[1024] = {0}; + int r; + + /* sending some text to the window */ + SendMessage(hwndRichEdit, WM_SETTEXT, 0, (LPARAM) "testing selection"); + /* 01234567890123456*/ + /* 10 */ + + /* FIXME add more tests */ + SendMessage(hwndRichEdit, EM_SETSEL, 7, 17); + SendMessage(hwndRichEdit, EM_REPLACESEL, 0, (LPARAM) NULL); + SendMessage(hwndRichEdit, WM_GETTEXT, 1024, (LPARAM) buffer); + r = strcmp(buffer, "testing"); + ok(0 == r, "expected %d, got %d\n", 0, r); + + DestroyWindow(hwndRichEdit); +} + static void test_WM_PASTE(void) { int result; @@ -1922,6 +1943,7 @@ START_TEST( editor ) test_EM_FORMATRANGE(); test_unicode_conversions(); test_EM_GETTEXTLENGTHEX(); + test_EM_REPLACESEL(); /* Set the environment variable WINETEST_RICHED20 to keep windows * responsive and open for 30 seconds. This is useful for debugging. -- 2.11.4.GIT