diff --git a/src/win32/i_system.cpp b/src/win32/i_system.cpp index 372da86856..c21768f1fe 100644 --- a/src/win32/i_system.cpp +++ b/src/win32/i_system.cpp @@ -1053,6 +1053,30 @@ static TArray bufferedConsoleStuff; void I_PrintStr(const char *cp) { +#ifdef _DEBUG + // Strip out any color escape sequences before writing to debug output + char * copy = new char[strlen(cp)+1]; + const char * srcp = cp; + char * dstp = copy; + + while (*srcp != 0) + { + if (*srcp!=0x1c && *srcp!=0x1d && *srcp!=0x1e && *srcp!=0x1f) + { + *dstp++=*srcp++; + } + else + { + if (srcp[1]!=0) srcp+=2; + else break; + } + } + *dstp=0; + + OutputDebugStringA(copy); + delete [] copy; +#endif // _DEBUG + if (ConWindowHidden) { bufferedConsoleStuff.Push(cp);