Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/urlmon/internet.c | 1 + dlls/urlmon/tests/misc.c | 7 +++++++ 2 files changed, 8 insertions(+)
diff --git a/dlls/urlmon/internet.c b/dlls/urlmon/internet.c index 7c997a03b0..3b83d48895 100644 --- a/dlls/urlmon/internet.c +++ b/dlls/urlmon/internet.c @@ -401,6 +401,7 @@ HRESULT WINAPI CoInternetParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD case PARSE_SECURITY_URL: return parse_security_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult); case PARSE_ENCODE: + case PARSE_UNESCAPE: return parse_encode(pwzUrl, dwFlags, pszResult, cchResult, pcchResult); case PARSE_PATH_FROM_URL: return parse_path_from_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult); diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c index ff0f24ed76..600b71856e 100644 --- a/dlls/urlmon/tests/misc.c +++ b/dlls/urlmon/tests/misc.c @@ -381,6 +381,13 @@ static void test_CoInternetParseUrl(void) ok(size == lstrlenW(parse_tests[i].encoded_url), "[%d] wrong size\n", i); ok(!lstrcmpW(parse_tests[i].encoded_url, buf), "[%d] wrong encoded url\n", i);
+ memset(buf, 0xf0, sizeof(buf)); + hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_UNESCAPE, 0, buf, + ARRAY_SIZE(buf), &size, 0); + ok(hres == S_OK, "[%d] encoding failed: %08x\n", i, hres); + ok(size == lstrlenW(parse_tests[i].encoded_url), "[%d] wrong size\n", i); + ok(!lstrcmpW(parse_tests[i].encoded_url, buf), "[%d] wrong encoded url\n", i); + memset(buf, 0xf0, sizeof(buf)); hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_PATH_FROM_URL, 0, buf, ARRAY_SIZE(buf), &size, 0);