Put quotes around arguments that contain white space, for appearance and for Windows...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 29 Jan 2002 16:37:02 +0000 (16:37 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 29 Jan 2002 16:37:02 +0000 (16:37 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@231 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Action.py

index 22c38fac3eac9afc2a7c297f50e00a33d15adaf9..19ec05cd57290eea727ec0fb7e0162ad190bef36 100644 (file)
@@ -140,8 +140,13 @@ elif os.name == 'nt':
             return 127
         else:
             try:
-                args = [ cmd_interp, '/C' ] + args
-                ret = os.spawnve(os.P_WAIT, cmd_interp, args, env)
+
+                a = [ cmd_interp, '/C', args[0] ]
+                for arg in args[1:]:
+                    if ' ' in arg or '\t' in arg:
+                        arg = '"' + arg + '"'
+                    a.append(arg)
+                ret = os.spawnve(os.P_WAIT, cmd_interp, a, env)
             except OSError, e:
                 ret = exitvalmap[e[0]]
                 sys.stderr.write("scons: %s: %s\n" % (cmd, e[1]))
@@ -254,7 +259,12 @@ class CommandAction(ActionBase):
         for cmd_line in cmd_list:
             if len(cmd_line):
                 if print_actions:
-                    self.show(string.join(cmd_line))
+                    cl = []
+                    for arg in cmd_line:
+                        if ' ' in arg or '\t' in arg:
+                            arg = '"' + arg + '"'
+                        cl.append(arg)
+                    self.show(string.join(cl))
                 if execute_actions:
                     try:
                         ENV = kw['env']['ENV']