Module: wine Branch: master Commit: cae71ef219420b0e6d3340593e88511cb3d61295 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cae71ef219420b0e6d3340593e...
Author: Aric Stewart aric@codeweavers.com Date: Thu Sep 26 13:47:32 2013 -0500
imm32: ImmGetDescriptionA return does not include NULL byte.
---
dlls/imm32/imm.c | 5 ++++- dlls/imm32/tests/imm32.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c index 29bf4af..93e71af 100644 --- a/dlls/imm32/imm.c +++ b/dlls/imm32/imm.c @@ -1540,7 +1540,10 @@ UINT WINAPI ImmGetDescriptionA(
HeapFree( GetProcessHeap(), 0, buf );
- return len; + if (len == 0) + return 0; + + return len - 1; }
/*********************************************************************** diff --git a/dlls/imm32/tests/imm32.c b/dlls/imm32/tests/imm32.c index 7162f82..f92b2c1 100644 --- a/dlls/imm32/tests/imm32.c +++ b/dlls/imm32/tests/imm32.c @@ -665,13 +665,16 @@ static void test_ImmGetDescription(void)
lret = ImmGetDescriptionA(hkl, descA, ret + 1); ok(lret, "ImmGetDescriptionA failed, expected != 0 received 0.\n"); - todo_wine ok(lret == ret, "ImmGetDescriptionA failed to return the correct amount of data. Expected %d, got %d.\n", ret, lret); + ok(lret == ret, "ImmGetDescriptionA failed to return the correct amount of data. Expected %d, got %d.\n", ret, lret);
ret /= 2; /* try to copy partially */ lret = ImmGetDescriptionW(hkl, descW, ret + 1); ok(lret, "ImmGetDescriptionW failed, expected != 0 received 0.\n"); ok(lret == ret, "ImmGetDescriptionW failed to return the correct amount of data. Expected %d, got %d.\n", ret, lret);
+ lret = ImmGetDescriptionA(hkl, descA, ret + 1); + ok(!lret, "ImmGetDescriptionA should fail\n"); + ret = ImmGetDescriptionW(hkl, descW, 1); ok(!ret, "ImmGetDescriptionW failed, expected 0 received %d.\n", ret);