Module: wine Branch: master Commit: 7f5c97693e2301918d16577578c237dd81852a14 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7f5c97693e2301918d16577578...
Author: Lei Zhang thestig@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; }