Jacek Caban : wininet: Set lpszUrlPath in InternetCrackUrlW if its length is 0.
Alexandre Julliard
julliard at winehq.org
Thu Dec 10 10:00:58 CST 2009
Module: wine
Branch: master
Commit: 5b76702e84652832ba21ca22afb4544c5f6fb95a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5b76702e84652832ba21ca22afb4544c5f6fb95a
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Dec 9 22:09:06 2009 +0100
wininet: Set lpszUrlPath in InternetCrackUrlW if its length is 0.
---
dlls/wininet/internet.c | 2 +-
dlls/wininet/tests/url.c | 17 ++++++++++++-----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index ac845a8..d749e53 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -1603,7 +1603,7 @@ BOOL WINAPI InternetCrackUrlW(LPCWSTR lpszUrl_orig, DWORD dwUrlLength_orig, DWOR
* <protocol>:[//<net_loc>][/path][;<params>][?<query>][#<fragment>]
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
*/
- if (lpszcp != 0 && lpszcp - lpszUrl < dwUrlLength && (!lpszParam || lpszcp < lpszParam))
+ if (lpszcp != 0 && lpszcp - lpszUrl < dwUrlLength && (!lpszParam || lpszcp <= lpszParam))
{
INT len;
diff --git a/dlls/wininet/tests/url.c b/dlls/wininet/tests/url.c
index 527c2c7..7439cd3 100644
--- a/dlls/wininet/tests/url.c
+++ b/dlls/wininet/tests/url.c
@@ -94,6 +94,7 @@ typedef struct {
INTERNET_SCHEME scheme;
int host_off;
int host_len;
+ int host_skip_broken;
INTERNET_PORT port;
int user_off;
int user_len;
@@ -107,15 +108,17 @@ typedef struct {
static const crack_url_test_t crack_url_tests[] = {
{"http://www.winehq.org/site/about#hi",
- 0, 4, INTERNET_SCHEME_HTTP, 7, 14, 80, -1, 0, -1, 0, 21, 11, 32, 3},
+ 0, 4, INTERNET_SCHEME_HTTP, 7, 14, -1, 80, -1, 0, -1, 0, 21, 11, 32, 3},
{"http://www.myserver.com/myscript.php?arg=1",
- 0, 4, INTERNET_SCHEME_HTTP, 7, 16, 80, -1, 0, -1, 0, 23, 13, 36, 6},
+ 0, 4, INTERNET_SCHEME_HTTP, 7, 16, -1, 80, -1, 0, -1, 0, 23, 13, 36, 6},
+ {"http://www.winehq.org?test=123",
+ 0, 4, INTERNET_SCHEME_HTTP, 7, 14, 23, 80, -1, 0, -1, 0, 21, 0, 21, 9},
{"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",
- 0, 4, INTERNET_SCHEME_FILE, -1, 0, 0, -1, 0, -1, 0, 7, 55, -1, 0},
+ 0, 4, INTERNET_SCHEME_FILE, -1, 0, -1, 0, -1, 0, -1, 0, 7, 55, -1, 0},
{"fide:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",
- 0, 4, INTERNET_SCHEME_UNKNOWN, 7, 0, 0, -1, 0, -1, 0, 7, 55, -1, 0},
+ 0, 4, INTERNET_SCHEME_UNKNOWN, 7, 0, -1, 0, -1, 0, -1, 0, 7, 55, -1, 0},
{"file://C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",
- 0, 4, INTERNET_SCHEME_FILE, -1, 0, 0, -1, 0, -1, 0, 7, 54, -1, 0},
+ 0, 4, INTERNET_SCHEME_FILE, -1, 0, -1, 0, -1, 0, -1, 0, 7, 54, -1, 0},
};
static void test_crack_url(const crack_url_test_t *test)
@@ -143,6 +146,10 @@ static void test_crack_url(const crack_url_test_t *test)
else
ok(url.lpszHostName == test->url+test->host_off, "[%s] url.lpszHostName = %p, expected %p\n",
test->url, url.lpszHostName, test->url+test->host_off);
+ if(test->host_skip_broken != -1 && url.dwHostNameLength == test->host_skip_broken) {
+ win_skip("skipping broken dwHostNameLength result\n");
+ return;
+ }
ok(url.dwHostNameLength == test->host_len, "[%s] url.lpszHostNameLength = %d, expected %d\n",
test->url, url.dwHostNameLength, test->host_len);
More information about the wine-cvs
mailing list