On Mon, Nov 13, 2017 at 12:23:17AM +0100, Rafał Harabień wrote:
Signed-off-by: Rafał Harabień rafalh1992@o2.pl
dlls/riched20/caret.c | 4 ++++ dlls/riched20/tests/editor.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+)
diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c index 26af743..8a99394 100644 --- a/dlls/riched20/caret.c +++ b/dlls/riched20/caret.c @@ -551,6 +551,10 @@ void ME_InsertTextFromCursor(ME_TextEditor *editor, int nCursor, ME_DisplayItem *tp, *end_run, *run, *prev; int eol_len = 0;
/* Check if new line is allowed for this control */
if (!(editor->styleFlags & ES_MULTILINE))
break;
/* Find number of CR and LF in end of paragraph run */ if (*pos =='\r') {
We have a check for ES_MULTILINE in the WM_SETTEXT handler. While here seems like a better place to add it, we'd need to test things like EM_SETTEXTEX, EM_REPLACESEL and EM_STREAMIN to show that they all exhibit this behaviour. If they do then this is good and we can remove the chehck in WM_SETTEXT.
diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c index a19ec85..d5fd8c0 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -5509,10 +5513,20 @@ static void test_WM_PASTE(void) /* Cut from read-only control */ SendMessageA(hwndRichEdit, EM_SETSEL, 0, -1); SendMessageA(hwndRichEdit, WM_CUT, 0, 0);
- SendMessageA(hwndRichEdit, WM_GETTEXT, 1024, (LPARAM)buffer); result = strcmp(buffer,"cut\r\n"); ok(result == 0, "test paste: strcmp = %i, actual = '%s'\n", result, buffer);
- OleFlushClipboard(); /* flush is needed because of broken OleClipboard implementation */
What is the issue with the ole clipboard?
- DestroyWindow(hwndRichEdit);
- /* Paste multi-line text into single-line control */
It would be better to paste in something that contained a 2nd line to show that the 2nd line is dropped.
- hwndRichEdit = new_richedit_with_style(NULL, 0);
- SendMessageA(hwndRichEdit, WM_PASTE, 0, 0);
- SendMessageA(hwndRichEdit, WM_GETTEXT, 1024, (LPARAM)buffer);
- result = strcmp(buffer,"cut");
- ok(result == 0,
DestroyWindow(hwndRichEdit);"test paste: strcmp = %i, actual = '%s'\n", result, buffer);
}