Commit e2ad88c2 authored by Guido van Rossum's avatar Guido van Rossum

Rewrite normcase() using string.translate...

parent efa68372
...@@ -5,23 +5,15 @@ import stat ...@@ -5,23 +5,15 @@ import stat
import string import string
# Normalize the case of a pathname. # Normalize the case of a pathname and map slashes to backslashes.
# On MS-DOS it maps the pathname to lowercase, turns slashes into # Other normalizations (such as optimizing '../' away) are not done
# backslashes.
# Other normalizations (such as optimizing '../' away) are not allowed
# (this is done by normpath). # (this is done by normpath).
# Previously, this version mapped invalid consecutive characters to a
# single '_', but this has been removed. This functionality should _normtable = string.maketrans(string.uppercase + "\\/",
# possibly be added as a new function. string.lowercase + os.sep * 2)
def normcase(s): def normcase(s):
res, s = splitdrive(s) return string.translate(s, _normtable)
for c in s:
if c in '/\\':
res = res + os.sep
else:
res = res + c
return string.lower(res)
# Return wheter a path is absolute. # Return wheter a path is absolute.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment