From 622c711ccfa9ce42b9d6b20bca0085f804f66e59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Vanda=C3=ABle?= Date: Wed, 12 Aug 2026 19:12:42 +0200 Subject: Fix crashes when using `std::locale{""}` with an invalid LC_ALL --- Source/Core/Common/LocaleUtil.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Source/Core/Common/LocaleUtil.cpp (limited to 'Source/Core/Common/LocaleUtil.cpp') diff --git a/Source/Core/Common/LocaleUtil.cpp b/Source/Core/Common/LocaleUtil.cpp new file mode 100644 index 0000000000..b6d923f709 --- /dev/null +++ b/Source/Core/Common/LocaleUtil.cpp @@ -0,0 +1,27 @@ +// Copyright 2026 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "Common/LocaleUtil.h" + +#include + +namespace Common +{ +std::locale GetEnvironmentLocale() +{ +#ifdef _WIN32 + if (_locale_t loc = _create_locale(LC_ALL, "")) + { + _free_locale(loc); + return std::locale{""}; + } +#else + if (locale_t loc = newlocale(LC_ALL_MASK, "", static_cast(0))) + { + freelocale(loc); + return std::locale{""}; + } +#endif + return std::locale::classic(); +} +} // Namespace Common -- cgit v1.2.3