summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDannyDaemonic <DannyDaemonic@gmail.com>2023-08-10 13:11:36 -0700
committerGitHub <noreply@github.com>2023-08-10 13:11:36 -0700
commit9ca4abed893685692f90413e4d43153af12342d9 (patch)
tree8ad327abdd9571b21686c80c26888adb7ef36fd1
parente59fcb2bc129881f4a269fee748fb38bce0a64de (diff)
Handle `ENABLE_VIRTUAL_TERMINAL_PROCESSING` more gracefully on earlier versions of Windows.
-rw-r--r--examples/console.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/examples/console.cpp b/examples/console.cpp
index 8966b107..8efa2a67 100644
--- a/examples/console.cpp
+++ b/examples/console.cpp
@@ -10,6 +10,9 @@
#include <windows.h>
#include <fcntl.h>
#include <io.h>
+#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
+#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
+#endif
#else
#include <climits>
#include <sys/ioctl.h>
@@ -68,9 +71,10 @@ namespace console {
}
}
if (hConsole) {
- // Enable ANSI colors on Windows 10+
- if (advanced_display && !(dwMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING)) {
- SetConsoleMode(hConsole, dwMode | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
+ // Check conditions combined to reduce nesting
+ if (advanced_display && !(dwMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING) &&
+ !SetConsoleMode(hConsole, dwMode | ENABLE_VIRTUAL_TERMINAL_PROCESSING)) {
+ advanced_display = false;
}
// Set console output codepage to UTF8
SetConsoleOutputCP(CP_UTF8);