From fac95c1c3604877baadc22a8128419daa754344a Mon Sep 17 00:00:00 2001 From: "@clasher113" Date: Tue, 28 Jan 2025 16:09:45 +0200 Subject: [PATCH] detect_locale crash fix --- src/util/platform.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/util/platform.cpp b/src/util/platform.cpp index 061c78e2..77513fa9 100644 --- a/src/util/platform.cpp +++ b/src/util/platform.cpp @@ -65,17 +65,21 @@ int platform::get_process_id() { #else // _WIN32 #include +#include "frontend/locale.hpp" void platform::configure_encoding() { } std::string platform::detect_locale() { - std::string programLocaleName = setlocale(LC_ALL, nullptr); - std::string preferredLocaleName = + const char* const programLocaleName = setlocale(LC_ALL, nullptr); + const char* const preferredLocaleName = setlocale(LC_ALL, ""); // locale name format: ll_CC.encoding - setlocale(LC_ALL, programLocaleName.c_str()); + if (programLocaleName && preferredLocaleName) { + setlocale(LC_ALL, programLocaleName); - return preferredLocaleName.substr(0, 5); + return std::string(preferredLocaleName, 5); + } + return langs::FALLBACK_DEFAULT; } void platform::sleep(size_t millis) {