Windows: Don't re-attach stdio when piping output (#1812)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled

This commit is contained in:
Luminyx 2026-02-18 21:30:45 -05:00 committed by GitHub
parent 3b5c6f5246
commit cd5838fc7f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -167,18 +167,28 @@ void UnitTests()
bool isConsoleConnected = false;
void requireConsole()
{
#if BOOST_OS_WINDOWS
if (isConsoleConnected)
return;
#if BOOST_OS_WINDOWS
if (isConsoleConnected)
return;
if (AttachConsole(ATTACH_PARENT_PROCESS) != FALSE)
{
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
isConsoleConnected = true;
}
#endif
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD dwFileType = GetFileType(hOut);
if (dwFileType == FILE_TYPE_UNKNOWN || dwFileType == FILE_TYPE_CHAR)
{
if (AttachConsole(ATTACH_PARENT_PROCESS) != FALSE)
{
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
freopen("CONIN$", "r", stdin);
isConsoleConnected = true;
}
}
else
{
isConsoleConnected = true;
}
#endif
}
void HandlePostUpdate()