summaryrefslogtreecommitdiffstats
path: root/platform
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-09-18 11:15:22 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-09-18 11:15:22 +0200
commit2c8ab6e7eb11a6d2935e7f9673679194f74b7f07 (patch)
tree1f4ce51026b42d13defe94c0d40f0e74404510c5 /platform
parent922ae7e7b5fb6c8733a7c03a3c797773f97d9162 (diff)
parent28c60a5ff90533bf13e89373336c36f7016c38cc (diff)
downloadredot-engine-2c8ab6e7eb11a6d2935e7f9673679194f74b7f07.tar.gz
Merge pull request #94839 from alvinhochun/win-set-console-mode
Combine existing modes when calling SetConsoleMode
Diffstat (limited to 'platform')
-rw-r--r--platform/windows/console_wrapper_windows.cpp4
-rw-r--r--platform/windows/os_windows.cpp4
2 files changed, 6 insertions, 2 deletions
diff --git a/platform/windows/console_wrapper_windows.cpp b/platform/windows/console_wrapper_windows.cpp
index 1ba09b236b..03e77cb92c 100644
--- a/platform/windows/console_wrapper_windows.cpp
+++ b/platform/windows/console_wrapper_windows.cpp
@@ -65,7 +65,9 @@ int main(int argc, char *argv[]) {
// Enable virtual terminal sequences processing.
HANDLE stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE);
- DWORD out_mode = ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING;
+ DWORD out_mode = 0;
+ GetConsoleMode(stdout_handle, &out_mode);
+ out_mode |= ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(stdout_handle, out_mode);
// Find main executable name and check if it exist.
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index e6e8c6aaef..adc72a79e9 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -2044,7 +2044,9 @@ OS_Windows::OS_Windows(HINSTANCE _hInstance) {
// NOTE: The engine does not use ANSI escape codes to color error/warning messages; it uses Windows API calls instead.
// Therefore, error/warning messages are still colored on Windows versions older than 10.
HANDLE stdoutHandle = GetStdHandle(STD_OUTPUT_HANDLE);
- DWORD outMode = ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING;
+ DWORD outMode = 0;
+ GetConsoleMode(stdoutHandle, &outMode);
+ outMode |= ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING;
if (!SetConsoleMode(stdoutHandle, outMode)) {
// Windows 8.1 or below, or Windows 10 prior to Anniversary Update.
print_verbose("Can't set the ENABLE_VIRTUAL_TERMINAL_PROCESSING Windows console mode. `print_rich()` will not work as expected.");