summaryrefslogtreecommitdiffstats
path: root/platform/windows/detect.py
diff options
context:
space:
mode:
Diffstat (limited to 'platform/windows/detect.py')
-rw-r--r--platform/windows/detect.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index 9aa32a7b2d..f34d479345 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -411,10 +411,13 @@ def configure_msvc(env: "SConsEnvironment", vcvars_msvc_config):
ret = old_spawn(sh, escape, cmd, args, env)
try:
- with open(tmp_stdout_name, "rt", encoding=sys.stdout.encoding) as tmp_stdout:
- # First line is always bloat, subsequent lines are always errors. This filter sends
- # either just the errors to stderr, or an empty string to effectively do nothing.
- sys.stderr.write("".join(tmp_stdout.readlines()[1:]))
+ with open(tmp_stdout_name, "rb") as tmp_stdout:
+ # First line is always bloat, subsequent lines are always errors. If content
+ # exists after discarding the first line, safely decode & send to stderr.
+ tmp_stdout.readline()
+ content = tmp_stdout.read()
+ if content:
+ sys.stderr.write(content.decode(sys.stdout.encoding, "replace"))
os.remove(tmp_stdout_name)
except OSError:
pass