]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Sjoerd Mullender writes:
authorGuido van Rossum <guido@python.org>
Thu, 24 Jun 1999 15:27:36 +0000 (15:27 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 24 Jun 1999 15:27:36 +0000 (15:27 +0000)
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]

Lib/urllib.py

index 1b5baaaf95f17fc3e9d830377d8c49553080a4a7..c12f4519cca646422c3918c0c9354d31bb94a59b 100644 (file)
@@ -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