set UTF8 code page for I_Printf in Wndows

This commit is contained in:
Roman Fomin 2024-04-16 12:03:36 +07:00
parent 90602d8114
commit 3704eeff92

View File

@ -61,6 +61,7 @@ verbosity_t cfg_verbosity;
static HANDLE hConsole; static HANDLE hConsole;
static DWORD OldMode; static DWORD OldMode;
static boolean vt_mode_enabled = false; static boolean vt_mode_enabled = false;
static UINT OldCodePage;
static void EnableVTMode(void) static void EnableVTMode(void)
{ {
@ -98,6 +99,8 @@ static void RestoreOldMode(void)
static void I_ShutdownPrintf(void) static void I_ShutdownPrintf(void)
{ {
#ifdef _WIN32 #ifdef _WIN32
SetConsoleOutputCP(OldCodePage);
RestoreOldMode(); RestoreOldMode();
#endif #endif
} }
@ -105,6 +108,9 @@ static void I_ShutdownPrintf(void)
void I_InitPrintf(void) void I_InitPrintf(void)
{ {
#ifdef _WIN32 #ifdef _WIN32
OldCodePage = GetConsoleOutputCP();
SetConsoleOutputCP(CP_UTF8);
EnableVTMode(); EnableVTMode();
#endif #endif
@ -115,7 +121,7 @@ void I_InitPrintf(void)
// Print debugging info with maximum verbosity. // Print debugging info with maximum verbosity.
// //
if (M_ParmExists("-verbose") || M_ParmExists("--verbose")) if (M_ParmExists("-verbose"))
{ {
verbosity = VB_MAX; verbosity = VB_MAX;
} }
@ -125,7 +131,7 @@ void I_InitPrintf(void)
// Print with minimum verbosity. // Print with minimum verbosity.
// //
if (M_ParmExists("-quiet") || M_ParmExists("--quiet")) if (M_ParmExists("-quiet"))
{ {
verbosity = VB_ERROR; verbosity = VB_ERROR;
} }