From: Piotr Caban piotr@codeweavers.com
--- dlls/kernelbase/path.c | 5 +++-- dlls/shlwapi/tests/url.c | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/kernelbase/path.c b/dlls/kernelbase/path.c index 244b65d1755..a737294e655 100644 --- a/dlls/kernelbase/path.c +++ b/dlls/kernelbase/path.c @@ -5060,13 +5060,14 @@ HRESULT WINAPI UrlCombineW(const WCHAR *baseW, const WCHAR *relativeW, WCHAR *co process_case = 1; break; } - if (relativeW[0] == '/' && relativeW[1] == '/') + if ((relativeW[0] == '/' || relativeW[0] == '\') && + (relativeW[1] == '/' || relativeW[1] == '\')) { /* Relative has location and the rest. */ process_case = 3; break; } - if (*relativeW == '/') + if (*relativeW == '/' || *relativeW == '\') { /* Relative is root to location. */ process_case = 4; diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index e51a080c330..909867c9350 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -205,6 +205,7 @@ static const TEST_URL_COMBINE TEST_COMBINE[] = { {"http://www.winehq.org/tests/../tests", "tests4", 0, "http://www.winehq.org/tests4%22%7D, {"http://www.winehq.org/tests/../tests/", "tests5", 0, "http://www.winehq.org/tests/tests5%22%7D, {"http://www.winehq.org/tests/../tests/", "/tests6/..", 0, "http://www.winehq.org/%22%7D, + {"http://www.winehq.org/tests/../tests/", "\tests6\..", 0, "http://www.winehq.org/%22%7D, {"http://www.winehq.org/tests/../tests/..", "tests7/..", 0, "http://www.winehq.org/%22%7D, {"http://www.winehq.org/tests/?query=x&return=y", "tests8", 0, "http://www.winehq.org/tests/tests8%22%7D, {"http://www.winehq.org/tests/#example", "tests9", 0, "http://www.winehq.org/tests/tests9%22%7D, @@ -234,6 +235,8 @@ static const TEST_URL_COMBINE TEST_COMBINE[] = { {"Foo:/today/", "fOo:calendar", 0, "foo:/today/calendar"}, {"mk:@MSITStore:dir/test.chm::dir/index.html", "image.jpg", 0, "mk:@MSITStore:dir/test.chm::dir/image.jpg"}, {"mk:@MSITStore:dir/test.chm::dir/dir2/index.html", "../image.jpg", 0, "mk:@MSITStore:dir/test.chm::dir/image.jpg"}, + {"c:\test\", "//share/file.txt", 0, "file://share/file.txt"}, + {"c:\test\", "\\share\file.txt", 0, "file://share/file.txt"}, /* UrlCombine case 2 tests. Schemes do not match */ {"outbind://xxxxxxxxx", "http://wine1/dir", 0, "http://wine1/dir%22%7D, {"xxxx://xxxxxxxxx", "http://wine2/dir", 0, "http://wine2/dir%22%7D,