diff options
author | Steven Knight <knight@baldmt.com> | 2009-01-21 18:39:33 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2009-01-21 18:39:33 (GMT) |
commit | 822db5957c0664cd8fed18bd2de4128ccc1d59e2 (patch) | |
tree | f28aa2e9a76819db2b6ca7f44b992e093dd9c342 /src | |
parent | 6fd27b4af8a802c28743c3d334cf35b1afa2813c (diff) | |
download | SCons-822db5957c0664cd8fed18bd2de4128ccc1d59e2.zip SCons-822db5957c0664cd8fed18bd2de4128ccc1d59e2.tar.gz SCons-822db5957c0664cd8fed18bd2de4128ccc1d59e2.tar.bz2 |
Fix shelling out to non-.exe commands from --interactive mode on
Windows by accomodating platform-specific behavior in the way
subprocess.Popen() calls handle shell= arguments with lists.
Diffstat (limited to 'src')
-rw-r--r-- | src/engine/SCons/Script/Interactive.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/engine/SCons/Script/Interactive.py b/src/engine/SCons/Script/Interactive.py index 98a312b..05c5807 100644 --- a/src/engine/SCons/Script/Interactive.py +++ b/src/engine/SCons/Script/Interactive.py @@ -354,7 +354,11 @@ class SConsInteractiveCmd(cmd.Cmd): if not argv: argv = os.environ[self.shell_variable] try: - p = subprocess.Popen(argv) + # Per "[Python-Dev] subprocess insufficiently platform-independent?" + # http://mail.python.org/pipermail/python-dev/2008-August/081979.html "+ + # Doing the right thing with an argument list currently + # requires different shell= values on Windows and Linux. + p = subprocess.Popen(argv, shell=(sys.platform=='win32')) except EnvironmentError, e: sys.stderr.write('scons: %s: %s\n' % (argv[0], e.strerror)) else: |