#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: