From: Amaury Forgeot d'Arc Date: Thu, 18 Jun 2009 22:32:50 +0000 (+0000) Subject: #6189: The subprocess.py module should be kept compatible with python 2.2 X-Git-Tag: v2.7a1~931 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5fe420e34c0827902cd237f9225b25f446288e47;p=python #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) --- diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 27f4efcbb2..58d6c0c262 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, diff --git a/Misc/NEWS b/Misc/NEWS index ab00d383c2..839d81945c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -327,6 +327,8 @@ Core and Builtins Library ------- +- Issue #6189: Restored compatibility of subprocess.py with Python 2.2. + - Issue #6287: Added the license field in Distutils documentation. - Issue #6286: Now Distutils upload command is based on urllib2 instead of