Move console attachment to main and only perform if running in a terminal. (!102)

This commit is contained in:
Adam Honse 2020-08-05 21:49:11 -05:00
parent 8168e1cadb
commit 8667211180
2 changed files with 14 additions and 10 deletions

10
cli.cpp
View file

@ -1016,16 +1016,6 @@ unsigned int cli_main(int argc, char *argv[], std::vector<RGBController *> &rgb_
profile_manager = profile_manager_in;
network_server = network_server_in;
/*---------------------------------------------------------*\
| Windows only - Attach console output |
\*---------------------------------------------------------*/
#ifdef _WIN32
AttachConsole(-1);
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
#endif
/*---------------------------------------------------------*\
| Process the argument options |
\*---------------------------------------------------------*/

View file

@ -127,6 +127,20 @@ bool AttemptLocalConnection(std::vector<RGBController*> &rgb_controllers)
int main(int argc, char* argv[])
{
#ifdef _WIN32
/*---------------------------------------------------------*\
| Windows only - Attach console output |
\*---------------------------------------------------------*/
if (AttachConsole(ATTACH_PARENT_PROCESS))
{
/*---------------------------------------------------------*\
| We are running under some terminal context; otherwise |
| leave the GUI and CRT alone |
\*---------------------------------------------------------*/
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
}
std::thread * InitializeTimerResolutionThread;
InitializeTimerResolutionThread = new std::thread(InitializeTimerResolutionThreadFunction);
InitializeTimerResolutionThread->detach();