(1) Change normpath() to *not* also call normcase().

(2) Fix normcase() to use string.lower() and string.replace() -- it
turns out that the table constructed for translate() didn't work in
locales that have a different number of lowercase and uppercase
letters.
This commit is contained in:
Guido van Rossum 1998-02-18 13:48:31 +00:00
parent 8cf94e608e
commit 16a0bc278e
1 changed files with 7 additions and 7 deletions

View File

@ -13,13 +13,13 @@ import string
# Other normalizations (such as optimizing '../' away) are not done
# (this is done by normpath).
_normtable = string.maketrans(string.uppercase + "\\/",
string.lowercase + os.sep * 2)
def normcase(s):
"""Normalize case of pathname. Makes all characters lowercase and all
slashes into backslashes"""
return string.translate(s, _normtable)
"""Normalize case of pathname.
Makes all characters lowercase and all slashes into backslashes.
"""
return string.lower(string.replace(s, "/", "\\"))
# Return wheter a path is absolute.
@ -356,7 +356,7 @@ are left unchanged"""
def normpath(path):
"""Normalize path, eliminating double slashes, etc."""
path = normcase(path)
path = string.replace(path, "/", "\\")
prefix, path = splitdrive(path)
while path[:1] == os.sep:
prefix = prefix + os.sep