diff options
author | Guido van Rossum <guido@python.org> | 1999-06-24 15:27:36 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1999-06-24 15:27:36 (GMT) |
commit | 336a201d4fed1b800029f302653e851a430a166b (patch) | |
tree | f88677e1cfde6a11b0faa839c726d9fafa0098e4 /Lib/urllib.py | |
parent | ff3a278d3be871942e8fe14c01a70d03cdac752d (diff) | |
download | cpython-336a201d4fed1b800029f302653e851a430a166b.zip cpython-336a201d4fed1b800029f302653e851a430a166b.tar.gz cpython-336a201d4fed1b800029f302653e851a430a166b.tar.bz2 |
Sjoerd Mullender writes:
Urllib makes the URL of the opened file available through the geturl
method of the returned object. For local files, this consists of
file: plus the name of the file. This results in an invalid URL if
the file name was relative. This patch fixes this so that the
returned URL is just a relative URL in that case. When the file name
is absolute, the URL returned is of the form file:///absolute/path.
[I guess that a URL of the form "file:foo.html" is illegal... GvR]
Diffstat (limited to 'Lib/urllib.py')
-rw-r--r-- | Lib/urllib.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Lib/urllib.py b/Lib/urllib.py index 1b5baaa..c12f451 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -325,13 +325,19 @@ class URLopener: 'Content-Type: %s\n' % (mtype or 'text/plain'))) host, file = splithost(url) if not host: + urlfile = file + if file[:1] == '/': + urlfile = 'file://' + file return addinfourl(open(url2pathname(file), 'rb'), - headers, 'file:'+file) + headers, urlfile) host, port = splitport(host) if not port \ and socket.gethostbyname(host) in (localhost(), thishost()): + urlfile = file + if file[:1] == '/': + urlfile = 'file://' + file return addinfourl(open(url2pathname(file), 'rb'), - headers, 'file:'+file) + headers, urlfile) raise IOError, ('local file error', 'not on local host') # Use FTP protocol |