From dc3e3f69db6a6aa5aed1d604d53c0b4cf156add8 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Fri, 15 Dec 1995 13:22:13 +0000 Subject: [PATCH] Fixed local file access for macintosh --- Lib/urllib.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Lib/urllib.py b/Lib/urllib.py index 7168a5121c0..b06f6bfc5d5 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