Merged revisions 86274,86276 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86274 | eric.araujo | 2010-11-06 16:57:52 +0100 (sam., 06 nov. 2010) | 2 lines

  Correct the fix for #10252: Popen objects have no close method.
........
  r86276 | eric.araujo | 2010-11-06 19:03:52 +0100 (sam., 06 nov. 2010) | 2 lines

  Fix #10252 again (hopefully definitely).  Patch by Brian Curtin.
........
This commit is contained in:
Éric Araujo 2010-11-12 20:27:45 +00:00
parent b89e4fc4e9
commit e84e72f95a
1 changed files with 17 additions and 14 deletions

View File

@ -267,21 +267,24 @@ def query_vcvarsall(version, arch="x86"):
stdout, stderr = popen.communicate() stdout, stderr = popen.communicate()
if popen.wait() != 0: if popen.wait() != 0:
raise DistutilsPlatformError(stderr.decode("mbcs")) raise DistutilsPlatformError(stderr.decode("mbcs"))
finally:
popen.close()
stdout = stdout.decode("mbcs") stdout = stdout.decode("mbcs")
for line in stdout.split("\n"): for line in stdout.split("\n"):
line = Reg.convert_mbcs(line) line = Reg.convert_mbcs(line)
if '=' not in line: if '=' not in line:
continue continue
line = line.strip() line = line.strip()
key, value = line.split('=', 1) key, value = line.split('=', 1)
key = key.lower() key = key.lower()
if key in interesting: if key in interesting:
if value.endswith(os.pathsep): if value.endswith(os.pathsep):
value = value[:-1] value = value[:-1]
result[key] = removeDuplicates(value) result[key] = removeDuplicates(value)
finally:
popen.stdin.close()
popen.stdout.close()
popen.stderr.close()
if len(result) != len(interesting): if len(result) != len(interesting):
raise ValueError(str(list(result.keys()))) raise ValueError(str(list(result.keys())))