diff --git a/chat.cpp b/chat.cpp index f2ccf12fc..652481372 100644 --- a/chat.cpp +++ b/chat.cpp @@ -887,11 +887,12 @@ int main(int argc, char ** argv) { sigaction(SIGINT, &sigint_action, NULL); #elif defined (_WIN32) signal(SIGINT, sigint_handler); - //Windows console ANSI color fix - HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); - DWORD mode; - GetConsoleMode(hConsole, &mode); - SetConsoleMode(hConsole, mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING); + + // Windows console ANSI color fix + DWORD mode; + HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); + if (hConsole && hConsole != INVALID_HANDLE_VALUE && GetConsoleMode(hConsole, &mode)) + SetConsoleMode(hConsole, mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING); #endif fprintf(stderr, "%s: interactive mode on.\n", __func__);