Merged revisions 76593 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r76593 | amaury.forgeotdarc | 2009-11-30 01:08:56 +0100 (lun., 30 nov. 2009) | 5 lines
#6077: on Windows, fix truncation of a tempfile.TemporaryFile opened in "wt+" mode:
files opened with os.open() stop on the first \x1a (Ctrl-Z) unless os.O_BINARY is used.
Will backport to 3.1
........
diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index 93405a8..049cdaa 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -169,7 +169,6 @@
namer = _RandomNameSequence()
dirlist = _candidate_tempdir_list()
- flags = _text_openflags
for dir in dirlist:
if dir != _os.curdir:
@@ -179,7 +178,7 @@
name = next(namer)
filename = _os.path.join(dir, name)
try:
- fd = _os.open(filename, flags, 0o600)
+ fd = _os.open(filename, _bin_openflags, 0o600)
fp = _io.open(fd, 'wb')
fp.write(b'blat')
fp.close()
@@ -434,10 +433,7 @@
if dir is None:
dir = gettempdir()
- if 'b' in mode:
- flags = _bin_openflags
- else:
- flags = _text_openflags
+ flags = _bin_openflags
# Setting O_TEMPORARY in the flags causes the OS to delete
# the file when it is closed. This is only supported by Windows.
@@ -475,10 +471,7 @@
if dir is None:
dir = gettempdir()
- if 'b' in mode:
- flags = _bin_openflags
- else:
- flags = _text_openflags
+ flags = _bin_openflags
(fd, name) = _mkstemp_inner(dir, prefix, suffix, flags)
try: