summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2016-12-20 17:04:17 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2016-12-20 17:04:17 (GMT)
commit3deb6fd49267e9af0f3d40bf4f7bd12247a9975d (patch)
treef761318699cf77182910c80f76b38d400d76fedd
parentcaebca9a677c846c3d38ca43a065944875aa18ed (diff)
parenta559337466acf9fd91bf266fab72946ebbb64632 (diff)
downloadSCons-3deb6fd49267e9af0f3d40bf4f7bd12247a9975d.zip
SCons-3deb6fd49267e9af0f3d40bf4f7bd12247a9975d.tar.gz
SCons-3deb6fd49267e9af0f3d40bf4f7bd12247a9975d.tar.bz2
Merged in mbyt/scons/python3win32 (pull request #369)
python3 support for win32.py
-rw-r--r--src/engine/SCons/Platform/win32.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/engine/SCons/Platform/win32.py b/src/engine/SCons/Platform/win32.py
index cdbb824..b9defbb 100644
--- a/src/engine/SCons/Platform/win32.py
+++ b/src/engine/SCons/Platform/win32.py
@@ -60,16 +60,8 @@ except AttributeError:
else:
parallel_msg = None
- _builtin_file = file
_builtin_open = open
- class _scons_file(_builtin_file):
- def __init__(self, *args, **kw):
- _builtin_file.__init__(self, *args, **kw)
- win32api.SetHandleInformation(msvcrt.get_osfhandle(self.fileno()),
- win32con.HANDLE_FLAG_INHERIT, 0)
-
-
def _scons_open(*args, **kw):
fp = _builtin_open(*args, **kw)
win32api.SetHandleInformation(msvcrt.get_osfhandle(fp.fileno()),
@@ -77,9 +69,29 @@ else:
0)
return fp
- file = _scons_file
open = _scons_open
+ if sys.version_info.major == 2:
+ _builtin_file = file
+ class _scons_file(_builtin_file):
+ def __init__(self, *args, **kw):
+ _builtin_file.__init__(self, *args, **kw)
+ win32api.SetHandleInformation(msvcrt.get_osfhandle(self.fileno()),
+ win32con.HANDLE_FLAG_INHERIT, 0)
+ file = _scons_file
+ else:
+ import io
+ for io_class in ['BufferedReader', 'BufferedWriter', 'BufferedRWPair',
+ 'BufferedRandom', 'TextIOWrapper']:
+ _builtin_file = getattr(io, io_class)
+ class _scons_file(_builtin_file):
+ def __init__(self, *args, **kw):
+ _builtin_file.__init__(self, *args, **kw)
+ win32api.SetHandleInformation(msvcrt.get_osfhandle(self.fileno()),
+ win32con.HANDLE_FLAG_INHERIT, 0)
+ setattr(io, io_class, _scons_file)
+
+
try:
import threading
spawn_lock = threading.Lock()