shlwapi: Correct slash/backslashs in UrlCanonicalize.
This commit is contained in:
parent
b27500aafe
commit
d9d6e49f36
|
@ -162,7 +162,13 @@ static const TEST_URL_CANONICALIZE TEST_CANONICALIZE[] = {
|
|||
{"http:www.winehq.org/dir/../index.html", 0, S_OK, "http:www.winehq.org/index.html"},
|
||||
{"http://localhost/test.html", URL_FILE_USE_PATHURL, S_OK, "http://localhost/test.html"},
|
||||
{"http://localhost/te%20st.html", URL_FILE_USE_PATHURL, S_OK, "http://localhost/te%20st.html"},
|
||||
{"http://www.winehq.org/%E6%A1%9C.html", URL_FILE_USE_PATHURL, S_OK, "http://www.winehq.org/%E6%A1%9C.html"}
|
||||
{"http://www.winehq.org/%E6%A1%9C.html", URL_FILE_USE_PATHURL, S_OK, "http://www.winehq.org/%E6%A1%9C.html"},
|
||||
{"mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, S_OK, "mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"},
|
||||
{"ftp:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, S_OK, "ftp:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"},
|
||||
{"file:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, S_OK, "file:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"},
|
||||
{"http:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, S_OK, "http:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"},
|
||||
{"http:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", URL_FILE_USE_PATHURL, S_OK, "http:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"},
|
||||
{"mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", URL_FILE_USE_PATHURL, S_OK, "mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"},
|
||||
};
|
||||
|
||||
/* ################ */
|
||||
|
|
|
@ -276,10 +276,11 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
|
|||
LPWSTR lpszUrlCpy, wk2, mp, mp2;
|
||||
INT state;
|
||||
DWORD nByteLen, nLen, nWkLen;
|
||||
WCHAR slash = '/';
|
||||
WCHAR slash = '\0';
|
||||
|
||||
static const WCHAR wszFile[] = {'f','i','l','e',':'};
|
||||
static const WCHAR wszRes[] = {'r','e','s',':'};
|
||||
static const WCHAR wszHttp[] = {'h','t','t','p',':'};
|
||||
static const WCHAR wszLocalhost[] = {'l','o','c','a','l','h','o','s','t'};
|
||||
static const WCHAR wszFilePrefix[] = {'f','i','l','e',':','/','/','/'};
|
||||
|
||||
|
@ -299,6 +300,12 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
|
|||
lpszUrlCpy = HeapAlloc(GetProcessHeap(), 0,
|
||||
nByteLen+sizeof(wszFilePrefix)+sizeof(WCHAR));
|
||||
|
||||
if ((nByteLen >= sizeof(wszHttp) &&
|
||||
!memcmp(wszHttp, pszUrl, sizeof(wszHttp))) ||
|
||||
(nByteLen >= sizeof(wszFile) &&
|
||||
!memcmp(wszFile, pszUrl, sizeof(wszFile))))
|
||||
slash = '/';
|
||||
|
||||
if((dwFlags & URL_FILE_USE_PATHURL) && nByteLen >= sizeof(wszFile)
|
||||
&& !memcmp(wszFile, pszUrl, sizeof(wszFile)))
|
||||
slash = '\\';
|
||||
|
|
Loading…
Reference in New Issue