diff options
author | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2016-07-15 23:07:21 +0530 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-07-15 20:37:21 +0300 |
commit | 7217620e23db78ed832e3e81b1deb54b5f28b0ed (patch) | |
tree | 51e097eba2392fb7589303be8e71816593010673 | |
parent | 5351b091a8100ddfeedae179776665989e03b343 (diff) | |
download | meson-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.py | 10 |
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, |