Module: wine Branch: master Commit: 9f37f6afb4d9bd5019ef4c07a93f163551c1057e URL: http://source.winehq.org/git/wine.git/?a=commit;h=9f37f6afb4d9bd5019ef4c07a9...
Author: Fabian Maurer dark.shadow4@web.de Date: Mon Jan 9 18:08:11 2017 +0100
riched20: Check for NULL in fnTextSrv_TxSetText and add test.
Signed-off-by: Fabian Maurer dark.shadow4@web.de Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/riched20/tests/txtsrv.c | 10 ++++++++++ dlls/riched20/txtsrv.c | 7 +++---- 2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/dlls/riched20/tests/txtsrv.c b/dlls/riched20/tests/txtsrv.c index 1a6ca61..4be3106 100644 --- a/dlls/riched20/tests/txtsrv.c +++ b/dlls/riched20/tests/txtsrv.c @@ -681,6 +681,16 @@ static void test_TxSetText(void) ok(memcmp(rettext,settext,SysStringByteLen(rettext)) == 0, "String returned differs\n");
+ /* Null-pointer should behave the same as empty-string */ + + hres = ITextServices_TxSetText(txtserv, 0); + ok(hres == S_OK, "ITextServices_TxSetText failed (result = %x)\n", hres); + + hres = ITextServices_TxGetText(txtserv, &rettext); + ok(hres == S_OK, "ITextServices_TxGetText failed (result = %x)\n", hres); + ok(SysStringLen(rettext) == 0, + "String returned of wrong length (expected 0, got %d)\n", SysStringLen(rettext)); + SysFreeString(rettext); ITextServices_Release(txtserv); ITextHost_Release(host); diff --git a/dlls/riched20/txtsrv.c b/dlls/riched20/txtsrv.c index 3df7798..307b484 100644 --- a/dlls/riched20/txtsrv.c +++ b/dlls/riched20/txtsrv.c @@ -286,10 +286,9 @@ DECLSPEC_HIDDEN HRESULT WINAPI fnTextSrv_TxSetText(ITextServices *iface, LPCWSTR ME_Cursor cursor;
ME_SetCursorToStart(This->editor, &cursor); - ME_InternalDeleteText(This->editor, &cursor, - ME_GetTextLength(This->editor), FALSE); - ME_InsertTextFromCursor(This->editor, 0, pszText, -1, - This->editor->pBuffer->pDefaultStyle); + ME_InternalDeleteText(This->editor, &cursor, ME_GetTextLength(This->editor), FALSE); + if(pszText) + ME_InsertTextFromCursor(This->editor, 0, pszText, -1, This->editor->pBuffer->pDefaultStyle); ME_SetSelection(This->editor, 0, 0); This->editor->nModifyStep = 0; OleFlushClipboard();