From acfc1175a2204422e7ff089f47486b3f153124c1 Mon Sep 17 00:00:00 2001 From: Rob Shearman Date: Thu, 23 Aug 2007 16:42:29 +0100 Subject: [PATCH] shlwapi: Fix UrlCombineW for absolute URLs without slashes. --- dlls/shlwapi/tests/path.c | 4 ++++ dlls/shlwapi/url.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/dlls/shlwapi/tests/path.c b/dlls/shlwapi/tests/path.c index d4ed84d896b..7eb02b2c42f 100644 --- a/dlls/shlwapi/tests/path.c +++ b/dlls/shlwapi/tests/path.c @@ -205,6 +205,10 @@ const TEST_URL_COMBINE TEST_COMBINE[] = { {"xxx:@MSITStore:file.chm/file.html", "dir/file", 0, S_OK, "xxx:dir/file"}, {"mk:@MSITStore:file.chm::/file.html", "/dir/file", 0, S_OK, "mk:@MSITStore:file.chm::/dir/file"}, {"mk:@MSITStore:file.chm::/file.html", "mk:@MSITStore:file.chm::/dir/file", 0, S_OK, "mk:@MSITStore:file.chm::/dir/file"}, + {"foo:today", "foo:calendar", 0, S_OK, "foo:calendar"}, + {"foo:today", "bar:calendar", 0, S_OK, "bar:calendar"}, + {"foo:/today", "foo:calendar", 0, S_OK, "foo:/calendar"}, + {"foo:/today/", "foo:calendar", 0, S_OK, "foo:/today/calendar"}, }; struct { diff --git a/dlls/shlwapi/url.c b/dlls/shlwapi/url.c index e1c0aa6cd48..e7701da3a35 100644 --- a/dlls/shlwapi/url.c +++ b/dlls/shlwapi/url.c @@ -736,8 +736,9 @@ HRESULT WINAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative, process_case = 4; break; } - /* case where scheme is followed by document path */ - process_case = 5; + /* replace either just location if base's location starts with a + * slash or otherwise everything */ + process_case = (*base.pszSuffix == '/') ? 5 : 1; break; } if ((*relative.pszSuffix == '/') && (*(relative.pszSuffix+1) == '/')) {