From 30e280b694a2706248a8bfe8d2dd683ff7296c93 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 6 Apr 2024 12:42:44 +0200 Subject: [PATCH] Use MT's string conversion inside Irrlicht --- irr/include/irrString.h | 13 ++++++++----- irr/src/CMakeLists.txt | 2 -- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/irr/include/irrString.h b/irr/include/irrString.h index 5bf604e49..a583c9e4b 100644 --- a/irr/include/irrString.h +++ b/irr/include/irrString.h @@ -6,13 +6,18 @@ #include "irrTypes.h" #include +#include #include #include #include #include -#include #include +/* HACK: import these string methods from MT's util/string.h */ +extern std::wstring utf8_to_wide(std::string_view input); +extern std::string wide_to_utf8(std::wstring_view input); +/* */ + namespace irr { namespace core @@ -905,8 +910,7 @@ inline size_t multibyteToWString(stringw &destination, const core::stringc &sour inline size_t utf8ToWString(stringw &destination, const char *source) { - std::wstring_convert> conv; - destination = conv.from_bytes(source); + destination = utf8_to_wide(source); return destination.size(); } @@ -917,8 +921,7 @@ inline size_t utf8ToWString(stringw &destination, const stringc &source) inline size_t wStringToUTF8(stringc &destination, const wchar_t *source) { - std::wstring_convert> conv; - destination = conv.to_bytes(source); + destination = wide_to_utf8(source); return destination.size(); } diff --git a/irr/src/CMakeLists.txt b/irr/src/CMakeLists.txt index 670a755fe..10a841669 100644 --- a/irr/src/CMakeLists.txt +++ b/irr/src/CMakeLists.txt @@ -38,8 +38,6 @@ elseif(MSVC) if(CMAKE_SIZEOF_VOID_P EQUAL 4) add_compile_options(/arch:SSE) endif() - - add_compile_options(/D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING) endif() # Platform-independent configuration (hard-coded currently)