Module: wine Branch: refs/heads/master Commit: 7b4d59c5a0a41413c50d45ad97bcc974e6dd4b59 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=7b4d59c5a0a41413c50d45ad...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Dec 26 12:59:31 2005 +0100
urlmon: URL with two slashes is valid.
---
dlls/urlmon/file.c | 6 ++++-- dlls/urlmon/tests/protocol.c | 14 +++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/dlls/urlmon/file.c b/dlls/urlmon/file.c index b1b156c..fcdb772 100644 --- a/dlls/urlmon/file.c +++ b/dlls/urlmon/file.c @@ -145,8 +145,10 @@ static HRESULT WINAPI FileProtocol_Start IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_SENDINGREQUEST, &null_char);
file_name = url+sizeof(wszFile)/sizeof(WCHAR); - if(file_name[0] == '/' && file_name[1] == '/' && file_name[2] == '/') - file_name += 3; + if(file_name[0] == '/' && file_name[1] == '/') + file_name += 2; + if(*file_name == '/') + file_name++;
This->file = CreateFileW(file_name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); diff --git a/dlls/urlmon/tests/protocol.c b/dlls/urlmon/tests/protocol.c index da59fc6..c920aa4 100644 --- a/dlls/urlmon/tests/protocol.c +++ b/dlls/urlmon/tests/protocol.c @@ -452,7 +452,8 @@ static void test_file_protocol(void) { HANDLE file;
static const WCHAR wszFile[] = {'f','i','l','e',':',0}; - static const WCHAR wszFile2[] = {'f','i','l','e',':','/','/','/',0}; + static const WCHAR wszFile2[] = {'f','i','l','e',':','/','/',0}; + static const WCHAR wszFile3[] = {'f','i','l','e',':','/','/','/',0}; static const char html_doc[] = "<HTML></HTML>";
file = CreateFileW(wszIndexHtml, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, @@ -488,7 +489,18 @@ static void test_file_protocol(void) { memcpy(buf+len, wszIndexHtml, sizeof(wszIndexHtml));
file_name = buf + sizeof(wszFile2)/sizeof(WCHAR)-1; + bindf = 0; + test_file_protocol_url(buf); + bindf = BINDF_FROMURLMON; + test_file_protocol_url(buf); + + memcpy(buf, wszFile3, sizeof(wszFile3)); + len = sizeof(wszFile3)/sizeof(WCHAR)-1; + len += GetCurrentDirectoryW(sizeof(buf)/sizeof(WCHAR)-len, buf+len); + buf[len++] = '\'; + memcpy(buf+len, wszIndexHtml, sizeof(wszIndexHtml));
+ file_name = buf + sizeof(wszFile3)/sizeof(WCHAR)-1; bindf = 0; test_file_protocol_url(buf); bindf = BINDF_FROMURLMON;