]> granicus.if.org Git - python/commitdiff
The command can now either be a string (as before) or a list of
authorGuido van Rossum <guido@python.org>
Thu, 18 Sep 1997 20:00:39 +0000 (20:00 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 18 Sep 1997 20:00:39 +0000 (20:00 +0000)
arguments for execvp (for those who don't want the shell's argument
parsing).

Lib/popen2.py

index ae89f949340f57d72db595a45ab746c64e53bca6..b5defbc38d524e5006f18b2db680a6f629f79ae8 100644 (file)
@@ -12,7 +12,8 @@ def _cleanup():
 
 class Popen3:
     def __init__(self, cmd, capturestderr=0):
-       cmd = ['/bin/sh', '-c', cmd]
+       if type(cmd) == type(''):
+           cmd = ['/bin/sh', '-c', cmd]
        p2cread, p2cwrite = os.pipe()
        c2pread, c2pwrite = os.pipe()
        if capturestderr:
@@ -34,7 +35,7 @@ class Popen3:
                    os.close(i)
                except: pass
            try:
-               os.execv(cmd[0], cmd)
+               os.execvp(cmd[0], cmd)
            finally:
                os._exit(1)
            # Shouldn't come here, I guess
@@ -85,7 +86,7 @@ def _test():
     w.close()
     assert r.read() == teststr
     print "testing popen3..."
-    r, w, e = popen3('cat')
+    r, w, e = popen3(['cat'])
     w.write(teststr)
     w.close()
     assert r.read() == teststr