From: Andrew M. Kuchling Date: Wed, 6 Jan 1999 22:13:09 +0000 (+0000) Subject: Fixed bug in the common-case code for HTTP URLs; it would lose the query, X-Git-Tag: v1.5.2b2~435 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c355201e238c34916aceba597f1d3086ce29a7e;p=python Fixed bug in the common-case code for HTTP URLs; it would lose the query, fragment, and/or parameter information. 3 cases added to the test suite to check for this bug. --- diff --git a/Lib/urlparse.py b/Lib/urlparse.py index fe2c8ded95..148633e954 100644 --- a/Lib/urlparse.py +++ b/Lib/urlparse.py @@ -54,7 +54,7 @@ def urlparse(url, scheme = '', allow_fragments = 1): netloc = path = params = query = fragment = '' i = find(url, ':') if i > 0: - if url[:i] == 'http': # optimizie the common case + if url[:i] == 'http': # optimize the common case scheme = string.lower(url[:i]) url = url[i+1:] if url[:2] == '//': @@ -66,16 +66,16 @@ def urlparse(url, scheme = '', allow_fragments = 1): if allow_fragments: i = string.rfind(url, '#') if i >= 0: - url = url[:i] fragment = url[i+1:] + url = url[:i] i = find(url, '?') if i >= 0: - url = url[:i] query = url[i+1:] + url = url[:i] i = find(url, ';') if i >= 0: - url = url[:i] params = url[i+1:] + url = url[:i] tuple = scheme, netloc, url, params, query, fragment _parse_cache[key] = tuple return tuple @@ -225,6 +225,9 @@ test_input = """ g/../h = http:g = http: = + http:?y = + http:g?y = + http:g?y/./x = """ # XXX The result for //g is actually http://g/; is this a problem?