Zebediah Figura : kernelbase: Also parse hostnames for news schemes in UrlGetPart().

Alexandre Julliard julliard at winehq.org
Mon Feb 14 15:41:29 CST 2022


Module: wine
Branch: master
Commit: 0df41c35357ba9eef4324c1f05f3e07d69ffa57b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0df41c35357ba9eef4324c1f05f3e07d69ffa57b

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Sun Feb 13 12:44:02 2022 -0600

kernelbase: Also parse hostnames for news schemes in UrlGetPart().

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernelbase/path.c   |  9 ++++++---
 dlls/shlwapi/tests/url.c | 15 +++++++--------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/dlls/kernelbase/path.c b/dlls/kernelbase/path.c
index c3d3e734cf7..7d145e5198e 100644
--- a/dlls/kernelbase/path.c
+++ b/dlls/kernelbase/path.c
@@ -4347,12 +4347,15 @@ HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD p
     case URL_PART_HOSTNAME:
         switch (scheme)
         {
+            case URL_SCHEME_FILE:
             case URL_SCHEME_FTP:
-            case URL_SCHEME_HTTP:
             case URL_SCHEME_GOPHER:
-            case URL_SCHEME_TELNET:
-            case URL_SCHEME_FILE:
+            case URL_SCHEME_HTTP:
             case URL_SCHEME_HTTPS:
+            case URL_SCHEME_TELNET:
+            case URL_SCHEME_NEWS:
+            case URL_SCHEME_NNTP:
+            case URL_SCHEME_SNEWS:
                 break;
             default:
                 *out_len = 0;
diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index 4fb4e36c3b6..6a312ecff87 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -728,11 +728,11 @@ static void test_UrlGetPart(void)
         {"local://hostname/", URL_PART_HOSTNAME, 0, E_FAIL},
         {"mailto://hostname/", URL_PART_HOSTNAME, 0, E_FAIL},
         {"mk://hostname/", URL_PART_HOSTNAME, 0, E_FAIL},
-        {"news://hostname/", URL_PART_HOSTNAME, 0, S_OK, "hostname", .todo_hr = TRUE},
-        {"nntp://hostname/", URL_PART_HOSTNAME, 0, S_OK, "hostname", .todo_hr = TRUE},
+        {"news://hostname/", URL_PART_HOSTNAME, 0, S_OK, "hostname"},
+        {"nntp://hostname/", URL_PART_HOSTNAME, 0, S_OK, "hostname"},
         {"res://hostname/", URL_PART_HOSTNAME, 0, E_FAIL},
         {"shell://hostname/", URL_PART_HOSTNAME, 0, E_FAIL},
-        {"snews://hostname/", URL_PART_HOSTNAME, 0, S_OK, "hostname", .todo_hr = TRUE},
+        {"snews://hostname/", URL_PART_HOSTNAME, 0, S_OK, "hostname"},
         {"telnet://hostname/", URL_PART_HOSTNAME, 0, S_OK, "hostname"},
         {"vbscript://hostname/", URL_PART_HOSTNAME, 0, E_FAIL},
         {"wais://hostname/", URL_PART_HOSTNAME, 0, E_FAIL},
@@ -742,9 +742,9 @@ static void test_UrlGetPart(void)
         {"gopher://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "gopher:hostname"},
         {"http://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "http:hostname"},
         {"https://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "https:hostname"},
-        {"news://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "news:hostname", .todo_hr = TRUE},
-        {"nntp://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "nntp:hostname", .todo_hr = TRUE},
-        {"snews://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "snews:hostname", .todo_hr = TRUE},
+        {"news://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "news:hostname"},
+        {"nntp://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "nntp:hostname"},
+        {"snews://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "snews:hostname"},
         {"telnet://hostname/", URL_PART_HOSTNAME, URL_PARTFLAG_KEEPSCHEME, S_OK, "telnet:hostname"},
     };
 
@@ -876,8 +876,7 @@ static void test_UrlGetPart(void)
         {
             ok(size == wcslen(bufferW), "Got size %u.\n", size);
             MultiByteToWideChar(CP_ACP, 0, buffer, -1, expectW, ARRAY_SIZE(expectW));
-            todo_wine_if (strstr(url, "news") || strstr(url, "nntp"))
-                ok(!wcscmp(bufferW, expectW), "Got result %s.\n", debugstr_w(bufferW));
+            ok(!wcscmp(bufferW, expectW), "Got result %s.\n", debugstr_w(bufferW));
         }
         else
         {




More information about the wine-cvs mailing list