summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2009-01-21 18:39:33 (GMT)
committerSteven Knight <knight@baldmt.com>2009-01-21 18:39:33 (GMT)
commit822db5957c0664cd8fed18bd2de4128ccc1d59e2 (patch)
treef28aa2e9a76819db2b6ca7f44b992e093dd9c342 /src
parent6fd27b4af8a802c28743c3d334cf35b1afa2813c (diff)
downloadSCons-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.py6
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: