From 6df57d2d7d411f45d398c0a8a85e578f4d800828 Mon Sep 17 00:00:00 2001 From: Thaddeus Crews Date: Sat, 13 Apr 2024 08:58:29 -0500 Subject: [PATCH] SCons: Fix `silence_msvc` regression --- platform/windows/detect.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/platform/windows/detect.py b/platform/windows/detect.py index 9aa32a7b2dbf..f34d47934595 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -411,10 +411,13 @@ def spawn_capture(sh, escape, cmd, args, env): 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