Update win32-utf8.c

I implemented a workaround for the #2027 issue.
This commit is contained in:
Kenichi Maruyama 2023-02-28 18:51:09 +09:00
parent e9b1317613
commit fb388657c8
1 changed files with 18 additions and 1 deletions

View File

@ -7,6 +7,11 @@
#include "console.h"
// previous codepage
UINT g_previous_codepage = 0;
void
mresetlocale(void);
int
vfmprintf(FILE *stream, const char *fmt, va_list ap)
@ -96,6 +101,18 @@ void
msetlocale(void)
{
// allow console output of unicode characters
SetConsoleOutputCP(CP_UTF8);
g_previous_codepage = SetConsoleOutputCP(CP_UTF8);
// register reset function at exit
atexit(mresetlocale);
}
void
mresetlocale(void)
{
if( 0 != g_previous_codepage )
{
// restore console output codepage for previous one
SetConsoleOutputCP(g_previous_codepage);
}
}