From 80ef9ca686fb91dff53f4c2e5a6f9cebc510f368 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Fri, 23 Aug 2019 12:11:25 +0300 Subject: [PATCH] - 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 --- src/posix/cocoa/i_main.mm | 4 ++-- src/posix/sdl/i_main.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/posix/cocoa/i_main.mm b/src/posix/cocoa/i_main.mm index 5b4ea31b7..a5e7db2f4 100644 --- a/src/posix/cocoa/i_main.mm +++ b/src/posix/cocoa/i_main.mm @@ -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 diff --git a/src/posix/sdl/i_main.cpp b/src/posix/sdl/i_main.cpp index 572094217..c17ed8be7 100644 --- a/src/posix/sdl/i_main.cpp +++ b/src/posix/sdl/i_main.cpp @@ -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) {