diff options
Diffstat (limited to 'Lib/urllib.py')
-rw-r--r-- | Lib/urllib.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/Lib/urllib.py b/Lib/urllib.py index 7168a51..b06f6bf 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -17,10 +17,25 @@ import string import socket import regex +import os __version__ = '1.2' +# Helper for non-unix systems +if os.name == 'mac': + def _fixpath(pathname): + components = string.split(pathname, '/') + if not components[0]: + # Absolute unix path, don't start with colon + return string.join(components[1:], ':') + else: + # relative unix path, start with colon + return ':' + string.join(components, ':') +else: + def _fixpath(pathname): + return pathname + # This really consists of two pieces: # (1) a class which handles opening of all sorts of URLs @@ -223,12 +238,12 @@ class URLopener: # Use local file def open_local_file(self, url): host, file = splithost(url) - if not host: return addinfo(open(file, 'r'), noheaders()) + if not host: return addinfo(open(_fixpath(file), 'r'), noheaders()) host, port = splitport(host) if not port and socket.gethostbyname(host) in ( localhost(), thishost()): file = unquote(file) - return addinfo(open(file, 'r'), noheaders()) + return addinfo(open(_fixpath(file), 'r'), noheaders()) raise IOError, ('local file error', 'not on local host') # Use FTP protocol |