diff options
author | William Deegan <bill@baddogconsulting.com> | 2016-12-20 17:04:17 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2016-12-20 17:04:17 (GMT) |
commit | 3deb6fd49267e9af0f3d40bf4f7bd12247a9975d (patch) | |
tree | f761318699cf77182910c80f76b38d400d76fedd | |
parent | caebca9a677c846c3d38ca43a065944875aa18ed (diff) | |
parent | a559337466acf9fd91bf266fab72946ebbb64632 (diff) | |
download | SCons-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.py | 30 |
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() |