Lei Zhang : comctl32: Fix TB_GETSTRING return values.

Alexandre Julliard julliard at winehq.org
Wed Mar 12 06:44:23 CDT 2008


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

Author: Lei Zhang <thestig at google.com>
Date:   Tue Mar 11 22:28:37 2008 -0700

comctl32: Fix TB_GETSTRING return values.

---

 dlls/comctl32/tests/toolbar.c |    8 ++++----
 dlls/comctl32/toolbar.c       |    4 +++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c
index 38f14f6..dbe9c58 100644
--- a/dlls/comctl32/tests/toolbar.c
+++ b/dlls/comctl32/tests/toolbar.c
@@ -1109,14 +1109,14 @@ static void test_getstring(void)
     r = SendMessage(hToolbar, TB_ADDSTRING, 0, (LPARAM)answer);
     expect(0, r);
     r = SendMessage(hToolbar, TB_GETSTRING, MAKEWPARAM(0, 0), (LPARAM)NULL);
-    todo_wine expect(strlen(answer), r);
+    expect(strlen(answer), r);
     r = SendMessage(hToolbar, TB_GETSTRINGW, MAKEWPARAM(0, 0), (LPARAM)NULL);
-    todo_wine expect(strlen(answer), r);
+    expect(strlen(answer), r);
     r = SendMessage(hToolbar, TB_GETSTRING, MAKEWPARAM(sizeof(str), 0), (LPARAM)str);
-    todo_wine expect(strlen(answer), r);
+    expect(strlen(answer), r);
     expect(0, lstrcmp(answer, str));
     r = SendMessage(hToolbar, TB_GETSTRINGW, MAKEWPARAM(sizeof(strW), 0), (LPARAM)strW);
-    todo_wine expect(strlen(answer), r);
+    expect(strlen(answer), r);
     expect(0, lstrcmpW(answerW, strW));
 
     DestroyWindow(hToolbar);
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 742e6e7..1bda0cc 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -5186,6 +5186,7 @@ TOOLBAR_GetStringA (HWND hwnd, WPARAM wParam, LPARAM lParam)
     if (iString < infoPtr->nNumStrings)
     {
         ret = WideCharToMultiByte(CP_ACP, 0, infoPtr->strings[iString], -1, str, buffersize, NULL, NULL);
+        ret--;
 
         TRACE("returning %s\n", debugstr_a(str));
     }
@@ -5216,11 +5217,12 @@ TOOLBAR_GetStringW (HWND hwnd, WPARAM wParam, LPARAM lParam)
             memcpy(str, infoPtr->strings[iString], ret);
             str[len] = '\0';
         }
+        ret = len;
 
         TRACE("returning %s\n", debugstr_w(str));
     }
     else
-        ERR("String index %d out of range (largest is %d)\n", iString, infoPtr->nNumStrings - 1);
+        WARN("String index %d out of range (largest is %d)\n", iString, infoPtr->nNumStrings - 1);
 
     return ret;
 }




More information about the wine-cvs mailing list