Andrew Eikum : wininet: Always extract #fragments in InternetCrackUrl.

Alexandre Julliard julliard at winehq.org
Tue Sep 29 11:09:06 CDT 2009


Module: wine
Branch: master
Commit: 0250eab25e220193645a065c5a45c2f0d35e14f9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0250eab25e220193645a065c5a45c2f0d35e14f9

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Mon Sep 28 15:49:16 2009 -0500

wininet: Always extract #fragments in InternetCrackUrl.

---

 dlls/wininet/internet.c  |    5 ++++-
 dlls/wininet/tests/url.c |    7 ++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 1a77fd8..1f08c49 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -1424,8 +1424,11 @@ BOOL WINAPI InternetCrackUrlW(LPCWSTR lpszUrl_orig, DWORD dwUrlLength_orig, DWOR
     lpUC->nPort = INTERNET_INVALID_PORT_NUMBER;
 
     /* Parse <params> */
-    if (!(lpszParam = memchrW(lpszap, ';', dwUrlLength - (lpszap - lpszUrl))))
+    lpszParam = memchrW(lpszap, ';', dwUrlLength - (lpszap - lpszUrl));
+    if(!lpszParam)
         lpszParam = memchrW(lpszap, '?', dwUrlLength - (lpszap - lpszUrl));
+    if(!lpszParam)
+        lpszParam = memchrW(lpszap, '#', dwUrlLength - (lpszap - lpszUrl));
 
     SetUrlComponentValueW(&lpUC->lpszExtraInfo, &lpUC->dwExtraInfoLength,
                           lpszParam, lpszParam ? dwUrlLength-(lpszParam-lpszUrl) : 0);
diff --git a/dlls/wininet/tests/url.c b/dlls/wininet/tests/url.c
index 39c0286..18df392 100644
--- a/dlls/wininet/tests/url.c
+++ b/dlls/wininet/tests/url.c
@@ -30,9 +30,10 @@
 
 #include "wine/test.h"
 
-#define TEST_URL "http://www.winehq.org/site/about"
+#define TEST_URL "http://www.winehq.org/site/about#hi"
 #define TEST_URL_HOST "www.winehq.org"
 #define TEST_URL_PATH "/site/about"
+#define TEST_URL_HASH "#hi"
 #define TEST_URL2 "http://www.myserver.com/myscript.php?arg=1"
 #define TEST_URL2_SERVER "www.myserver.com"
 #define TEST_URL2_PATH "/myscript.php"
@@ -147,10 +148,10 @@ static void InternetCrackUrl_test(void)
   ok(urlComponents.nScheme == INTERNET_SCHEME_HTTP,"urlComponents->nScheme should have been INTERNET_SCHEME_HTTP instead of %d\n", urlComponents.nScheme);
   ok(!urlComponents.lpszUserName, ".lpszUserName should have been set to NULL\n");
   ok(!urlComponents.lpszPassword, ".lpszPassword should have been set to NULL\n");
-  ok(!urlComponents.lpszExtraInfo, ".lpszExtraInfo should have been set to NULL\n");
+  ok(urlComponents.dwExtraInfoLength == strlen(TEST_URL_HASH),".dwExtraInfoLength should be %d, but is %d\n", lstrlenA(TEST_URL_HASH), urlComponents.dwExtraInfoLength);
+  ok(!strncmp(urlComponents.lpszExtraInfo,TEST_URL_HASH,strlen(TEST_URL_HASH)), ".lpszExtraInfo should be %s but is %s\n", TEST_URL_HASH, urlComponents.lpszExtraInfo);
   ok(!urlComponents.dwUserNameLength,".dwUserNameLength should be 0, but is %d\n", urlComponents.dwUserNameLength);
   ok(!urlComponents.dwPasswordLength,".dwPasswordLength should be 0, but is %d\n", urlComponents.dwPasswordLength);
-  ok(!urlComponents.dwExtraInfoLength,".dwExtraInfoLength should be 0, but is %d\n", urlComponents.dwExtraInfoLength);
 
   /*3. Check for %20 */
   copy_compsA(&urlSrc, &urlComponents, 32, 1024, 1024, 1024, 2048, 1024);




More information about the wine-cvs mailing list