Alex Villacís Lasso : riched20: WM_GETTEXTLENGTH should include CRLF conversions in returned count.

Alexandre Julliard julliard at winehq.org
Fri Dec 7 11:02:20 CST 2007


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

Author: Alex Villacís Lasso <a_villacis at palosanto.com>
Date:   Thu Dec  6 13:50:22 2007 -0500

riched20: WM_GETTEXTLENGTH should include CRLF conversions in returned count.

---

 dlls/riched20/editor.c       |    8 +++++++-
 dlls/riched20/tests/editor.c |   12 ++++++++++++
 2 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 1ffb1ea..d30ba9d 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -1996,7 +1996,13 @@ static LRESULT RichEditWndProc_common(HWND hWnd, UINT msg, WPARAM wParam,
     return 0;
   }
   case WM_GETTEXTLENGTH:
-    return ME_GetTextLength(editor);
+  {
+    GETTEXTLENGTHEX how;
+
+    how.flags = GTL_CLOSE | GTL_USECRLF | GTL_NUMCHARS;
+    how.codepage = unicode ? 1200 : CP_ACP;
+    return ME_GetTextLengthEx(editor, &how);
+  }
   case EM_GETTEXTLENGTHEX:
     return ME_GetTextLengthEx(editor, (GETTEXTLENGTHEX *)wParam);
   case WM_GETTEXT:
diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c
index 5512017..c3d09bf 100644
--- a/dlls/riched20/tests/editor.c
+++ b/dlls/riched20/tests/editor.c
@@ -671,6 +671,12 @@ static void test_WM_GETTEXT(void)
     ok(result == 0, 
         "WM_GETTEXT: settext and gettext differ. strcmp: %d\n", result);
 
+    /* Test for returned value of WM_GETTEXTLENGTH */
+    result = SendMessage(hwndRichEdit, WM_GETTEXTLENGTH, 0, 0);
+    ok(result == strlen(text),
+        "WM_GETTEXTLENGTH reports incorrect length %d, expected %d\n",
+        result, strlen(text));
+
     /* Test for behavior in overflow case */
     memset(buffer, 0, 1024);
     result = SendMessage(hwndRichEdit, WM_GETTEXT, strlen(text), (LPARAM)buffer);
@@ -689,6 +695,12 @@ static void test_WM_GETTEXT(void)
     ok(result == 0,
         "WM_GETTEXT: settext and gettext differ. strcmp: %d\n", result);
 
+    /* Test for returned value of WM_GETTEXTLENGTH */
+    result = SendMessage(hwndRichEdit, WM_GETTEXTLENGTH, 0, 0);
+    ok(result == strlen(text2_after),
+        "WM_GETTEXTLENGTH reports incorrect length %d, expected %d\n",
+        result, strlen(text2_after));
+
     /* Test for behavior of CRLF conversion in case of overflow */
     memset(buffer, 0, 1024);
     result = SendMessage(hwndRichEdit, WM_GETTEXT, strlen(text2), (LPARAM)buffer);




More information about the wine-cvs mailing list