Make console UTF-8 & VT sequences work reliably on Windows

This commit is contained in:
PJB3005
2026-02-24 14:54:53 +01:00
parent 04fdee9d5a
commit bc8d5a2dce
2 changed files with 20 additions and 0 deletions
+1
View File
@@ -29,6 +29,7 @@ elseif (MSVC)
add_compile_options(/Zc:strictStrings-)
add_compile_options(/MP)
add_compile_options(/W0)
add_compile_options(/utf-8)
endif ()
if (NOT MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error -Wno-c++11-narrowing")
+19
View File
@@ -1,5 +1,24 @@
#if _WIN32
#define WINDOWS_LEAN_AND_MEAN
#include <Windows.h>
#endif
int game_main(int argc, char* argv[]);
void WindowsSetupConsole();
int main(int argc, char* argv[]) {
WindowsSetupConsole();
return game_main(argc, argv);
}
void WindowsSetupConsole() {
#if _WIN32
SetConsoleOutputCP(CP_UTF8);
auto stdout = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD consoleMode;
GetConsoleMode(stdout, &consoleMode);
SetConsoleMode(stdout, consoleMode | ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
#endif
}