diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index f1c0965bca4..ac896b06e47 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -1483,6 +1483,7 @@ static const struct parse_url_test_t { {"ab-://www.winehq.org/",S_OK,3,URL_SCHEME_UNKNOWN}, {" http://www.winehq.org/",URL_E_INVALID_SYNTAX}, {"HTTP://www.winehq.org/",S_OK,4,URL_SCHEME_HTTP}, + {"a+-.://www.winehq.org/",S_OK,4,URL_SCHEME_UNKNOWN}, }; static void test_ParseURL(void) diff --git a/dlls/shlwapi/url.c b/dlls/shlwapi/url.c index bda4eb2e3fc..c7d717b2d7e 100644 --- a/dlls/shlwapi/url.c +++ b/dlls/shlwapi/url.c @@ -169,7 +169,7 @@ HRESULT WINAPI ParseURLA(LPCSTR x, PARSEDURLA *y) if(y->cbSize != sizeof(*y)) return E_INVALIDARG; - while(*ptr && (isalnum(*ptr) || *ptr == '-')) + while(*ptr && (isalnum(*ptr) || *ptr == '-' || *ptr == '+' || *ptr == '.')) ptr++; if (*ptr != ':' || ptr <= x+1) { @@ -203,7 +203,7 @@ HRESULT WINAPI ParseURLW(LPCWSTR x, PARSEDURLW *y) if(y->cbSize != sizeof(*y)) return E_INVALIDARG; - while(*ptr && (isalnumW(*ptr) || *ptr == '-')) + while(*ptr && (isalnumW(*ptr) || *ptr == '-' || *ptr == '+' || *ptr == '.')) ptr++; if (*ptr != ':' || ptr <= x+1) {