interpretor: Use the stdout/stderr locale to decode to string (#638)

Fixes a decode error with locales other than en_US on Windows
pull/627/head
Nirbheek Chauhan 9 years ago committed by Jussi Pakkanen
parent 5351b091a8
commit 7217620e23
  1. 10
      mesonbuild/interpreter.py

@ -120,8 +120,14 @@ class RunProcess(InterpreterObject):
pc = self.run_command(command_array, source_dir, build_dir, subdir, in_builddir)
(stdout, stderr) = pc.communicate()
self.returncode = pc.returncode
self.stdout = stdout.decode().replace('\r\n', '\n')
self.stderr = stderr.decode().replace('\r\n', '\n')
if sys.stdout.encoding:
self.stdout = stdout.decode(encoding=sys.stdout.encoding, errors='ignore').replace('\r\n', '\n')
else:
self.stdout = stdout.decode(errors='ignore').replace('\r\n', '\n')
if sys.stderr.encoding:
self.stderr = stderr.decode(encoding=sys.stderr.encoding, errors='ignore').replace('\r\n', '\n')
else:
self.stderr = stderr.decode(errors='ignore').replace('\r\n', '\n')
self.methods.update({'returncode' : self.returncode_method,
'stdout' : self.stdout_method,
'stderr' : self.stderr_method,

Loading…
Cancel
Save