[PATCH 2/2] riched20: Substitute object runs with U+FFFC if GT_RAWTEXT is given.

Jinoh Kang jinoh.kang.kr at gmail.com
Sun Mar 27 10:41:12 CDT 2022


Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
---
 dlls/riched20/editor.c        | 6 ++++++
 dlls/riched20/tests/richole.c | 4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 3d2d49af047..454a8bf5fc8 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -4271,6 +4271,12 @@ int ME_GetTextW(ME_TextEditor *editor, WCHAR *buffer, int buflen,
       nLen = 2;
       str = L"\r\n";
     }
+    else if (flags & GT_RAWTEXT && run->nFlags & MERF_GRAPHICS)
+    {
+      srcChars -= min(nLen, srcChars);
+      nLen = 1;
+      str = L"\xfffc";
+    }
     else
     {
       nLen = min(nLen, srcChars);
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index 24284a24484..dc0d7c4e1f1 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -3404,7 +3404,7 @@ static void test_InsertObject(void)
   memset(buffer, 0, sizeof(buffer));
   result = SendMessageW(hwnd, EM_GETTEXTEX, (WPARAM)&gettextex, (LPARAM)buffer);
   ok(result == lstrlenW(expected_string), "Got wrong length: %ld.\n", result);
-  todo_wine ok(!lstrcmpW(buffer, expected_string), "Got wrong content: %s.\n", debugstr_w(buffer));
+  ok(!lstrcmpW(buffer, expected_string), "Got wrong content: %s.\n", debugstr_w(buffer));
 
   gettextex.flags = GT_NOHIDDENTEXT;
   memset(buffer, 0, sizeof(buffer));
@@ -3507,7 +3507,7 @@ static void test_InsertObject(void)
   memset(buffer, 0, sizeof(buffer));
   result = SendMessageW(hwnd, EM_GETTEXTEX, (WPARAM)&gettextex, (LPARAM)buffer);
   ok(result == lstrlenW(expected_string), "Got wrong length: %ld.\n", result);
-  todo_wine ok(!lstrcmpW(buffer, expected_string), "Got wrong content: %s.\n", debugstr_w(buffer));
+  ok(!lstrcmpW(buffer, expected_string), "Got wrong content: %s.\n", debugstr_w(buffer));
 
   expected_stringA = "abc d efg";
   memset(bufferA, 0, sizeof(bufferA));
-- 
2.34.1




More information about the wine-devel mailing list