[PATCH] urlmon: CoInternetParseUrl(PARSE_UNESCAPE) is an alias of PARSE_ENCODE.

Dmitry Timoshkov dmitry at baikal.ru
Thu May 16 06:12:04 CDT 2019


Signed-off-by: Dmitry Timoshkov <dmitry at 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);
-- 
2.20.1




More information about the wine-devel mailing list