diff options
author | Georg Brandl <georg@python.org> | 2010-08-01 19:14:56 +0000 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-08-01 19:14:56 +0000 |
commit | e2773252859bee24c85343d742244a242e49cb5a (patch) | |
tree | 378b7afeca7b1c8073ba27fee0d08fe01caaca19 | |
parent | 004c74d46821c2e061ca46c12a4a397e908629f7 (diff) | |
download | cpython-git-e2773252859bee24c85343d742244a242e49cb5a.tar.gz |
Merged revisions 83352,83356-83358,83362,83366,83368-83369 via svnmerge from
svn+ssh://pythondev@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.
........
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.
........
-rw-r--r-- | Doc/library/sys.rst | 12 | ||||
-rw-r--r-- | Lib/ntpath.py | 6 | ||||
-rw-r--r-- | Lib/test/data/README | 2 | ||||
-rw-r--r-- | Lib/test/test_ntpath.py | 3 | ||||
-rw-r--r-- | Lib/test/test_optparse.py | 6 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Python/getversion.c | 2 |
7 files changed, 21 insertions, 13 deletions
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index ca5d2b06d1..c15e55b29e 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -967,14 +967,10 @@ always available. .. data:: version A string containing the version number of the Python interpreter plus additional - information on the build number and compiler used. It has a value of the form - ``'version (#build_number, build_date, build_time) [compiler]'``. The first - three characters are used to identify the version in the installation - directories (where appropriate on each platform). An example:: - - >>> import sys - >>> sys.version - '1.5.2 (#0 Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)]' + information on the build number and compiler used. This string is displayed + when the interactive interpreter is started. Do not extract version information + out of it, rather, use :data:`version_info` and the functions provided by the + :mod:`platform` module. .. data:: api_version diff --git a/Lib/ntpath.py b/Lib/ntpath.py index a124dfd0c4..11a0a3efcb 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -399,6 +399,12 @@ def normpath(path): """Normalize path, eliminating double slashes, etc.""" # Preserve unicode (if path is unicode) backslash, dot = (u'\\', u'.') if isinstance(path, unicode) else ('\\', '.') + if path.startswith(('\\\\.\\', '\\\\?\\')): + # 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("/", "\\") prefix, path = splitdrive(path) # We need to be careful here. If the prefix is empty, and the path starts diff --git a/Lib/test/data/README b/Lib/test/data/README new file mode 100644 index 0000000000..8bf8c9b31e --- /dev/null +++ b/Lib/test/data/README @@ -0,0 +1,2 @@ +This empty directory serves as destination for temporary files +created by some tests. diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py index a3a22ef9b9..73645f19bf 100644 --- a/Lib/test/test_ntpath.py +++ b/Lib/test/test_ntpath.py @@ -123,6 +123,9 @@ class TestNtpath(unittest.TestCase): tester("ntpath.normpath('C:////a/b')", r'C:\a\b') tester("ntpath.normpath('//machine/share//a/b')", r'\\machine\share\a\b') + tester("ntpath.normpath('\\\\.\\NUL')", r'\\.\NUL') + tester("ntpath.normpath('\\\\?\\D:/XY\\Z')", r'\\?\D:/XY\Z') + def test_expandvars(self): with test_support.EnvironmentVarGuard() as env: env.clear() diff --git a/Lib/test/test_optparse.py b/Lib/test/test_optparse.py index ab5483b5eb..bc8bb8abb0 100644 --- a/Lib/test/test_optparse.py +++ b/Lib/test/test_optparse.py @@ -791,15 +791,13 @@ class TestBool(BaseTest): (options, args) = self.assertParseOK(["-q"], {'verbose': 0}, []) - if hasattr(__builtins__, 'False'): - self.assertTrue(options.verbose is False) + self.assertTrue(options.verbose is False) def test_bool_true(self): (options, args) = self.assertParseOK(["-v"], {'verbose': 1}, []) - if hasattr(__builtins__, 'True'): - self.assertTrue(options.verbose is True) + self.assertTrue(options.verbose is True) def test_bool_flicker_on_and_off(self): self.assertParseOK(["-qvq", "-q", "-v"], @@ -27,6 +27,9 @@ Library - Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when re-initializing a buffered IO object by calling its ``__init__`` method. +- Issue #7909: Do not touch paths with the special prefixes ``\\.\`` + or ``\\?\`` in ntpath.normpath(). + - Issue #5146: Handle UID THREAD command correctly in imaplib. - Issue #5147: Fix the header generated for cookie files written by diff --git a/Python/getversion.c b/Python/getversion.c index 7af16fc810..7bd6efd0a0 100644 --- a/Python/getversion.c +++ b/Python/getversion.c @@ -9,7 +9,7 @@ const char * Py_GetVersion(void) { static char version[250]; - PyOS_snprintf(version, sizeof(version), "%.80s (%.80s) %.80s", + PyOS_snprintf(version, sizeof(version), "%.80s (%.80s) %.80s", PY_VERSION, Py_GetBuildInfo(), Py_GetCompiler()); return version; } |