diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 28f82a3..f465ad7 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -640,7 +640,7 @@ static void HTTP_FixURL(http_request_t *request) } }
- if(CSTR_EQUAL != CompareStringW( LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE, + if(CSTR_EQUAL != CompareStringW( LOCALE_INVARIANT, NORM_IGNORECASE, request->path, strlenW(request->path), szHttp, strlenW(szHttp) ) && request->path[0] != '/') /* not an absolute path ?? --> fix it !! */ {
In this code snippet it feels wrong to have this string comparison depend on the system locale, which in Wine's case would come from the user's Unix locale. Isn't this a case where LOCALE_INVARIANT would be better?
However I have not found a case where this makes a difference anyway, either with 'http:' or with 'file:'. That is, 'file:' always matches 'FILE:', even in Turkish, as long as I don't use NORM_LINGUISTIC_CASING. Conversely, 'fîle:' is different from 'FILE:' no matter what.
Once I have a CompareString() test-case I can make some for UrlIs(), PathCreateFormURL(), possibly ShellExecute(), etc.