From: Jactry Zeng Subject: [PATCH v3 5/6] riched20: Return text without OLE object mark from WM_GETTEXT. Message-Id: <20210529140142.29834-5-jzeng@codeweavers.com> Date: Sat, 29 May 2021 22:01:41 +0800 In-Reply-To: <20210529140142.29834-1-jzeng@codeweavers.com> References: <20210529140142.29834-1-jzeng@codeweavers.com> Signed-off-by: Jactry Zeng --- dlls/riched20/editor.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 960d1401082..9d24d97d820 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2076,10 +2076,11 @@ ME_FindText(ME_TextEditor *editor, DWORD flags, const CHARRANGE *chrg, const WCH return -1; } -static int ME_GetTextEx(ME_TextEditor *editor, GETTEXTEX *ex, LPARAM pText) +static int ME_GetTextEx(ME_TextEditor *editor, GETTEXTEX *ex, LPARAM pText, BOOL oleobj) { int nChars; ME_Cursor start; + DWORD flags; if (!ex->cb || !pText) return 0; @@ -2098,10 +2099,14 @@ static int ME_GetTextEx(ME_TextEditor *editor, GETTEXTEX *ex, LPARAM pText) ME_SetCursorToStart(editor, &start); nChars = INT_MAX; } + + flags = (ex->flags & GT_USECRLF) ? MEGT_USECRLF : MEGT_DEFAULT; + if (!oleobj) flags |= MEGT_NOOLEOBJ; + if (ex->codepage == CP_UNICODE) { return ME_GetTextW(editor, (LPWSTR)pText, ex->cb / sizeof(WCHAR) - 1, - &start, nChars, (ex->flags & GT_USECRLF) ? MEGT_USECRLF : MEGT_DEFAULT); + &start, nChars, flags); } else { @@ -2118,7 +2123,7 @@ static int ME_GetTextEx(ME_TextEditor *editor, GETTEXTEX *ex, LPARAM pText) buflen = min(crlfmul * nChars, ex->cb - 1); buffer = heap_alloc((buflen + 1) * sizeof(WCHAR)); - nChars = ME_GetTextW(editor, buffer, buflen, &start, nChars, (ex->flags & GT_USECRLF) ? MEGT_USECRLF : MEGT_DEFAULT); + nChars = ME_GetTextW(editor, buffer, buflen, &start, nChars, flags); rc = WideCharToMultiByte(ex->codepage, 0, buffer, nChars + 1, (LPSTR)pText, ex->cb, ex->lpDefaultChar, ex->lpUsedDefChar); if (rc) rc--; /* do not count 0 terminator */ @@ -3662,10 +3667,10 @@ LRESULT editor_handle_message( ME_TextEditor *editor, UINT msg, WPARAM wParam, ex.codepage = CP_UNICODE; ex.lpDefaultChar = NULL; ex.lpUsedDefChar = NULL; - return ME_GetTextEx(editor, &ex, lParam); + return ME_GetTextEx(editor, &ex, lParam, FALSE); } case EM_GETTEXTEX: - return ME_GetTextEx(editor, (GETTEXTEX*)wParam, lParam); + return ME_GetTextEx(editor, (GETTEXTEX*)wParam, lParam, TRUE); case EM_GETSELTEXT: { int nFrom, nTo, nStartCur = ME_GetSelectionOfs(editor, &nFrom, &nTo); -- 2.30.2