- set locale to US English UTF-8 for POSIX targets

Locale-dependent standard library functions didn't treat UTF-8 strings correctly, e.g. iswalpha() returns 0 for any non-latin letter
The same function from MSVC runtime classifies such characters as alphabetic even with C locale

https://forum.zdoom.org/viewtopic.php?t=65641&start=18#p1115930
This commit is contained in:
alexey.lysiuk 2019-08-23 12:11:25 +03:00
parent 1595bf30c6
commit 80ef9ca686
2 changed files with 4 additions and 4 deletions

View file

@ -199,8 +199,8 @@ int OriginalMain(int argc, char** argv)
// Set LC_NUMERIC environment variable in case some library decides to
// clear the setlocale call at least this will be correct.
// Note that the LANG environment variable is overridden by LC_*
setenv("LC_NUMERIC", "C", 1);
setlocale(LC_ALL, "C");
setenv("LC_NUMERIC", "en_US.UTF-8", 1);
setlocale(LC_ALL, "en_US.UTF-8");
// Set reasonable default values for video settings

View file

@ -170,9 +170,9 @@ int main (int argc, char **argv)
// Set LC_NUMERIC environment variable in case some library decides to
// clear the setlocale call at least this will be correct.
// Note that the LANG environment variable is overridden by LC_*
setenv ("LC_NUMERIC", "C", 1);
setenv ("LC_NUMERIC", "en_US.UTF-8", 1);
setlocale (LC_ALL, "C");
setlocale (LC_ALL, "en_US.UTF-8");
if (SDL_Init (0) < 0)
{