diff options
author | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2009-06-18 22:32:50 (GMT) |
---|---|---|
committer | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2009-06-18 22:32:50 (GMT) |
commit | 5fe420e34c0827902cd237f9225b25f446288e47 (patch) | |
tree | 3811da1c2dd7299ce1a034d3a14fa1936cedcce7 /Lib/subprocess.py | |
parent | c29863e3a6d3fe076eac4ef42c827ecc38ccc4b1 (diff) | |
download | cpython-5fe420e34c0827902cd237f9225b25f446288e47.zip cpython-5fe420e34c0827902cd237f9225b25f446288e47.tar.gz cpython-5fe420e34c0827902cd237f9225b25f446288e47.tar.bz2 |
#6189: The subprocess.py module should be kept compatible with python 2.2
(On windows, you still have to change one line to use pywin32
instead of the _subprocess helper module)
Diffstat (limited to 'Lib/subprocess.py')
-rw-r--r-- | Lib/subprocess.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 27f4efc..58d6c0c 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -500,7 +500,7 @@ def check_output(*popenargs, **kwargs): """ if 'stdout' in kwargs: raise ValueError('stdout argument not allowed, it will be overridden.') - process = Popen(*popenargs, stdout=PIPE, **kwargs) + process = Popen(stdout=PIPE, *popenargs, **kwargs) output, unused_err = process.communicate() retcode = process.poll() if retcode: @@ -1020,8 +1020,17 @@ class Popen(object): def _close_fds(self, but): - os.closerange(3, but) - os.closerange(but + 1, MAXFD) + if hasattr(os, 'closerange'): + os.closerange(3, but) + os.closerange(but + 1, MAXFD) + else: + for i in xrange(3, MAXFD): + if i == but: + continue + try: + os.close(i) + except: + pass def _execute_child(self, args, executable, preexec_fn, close_fds, |