From 7c42bfe107cb79418e6540825eb9176b7d78021c Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Wed, 26 Sep 2012 04:20:00 +0200 Subject: [PATCH] shlwapi: UrlIs()'s check for the 'file:' protocol is case insensitive. --- dlls/shlwapi/tests/url.c | 3 ++- dlls/shlwapi/url.c | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index b24a2778a31..6cef9d62d95 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -450,7 +450,8 @@ static const struct { { "file://e:/b/c", FALSE, TRUE }, { "http:partial", FALSE, FALSE }, { "mailto://www.winehq.org/test.html", TRUE, FALSE }, - { "file:partial", FALSE, TRUE } + { "file:partial", FALSE, TRUE }, + { "File:partial", FALSE, TRUE }, }; /* ########################### */ diff --git a/dlls/shlwapi/url.c b/dlls/shlwapi/url.c index f483db37995..70a0b87d299 100644 --- a/dlls/shlwapi/url.c +++ b/dlls/shlwapi/url.c @@ -1864,7 +1864,8 @@ BOOL WINAPI UrlIsA(LPCSTR pszUrl, URLIS Urlis) return FALSE; case URLIS_FILEURL: - return !StrCmpNA("file:", pszUrl, 5); + return (CompareStringA(LOCALE_INVARIANT, NORM_IGNORECASE, pszUrl, 5, + "file:", 5) == CSTR_EQUAL); case URLIS_DIRECTORY: last = pszUrl + strlen(pszUrl) - 1; @@ -1889,7 +1890,7 @@ BOOL WINAPI UrlIsA(LPCSTR pszUrl, URLIS Urlis) */ BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS Urlis) { - static const WCHAR stemp[] = { 'f','i','l','e',':',0 }; + static const WCHAR file_colon[] = { 'f','i','l','e',':',0 }; PARSEDURLW base; DWORD res1; LPCWSTR last; @@ -1917,7 +1918,8 @@ BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS Urlis) return FALSE; case URLIS_FILEURL: - return !strncmpW(stemp, pszUrl, 5); + return (CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pszUrl, 5, + file_colon, 5) == CSTR_EQUAL); case URLIS_DIRECTORY: last = pszUrl + strlenW(pszUrl) - 1; -- 2.11.4.GIT