aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek.chauhan@gmail.com>2016-07-15 23:07:21 +0530
committerJussi Pakkanen <jpakkane@gmail.com>2016-07-15 20:37:21 +0300
commit7217620e23db78ed832e3e81b1deb54b5f28b0ed (patch)
tree51e097eba2392fb7589303be8e71816593010673
parent5351b091a8100ddfeedae179776665989e03b343 (diff)
downloadmeson-7217620e23db78ed832e3e81b1deb54b5f28b0ed.zip
meson-7217620e23db78ed832e3e81b1deb54b5f28b0ed.tar.gz
meson-7217620e23db78ed832e3e81b1deb54b5f28b0ed.tar.bz2
interpretor: Use the stdout/stderr locale to decode to string (#638)
Fixes a decode error with locales other than en_US on Windows
-rw-r--r--mesonbuild/interpreter.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index df4cb0d..2fd835f 100644
--- a/mesonbuild/interpreter.py
+++ b/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,