diff options
author | Georg Brandl <georg@python.org> | 2010-08-01 19:17:57 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-08-01 19:17:57 (GMT) |
commit | 611f8f5e8eb2742fd720dc0280e77b8d634639cb (patch) | |
tree | ee504fb9957b4780173468ebb9d193be3c2cbf3f /Lib/ntpath.py | |
parent | e5d518f2526ab1008232767080b867cdb1eb052d (diff) | |
download | cpython-611f8f5e8eb2742fd720dc0280e77b8d634639cb.zip cpython-611f8f5e8eb2742fd720dc0280e77b8d634639cb.tar.gz cpython-611f8f5e8eb2742fd720dc0280e77b8d634639cb.tar.bz2 |
Merged revisions 83352,83355-83358,83362,83366,83368-83369 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k
........
r83352 | georg.brandl | 2010-07-31 20:11:07 +0200 (Sa, 31 Jul 2010) | 1 line
#9440: Remove borderline test case that fails based on unpredictable conditions such as compiler flags.
........
r83355 | georg.brandl | 2010-07-31 21:17:11 +0200 (Sa, 31 Jul 2010) | 1 line
Fix bad merge: test_support -> support.
........
r83356 | georg.brandl | 2010-07-31 21:29:15 +0200 (Sa, 31 Jul 2010) | 1 line
Remove trailing whitespace.
........
r83357 | georg.brandl | 2010-07-31 21:59:55 +0200 (Sa, 31 Jul 2010) | 1 line
#5778: document that sys.version can contain a newline.
........
r83358 | georg.brandl | 2010-07-31 22:05:31 +0200 (Sa, 31 Jul 2010) | 1 line
#9442: do not document a specific format for sys.version; rather refer to version_info and the platform module.
........
r83362 | georg.brandl | 2010-07-31 23:12:15 +0200 (Sa, 31 Jul 2010) | 1 line
#8910: add a file explaining why Lib/test/data is there.
........
r83366 | georg.brandl | 2010-07-31 23:26:40 +0200 (Sa, 31 Jul 2010) | 1 line
There always is a False and True now.
........
r83368 | georg.brandl | 2010-07-31 23:40:15 +0200 (Sa, 31 Jul 2010) | 1 line
#7909: the prefixes \\.\ and \\?\ indicate special Windows paths, do not try to manipulate them. See http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx for details.
........
r83369 | georg.brandl | 2010-07-31 23:41:42 +0200 (Sa, 31 Jul 2010) | 1 line
Fix "Berkeley" name.
........
Diffstat (limited to 'Lib/ntpath.py')
-rw-r--r-- | Lib/ntpath.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 1cec895..6aa1e85 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -70,6 +70,12 @@ def _get_colon(path): else: return ':' +def _get_special(path): + if isinstance(path, bytes): + return (b'\\\\.\\', b'\\\\?\\') + else: + return ('\\\\.\\', '\\\\?\\') + # Normalize the case of a pathname and map slashes to backslashes. # Other normalizations (such as optimizing '../' away) are not done # (this is done by normpath). @@ -508,6 +514,13 @@ def normpath(path): """Normalize path, eliminating double slashes, etc.""" sep = _get_sep(path) dotdot = _get_dot(path) * 2 + special_prefixes = _get_special(path) + if path.startswith(special_prefixes): + # in the case of paths with these prefixes: + # \\.\ -> device names + # \\?\ -> literal paths + # do not do any normalization, but return the path unchanged + return path path = path.replace(_get_altsep(path), sep) prefix, path = splitdrive(path) |