Module: wine Branch: master Commit: 8dddd89500f15bcd192f6c38c913b9d66e01ecba URL: http://source.winehq.org/git/wine.git/?a=commit;h=8dddd89500f15bcd192f6c38c9...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Apr 23 17:09:05 2008 +0200
urlmon: Ignore query and hash part in file protocol URL.
---
dlls/urlmon/file.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/urlmon/file.c b/dlls/urlmon/file.c index 91aca2c..b3691b0 100644 --- a/dlls/urlmon/file.c +++ b/dlls/urlmon/file.c @@ -99,8 +99,7 @@ static HRESULT WINAPI FileProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl DWORD grfBINDF = 0; LARGE_INTEGER size; DWORD len; - LPWSTR url, mime = NULL; - LPCWSTR file_name; + LPWSTR url, mime = NULL, file_name; WCHAR null_char = 0; BOOL first_call = FALSE; HRESULT hres; @@ -136,6 +135,8 @@ static HRESULT WINAPI FileProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_DIRECTBIND, NULL);
if(!This->file) { + WCHAR *ptr; + first_call = TRUE;
IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_SENDINGREQUEST, &null_char); @@ -146,6 +147,13 @@ static HRESULT WINAPI FileProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl if(*file_name == '/') file_name++;
+ for(ptr = file_name; *ptr; ptr++) { + if(*ptr == '?' || *ptr == '#') { + *ptr = 0; + break; + } + } + This->file = CreateFileW(file_name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);