Module: wine Branch: master Commit: 0250eab25e220193645a065c5a45c2f0d35e14f9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0250eab25e220193645a065c5a...
Author: Andrew Eikum aeikum@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);