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