shlwapi: Fix handling mk URLs.
This commit is contained in:
parent
557e4d308b
commit
961627d344
|
@ -198,7 +198,10 @@ const TEST_URL_COMBINE TEST_COMBINE[] = {
|
|||
{"file:///C:\\dir\\file.txt", "test.txt", 0, S_OK, "file:///C:/dir/test.txt"},
|
||||
{"http://www.winehq.org/test/", "test%20file.txt", 0, S_OK, "http://www.winehq.org/test/test%20file.txt"},
|
||||
{"http://www.winehq.org/test/", "test%20file.txt", URL_FILE_USE_PATHURL, S_OK, "http://www.winehq.org/test/test%20file.txt"},
|
||||
{"http://www.winehq.org%2ftest/", "test%20file.txt", URL_FILE_USE_PATHURL, S_OK, "http://www.winehq.org%2ftest/test%20file.txt"}
|
||||
{"http://www.winehq.org%2ftest/", "test%20file.txt", URL_FILE_USE_PATHURL, S_OK, "http://www.winehq.org%2ftest/test%20file.txt"},
|
||||
{"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"},
|
||||
};
|
||||
|
||||
struct {
|
||||
|
|
|
@ -629,6 +629,22 @@ HRESULT WINAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative,
|
|||
process_case = 1;
|
||||
}
|
||||
else do {
|
||||
/* mk is a special case */
|
||||
if(base.nScheme == URL_SCHEME_MK) {
|
||||
static const WCHAR wsz[] = {':',':',0};
|
||||
|
||||
WCHAR *ptr = strstrW(base.pszSuffix, wsz);
|
||||
if(ptr) {
|
||||
int delta;
|
||||
|
||||
ptr += 2;
|
||||
delta = ptr-base.pszSuffix;
|
||||
base.cchProtocol += delta;
|
||||
base.pszSuffix += delta;
|
||||
base.cchSuffix -= delta;
|
||||
}
|
||||
}
|
||||
|
||||
/* get size of location field (if it exists) */
|
||||
work = (LPWSTR)base.pszSuffix;
|
||||
sizeloc = 0;
|
||||
|
|
Loading…
Reference in New Issue