Zebediah Figura : kernelbase: Get rid of the "size" and "type" arguments to scan_url().

Alexandre Julliard julliard at winehq.org
Thu Feb 17 15:33:57 CST 2022


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

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Wed Feb 16 20:31:41 2022 -0600

kernelbase: Get rid of the "size" and "type" arguments to scan_url().

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

---

 dlls/kernelbase/path.c | 35 +++++++----------------------------
 1 file changed, 7 insertions(+), 28 deletions(-)

diff --git a/dlls/kernelbase/path.c b/dlls/kernelbase/path.c
index befdf237c5e..3fdc752938c 100644
--- a/dlls/kernelbase/path.c
+++ b/dlls/kernelbase/path.c
@@ -74,11 +74,6 @@ struct parsed_url
     DWORD query_len;       /* [out] size of Query (until eos)           */
 };
 
-enum url_scan_type
-{
-    SCHEME,
-};
-
 static WCHAR *heap_strdupAtoW(const char *str)
 {
     WCHAR *ret = NULL;
@@ -4158,28 +4153,11 @@ HRESULT WINAPI UrlGetPartA(const char *url, char *out, DWORD *out_len, DWORD par
     return hr;
 }
 
-static const WCHAR * scan_url(const WCHAR *start, DWORD *size, enum url_scan_type type)
+static const WCHAR *parse_scheme( const WCHAR *p )
 {
-    *size = 0;
-
-    switch (type)
-    {
-    case SCHEME:
-        while ((isalnum( *start ) && !isupper( *start )) || *start == '+' || *start == '-' || *start == '.')
-        {
-            start++;
-            (*size)++;
-        }
-        if (*start != ':')
-            *size = 0;
-        break;
-
-    default:
-        FIXME("unknown type %d\n", type);
-        return L"";
-    }
-
-    return start;
+    while ((*p >= 'a' && *p <= 'z') || (*p >= '0' && *p <= '9') || *p == '+' || *p == '-' || *p == '.')
+        ++p;
+    return p;
 }
 
 static const WCHAR *parse_url_element( const WCHAR *url, const WCHAR *separators )
@@ -4202,8 +4180,9 @@ static void parse_url( const WCHAR *url, struct parsed_url *pl )
 
     memset(pl, 0, sizeof(*pl));
     pl->scheme = url;
-    work = scan_url(pl->scheme, &pl->scheme_len, SCHEME);
-    if (!*work || (*work != ':')) return;
+    work = parse_scheme( pl->scheme );
+    if (*work != ':') return;
+    pl->scheme_len = work - pl->scheme;
     work++;
     if (!is_slash( work[0] ) || !is_slash( work[1] ))
         return;




More information about the wine-cvs mailing list