From: Guido van Rossum Date: Tue, 6 Jul 1993 15:19:36 +0000 (+0000) Subject: * posixpath.py: Fix border cases in normpath ('/foo/..' should return '/') X-Git-Tag: v0.9.9~13 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=df5638662d95c08d48da0ac236dec4e44e93874e;p=thirdparty%2FPython%2Fcpython.git * posixpath.py: Fix border cases in normpath ('/foo/..' should return '/') * ftplib.py: made cwd() use 'CDUP' when dirname is '..' * FL.py: added new constant FL_PLACE_FULLSCREEN --- diff --git a/Lib/ftplib.py b/Lib/ftplib.py index e846ffe30b20..8342b0977b1a 100644 --- a/Lib/ftplib.py +++ b/Lib/ftplib.py @@ -336,7 +336,11 @@ class FTP: # Change to a directory def cwd(self, dirname): - self.voidcmd('CWD ' + dirname) + if dirname == '..': + cmd = 'CDUP' + else: + cmd = 'CWD ' + dirname + self.voidcmd(cmd) # Retrieve the size of a file def size(self, filename): diff --git a/Lib/irix5/FL.py b/Lib/irix5/FL.py index 65184dfe1f96..f85237b85f9b 100755 --- a/Lib/irix5/FL.py +++ b/Lib/irix5/FL.py @@ -27,6 +27,7 @@ PLACE_ASPECT = 2 PLACE_MOUSE = 3 PLACE_CENTER = 4 PLACE_POSITION = 5 +FL_PLACE_FULLSCREEN = 6 FIND_INPUT = 0 FIND_AUTOMATIC = 1 FIND_MOUSE = 2 diff --git a/Lib/plat-irix5/FL.py b/Lib/plat-irix5/FL.py index 65184dfe1f96..f85237b85f9b 100755 --- a/Lib/plat-irix5/FL.py +++ b/Lib/plat-irix5/FL.py @@ -27,6 +27,7 @@ PLACE_ASPECT = 2 PLACE_MOUSE = 3 PLACE_CENTER = 4 PLACE_POSITION = 5 +FL_PLACE_FULLSCREEN = 6 FIND_INPUT = 0 FIND_AUTOMATIC = 1 FIND_MOUSE = 2 diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 57b0af68c6f1..96116d10679c 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -270,10 +270,12 @@ def expandvars(path): def normpath(path): import string + # Treat initial slashes specially + slashes = '' + while path[:1] == '/': + slashes = slashes + '/' + path = path[1:] comps = string.splitfields(path, '/') - # If the path begins with '/', comps[0] is '', which we leave alone; - # we also leave leading multiple slashes alone for compatibility - # with certain networking naming schemes using //host/path i = 0 while i < len(comps): if comps[i] == '.': @@ -287,6 +289,6 @@ def normpath(path): else: i = i+1 # If the path is now empty, substitute '.' - if not comps: + if not comps and not slashes: comps.append('.') - return string.joinfields(comps, '/') + return slashes + string.joinfields(comps, '/')