detect_locale crash fix

This commit is contained in:
@clasher113
2025-01-28 16:09:45 +02:00
parent dece2e25bc
commit fac95c1c36
+8 -4
View File
@@ -65,17 +65,21 @@ int platform::get_process_id() {
#else // _WIN32 #else // _WIN32
#include <unistd.h> #include <unistd.h>
#include "frontend/locale.hpp"
void platform::configure_encoding() { void platform::configure_encoding() {
} }
std::string platform::detect_locale() { std::string platform::detect_locale() {
std::string programLocaleName = setlocale(LC_ALL, nullptr); const char* const programLocaleName = setlocale(LC_ALL, nullptr);
std::string preferredLocaleName = const char* const preferredLocaleName =
setlocale(LC_ALL, ""); // locale name format: ll_CC.encoding 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) { void platform::sleep(size_t millis) {