Skip to content

Commit

Permalink
Sjoerd Mullender writes:
Browse files Browse the repository at this point in the history
If a filename on Windows starts with \\, it is converted to a URL
which starts with ////.  If this URL is passed to urlparse.urlparse
you get a path that starts with // (and an empty netloc).  If you pass
the result back to urlparse.urlunparse, you get a URL that starts with
//, which is parsed differently by urlparse.urlparse.  The fix is to
add the (empty) netloc with accompanying slashes if the path in
urlunparse starts with //.  Do this for all schemes that use a netloc.
  • Loading branch information
gvanrossum committed Mar 18, 1999
1 parent e3fd106 commit f3963b1
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Lib/urlparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,9 @@ def urlparse(url, scheme = '', allow_fragments = 1):
# had redundant delimiters, e.g. a ? with an empty query (the draft
# states that these are equivalent).
def urlunparse((scheme, netloc, url, params, query, fragment)):
if netloc:
if netloc or (scheme in uses_netloc and url[:2] == '//'):
if url[:1] != '/': url = '/' + url
url = '//' + netloc + url
url = '//' + (netloc or '') + url
if scheme:
url = scheme + ':' + url
if params:
Expand Down

0 comments on commit f3963b1

Please sign in to comment.