From 3b50f7dfa6b95fba6fbbb2ca450df650df86aa5c Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Sun, 21 Mar 2021 15:05:12 +0600 Subject: [PATCH] SDL: Don't write garbage to output if it is redirected --- src/common/platform/posix/sdl/i_system.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/common/platform/posix/sdl/i_system.cpp b/src/common/platform/posix/sdl/i_system.cpp index 1dc656a697..b2f0d84360 100644 --- a/src/common/platform/posix/sdl/i_system.cpp +++ b/src/common/platform/posix/sdl/i_system.cpp @@ -175,10 +175,11 @@ void I_PrintStr(const char *cp) { const char * srcp = cp; FString printData = ""; + bool terminal = isatty(STDOUT_FILENO); while (*srcp != 0) { - if (*srcp == 0x1c && con_printansi) + if (*srcp == 0x1c && con_printansi && terminal) { srcp += 1; EColorRange range = V_ParseFontColor((const uint8_t*&)srcp, CR_UNTRANSLATED, CR_YELLOW); @@ -224,7 +225,7 @@ void I_PrintStr(const char *cp) if (StartScreen) CleanProgressBar(); fputs(printData.GetChars(),stdout); - fputs("\033[0m",stdout); + if (terminal) fputs("\033[0m",stdout); if (StartScreen) RedrawProgressBar(ProgressBarCurPos,ProgressBarMaxPos); }