[PATCH 1/2] comctl32/ipaddress: Fix IPM_CLEARADDRESS return value.
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/comctl32/ipaddress.c | 7 +++--- dlls/comctl32/tests/ipaddress.c | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/dlls/comctl32/ipaddress.c b/dlls/comctl32/ipaddress.c index 32816561e3d..82d47d4e576 100644 --- a/dlls/comctl32/ipaddress.c +++ b/dlls/comctl32/ipaddress.c @@ -354,7 +354,7 @@ static BOOL IPADDRESS_SetRange (IPADDRESS_INFO *infoPtr, int index, WORD range) } -static void IPADDRESS_ClearAddress (const IPADDRESS_INFO *infoPtr) +static LRESULT IPADDRESS_ClearAddress (const IPADDRESS_INFO *infoPtr) { int i; @@ -362,6 +362,8 @@ static void IPADDRESS_ClearAddress (const IPADDRESS_INFO *infoPtr) for (i = 0; i < 4; i++) SetWindowTextW (infoPtr->Part[i].EditHwnd, L""); + + return 1; } @@ -614,8 +616,7 @@ IPADDRESS_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) return 0; case IPM_CLEARADDRESS: - IPADDRESS_ClearAddress (infoPtr); - break; + return IPADDRESS_ClearAddress (infoPtr); case IPM_SETADDRESS: return IPADDRESS_SetAddress (infoPtr, (DWORD)lParam); diff --git a/dlls/comctl32/tests/ipaddress.c b/dlls/comctl32/tests/ipaddress.c index c87d0f56641..9bb9dd63d71 100644 --- a/dlls/comctl32/tests/ipaddress.c +++ b/dlls/comctl32/tests/ipaddress.c @@ -144,6 +144,47 @@ static void test_WM_SETFOCUS(void) DestroyWindow(hwnd); } +static void test_IPM_CLEARADDRESS(void) +{ + struct child_enum child_enum = { 0 }; + char buff[16]; + int i, ret; + HWND hwnd; + + hwnd = create_ipaddress_control(); + ok(!!hwnd, "Failed to create control.\n"); + + ret = SendMessageA(hwnd, IPM_SETADDRESS, 0, MAKEIPADDRESS(0, 1, 2, 3)); + ok(ret == 1, "Unexpected return value %d.\n", ret); + + EnumChildWindows(hwnd, test_child_enum_proc, (LPARAM)&child_enum); + ok(child_enum.count == 4, "Unexpected child count %u.\n", child_enum.count); + + ret = SendMessageA(hwnd, IPM_SETADDRESS, 0, MAKEIPADDRESS(1, 2, 3, 4)); + ok(ret == 1, "Unexpected return value %d.\n", ret); + + ret = GetWindowTextA(hwnd, buff, ARRAY_SIZE(buff)); + ok(ret == 7, "Unexpected return value %d.\n", ret); + ok(!strcmp(buff, "1.2.3.4"), "Unexpected address %s.\n", buff); + + ret = SendMessageA(hwnd, IPM_CLEARADDRESS, 0, 0); + ok(ret, "Unexpected return value %d.\n", ret); + + ret = GetWindowTextA(hwnd, buff, ARRAY_SIZE(buff)); + ok(ret == 7, "Unexpected return value %d.\n", ret); + ok(!strcmp(buff, "0.0.0.0"), "Unexpected address %s.\n", buff); + + for (i = 0; i < 4; ++i) + { + buff[0] = 1; + ret = GetWindowTextA(child_enum.fields[i], buff, ARRAY_SIZE(buff)); + ok(ret == 0, "Unexpected return value %d.\n", ret); + ok(!*buff, "Unexpected field text %s.\n", buff); + } + + DestroyWindow(hwnd); +} + START_TEST(ipaddress) { ULONG_PTR cookie; @@ -152,6 +193,7 @@ START_TEST(ipaddress) test_get_set_text(); test_IPM_SETFOCUS(); test_WM_SETFOCUS(); + test_IPM_CLEARADDRESS(); if (!load_v6_module(&cookie, &ctxt)) return; @@ -159,6 +201,7 @@ START_TEST(ipaddress) test_get_set_text(); test_IPM_SETFOCUS(); test_WM_SETFOCUS(); + test_IPM_CLEARADDRESS(); unload_v6_module(cookie, ctxt); } -- 2.28.0
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/comctl32/tests/ipaddress.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/comctl32/tests/ipaddress.c b/dlls/comctl32/tests/ipaddress.c index 9bb9dd63d71..fe1f95a95e1 100644 --- a/dlls/comctl32/tests/ipaddress.c +++ b/dlls/comctl32/tests/ipaddress.c @@ -98,7 +98,7 @@ static void test_IPM_SETFOCUS(void) EnumChildWindows(hwnd, test_child_enum_proc, (LPARAM)&child_enum); ok(child_enum.count == 4, "Unexpected child count %u.\n", child_enum.count); - for (i = 0; i < 3; ++i) + for (i = 0; i < 4; ++i) SendMessageA(child_enum.fields[i], EM_SETSEL, -1, 0); SendMessageA(child_enum.fields[0], EM_GETSEL, (WPARAM)&from, (LPARAM)&to); @@ -130,7 +130,7 @@ static void test_WM_SETFOCUS(void) SetFocus(child_enum.fields[3]); - for (i = 0; i < 3; ++i) + for (i = 0; i < 4; ++i) SendMessageA(child_enum.fields[i], EM_SETSEL, -1, 0); SendMessageA(child_enum.fields[0], EM_GETSEL, (WPARAM)&from, (LPARAM)&to); -- 2.28.0
participants (1)
-
Nikolay Sivov