Alex Villacís Lasso : riched20: EM_SETCHARFORMAT must fail and return 0 with TM_PLAINTEXT and SF_SELECTION .

Alexandre Julliard julliard at winehq.org
Thu Sep 27 09:27:30 CDT 2007


Module: wine
Branch: master
Commit: 03f3a40a03dedb9f2162cf64fe96f3464fcace34
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=03f3a40a03dedb9f2162cf64fe96f3464fcace34

Author: Alex Villacís Lasso <a_villacis at palosanto.com>
Date:   Wed Sep 26 15:50:45 2007 -0500

riched20: EM_SETCHARFORMAT must fail and return 0 with  TM_PLAINTEXT and SF_SELECTION.

---

 dlls/riched20/editor.c       |   16 +++++++++++-----
 dlls/riched20/tests/editor.c |   10 +++++++---
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 4efaa90..fcfe03a 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -1733,13 +1733,19 @@ static LRESULT RichEditWndProc_common(HWND hWnd, UINT msg, WPARAM wParam,
     BOOL bRepaint = TRUE;
     p = ME_ToCF2W(&buf, (CHARFORMAT2W *)lParam);
     if (p == NULL) return 0;
-    if (!wParam || (editor->mode & TM_PLAINTEXT))
+    if (!wParam)
       ME_SetDefaultCharFormat(editor, p);
-    else if (wParam == (SCF_WORD | SCF_SELECTION))
+    else if (wParam == (SCF_WORD | SCF_SELECTION)) {
       FIXME("EM_SETCHARFORMAT: word selection not supported\n");
-    else if (wParam == SCF_ALL)
-      ME_SetCharFormat(editor, 0, ME_GetTextLength(editor), p);
-    else {
+      return 0;
+    } else if (wParam == SCF_ALL) {
+      if (editor->mode & TM_PLAINTEXT)
+        ME_SetDefaultCharFormat(editor, p);
+      else
+        ME_SetCharFormat(editor, 0, ME_GetTextLength(editor), p);
+    } else if (editor->mode & TM_PLAINTEXT) {
+      return 0;
+    } else {
       int from, to;
       ME_GetSelection(editor, &from, &to);
       bRepaint = (from != to);
diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c
index 416c803..0ec7da4 100644
--- a/dlls/riched20/tests/editor.c
+++ b/dlls/riched20/tests/editor.c
@@ -572,9 +572,13 @@ static void test_TM_PLAINTEXT(void)
   cf2.dwEffects = CFE_BOLD ^ cf2.dwEffects;
 
   rc = SendMessage(hwndRichEdit, EM_SETCHARFORMAT, (WPARAM) SCF_SELECTION, (LPARAM) &cf2);
-  todo_wine {
-    ok(rc == 0, "EM_SETCHARFORMAT returned %d instead of 0\n", rc);
-  }
+  ok(rc == 0, "EM_SETCHARFORMAT returned %d instead of 0\n", rc);
+
+  rc = SendMessage(hwndRichEdit, EM_SETCHARFORMAT, (WPARAM) SCF_WORD | SCF_SELECTION, (LPARAM) &cf2);
+  ok(rc == 0, "EM_SETCHARFORMAT returned %d instead of 0\n", rc);
+
+  rc = SendMessage(hwndRichEdit, EM_SETCHARFORMAT, (WPARAM) SCF_ALL, (LPARAM)&cf2);
+  ok(rc == 1, "EM_SETCHARFORMAT returned %d instead of 1\n", rc);
 
   /*Get the formatting of those characters*/
 




More information about the wine-cvs mailing list