Only return it from UrlGetPartA().
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/kernelbase/path.c | 3 ++- dlls/shlwapi/tests/url.c | 8 ++------ 2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/dlls/kernelbase/path.c b/dlls/kernelbase/path.c index 410d87ce620..be7754dade2 100644 --- a/dlls/kernelbase/path.c +++ b/dlls/kernelbase/path.c @@ -4166,6 +4166,7 @@ HRESULT WINAPI UrlGetPartA(const char *url, char *out, DWORD *out_len, DWORD par len2 = WideCharToMultiByte(CP_ACP, 0, outW, len + 1, out, *out_len, NULL, NULL); *out_len = len2 - 1; heap_free(inW); + if (hr == S_OK && !*out_len) hr = S_FALSE; return hr; }
@@ -4382,7 +4383,7 @@ HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD p } TRACE("len=%ld %s\n", *out_len, wine_dbgstr_w(out));
- return *out_len ? S_OK : S_FALSE; + return S_OK; }
BOOL WINAPI UrlIsA(const char *url, URLIS Urlis) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index 476358c6d45..31581f82847 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -748,8 +748,6 @@ static void test_UrlGetPart(void) {"telnet://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "telnet:hostname"}, };
- winetest_mute_threshold = 5; - hr = UrlGetPartA(NULL, NULL, NULL, URL_PART_SCHEME, 0); ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
@@ -837,7 +835,7 @@ static void test_UrlGetPart(void) size = 1; wcscpy(bufferW, L"x"); hr = UrlGetPartW(urlW, bufferW, &size, part, flags); - todo_wine_if (tests[i].todo_hr || tests[i].hr == S_FALSE) + todo_wine_if (tests[i].todo_hr) { if (tests[i].hr == S_OK) ok(hr == E_POINTER, "Got hr %#lx.\n", hr); @@ -870,7 +868,7 @@ static void test_UrlGetPart(void) size = ARRAY_SIZE(bufferW); wcscpy(bufferW, L"x"); hr = UrlGetPartW(urlW, bufferW, &size, part, flags); - todo_wine_if ((tests[i].hr == S_FALSE || tests[i].todo_hr) && strcmp(url, "a:") && strcmp(url, "0:")) + todo_wine_if (tests[i].todo_hr && strcmp(url, "a:") && strcmp(url, "0:")) ok(hr == (tests[i].hr == S_FALSE ? S_OK : tests[i].hr), "Got hr %#lx.\n", hr); if (SUCCEEDED(hr)) { @@ -886,8 +884,6 @@ static void test_UrlGetPart(void)
winetest_pop_context(); } - - winetest_mute_threshold = 42; }
/* ########################### */