From 68c0272e4b60b1eb9cbee62ae1fddbcec4867e69 Mon Sep 17 00:00:00 2001 From: Mats Wichmann Date: Wed, 29 Aug 2018 08:22:09 -0600 Subject: win32 handle exception object correctly Code inspection reveals this problem (4 instances): Class 'OSError' does not define '__getitem__' so the [] operator cannot be used on its instances. Use e.errno for e[0] and e.strerror for e[1]. Signed-off-by: Mats Wichmann --- src/CHANGES.txt | 1 + src/engine/SCons/Platform/win32.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index ab15214..7feec12 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -123,6 +123,7 @@ RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE - fix must_contain tests for py3 - one swig test now checks for Python.h instead of failing - if test opens os.devnull, register with atexit so file opens do not leak. + - win32.py handle exception object appropriately for class From Hao Wu - typo in customized decider example in user guide diff --git a/src/engine/SCons/Platform/win32.py b/src/engine/SCons/Platform/win32.py index 5c877b5..351684a 100644 --- a/src/engine/SCons/Platform/win32.py +++ b/src/engine/SCons/Platform/win32.py @@ -202,9 +202,9 @@ def piped_spawn(sh, escape, cmd, args, env, stdout, stderr): try: ret = exitvalmap[e[0]] except KeyError: - sys.stderr.write("scons: unknown OSError exception code %d - %s: %s\n" % (e[0], cmd, e[1])) + sys.stderr.write("scons: unknown OSError exception code %d - %s: %s\n" % (e.errno, cmd, e.strerror)) if stderr is not None: - stderr.write("scons: %s: %s\n" % (cmd, e[1])) + stderr.write("scons: %s: %s\n" % (cmd, e.strerror)) # copy child output from tempfiles to our streams # and do clean up stuff if stdout is not None and stdoutRedirected == 0: -- cgit v0.12 From f9aa719a202271b6786510a8025e8065cb8835bb Mon Sep 17 00:00:00 2001 From: Mats Wichmann Date: Fri, 31 Aug 2018 08:15:08 -0600 Subject: Convert one more e[0] to e.errno for OSError usage Signed-off-by: Mats Wichmann --- src/engine/SCons/Platform/win32.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/SCons/Platform/win32.py b/src/engine/SCons/Platform/win32.py index 351684a..ea2fd3f 100644 --- a/src/engine/SCons/Platform/win32.py +++ b/src/engine/SCons/Platform/win32.py @@ -200,7 +200,7 @@ def piped_spawn(sh, escape, cmd, args, env, stdout, stderr): except OSError as e: # catch any error try: - ret = exitvalmap[e[0]] + ret = exitvalmap[e.errno] except KeyError: sys.stderr.write("scons: unknown OSError exception code %d - %s: %s\n" % (e.errno, cmd, e.strerror)) if stderr is not None: -- cgit v0.12