Piotr Caban : shlwapi: Allow ' ' in hostname and password in UrlGetPart.
Alexandre Julliard
julliard at winehq.org
Wed Dec 16 09:41:37 CST 2009
Module: wine
Branch: master
Commit: 1e0827f645d1a1d986a1aa4b77f9be794daee32d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1e0827f645d1a1d986a1aa4b77f9be794daee32d
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Dec 15 23:47:17 2009 +0100
shlwapi: Allow ' ' in hostname and password in UrlGetPart.
---
dlls/shlwapi/tests/url.c | 8 ++++++++
dlls/shlwapi/url.c | 6 ++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index 0138c35..da051a1 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -519,6 +519,9 @@ static void test_url_part(const char* szUrl, DWORD dwPart, DWORD dwFlags, const
static void test_UrlGetPart(void)
{
+ const char* file_url = "file://h o s t/c:/windows/file";
+ const char* http_url = "http://user:pass 123 at www.wine hq.org";
+
CHAR szPart[INTERNET_MAX_URL_LENGTH];
DWORD dwSize;
HRESULT res;
@@ -544,6 +547,11 @@ static void test_UrlGetPart(void)
test_url_part(TEST_URL_3, URL_PART_PASSWORD, 0, "bar");
test_url_part(TEST_URL_3, URL_PART_SCHEME, 0, "http");
test_url_part(TEST_URL_3, URL_PART_QUERY, 0, "?query=x&return=y");
+
+ test_url_part(file_url, URL_PART_HOSTNAME, 0, "h o s t");
+
+ test_url_part(http_url, URL_PART_HOSTNAME, 0, "www.wine hq.org");
+ test_url_part(http_url, URL_PART_PASSWORD, 0, "pass 123");
}
/* ########################### */
diff --git a/dlls/shlwapi/url.c b/dlls/shlwapi/url.c
index 2b7a8cd..198f17f 100644
--- a/dlls/shlwapi/url.c
+++ b/dlls/shlwapi/url.c
@@ -1856,7 +1856,8 @@ static LPCWSTR URL_ScanID(LPCWSTR start, LPDWORD size, WINE_URL_SCAN_TYPE type)
(*start == '_') ||
(*start == '+') ||
(*start == '-') ||
- (*start == '.')) {
+ (*start == '.') ||
+ (*start == ' ')) {
start++;
(*size)++;
} else if (*start == '%') {
@@ -1886,7 +1887,8 @@ static LPCWSTR URL_ScanID(LPCWSTR start, LPDWORD size, WINE_URL_SCAN_TYPE type)
while (cont) {
if (isalnumW(*start) ||
(*start == '-') ||
- (*start == '.') ) {
+ (*start == '.') ||
+ (*start == ' ') ) {
start++;
(*size)++;
}
More information about the wine-cvs
mailing list