From 5bb7beb37931d8a3440944e691212a76989affb5 Mon Sep 17 00:00:00 2001 From: Lev Stipakov Date: Wed, 26 Feb 2020 11:09:14 +0200 Subject: [PATCH] wstring.hpp: workaround for mingw's codecvt_utf8 bug mingw produces incorrect result when converting from utf8 to wchar_t using codecvt_utf8. https://sourceforge.net/p/mingw-w64/bugs/538/ Signed-off-by: Lev Stipakov --- openvpn/common/wstring.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/openvpn/common/wstring.hpp b/openvpn/common/wstring.hpp index 617d2a36..d58832bd 100644 --- a/openvpn/common/wstring.hpp +++ b/openvpn/common/wstring.hpp @@ -33,14 +33,23 @@ namespace openvpn { inline std::wstring from_utf8(const std::string& str) { +#ifdef __MINGW32__ + // https://sourceforge.net/p/mingw-w64/bugs/538/ + typedef std::codecvt_utf8 cvt_type; +#else typedef std::codecvt_utf8 cvt_type; +#endif std::wstring_convert cvt; return cvt.from_bytes(str); } inline std::string to_utf8(const std::wstring& wstr) { +#ifdef __MINGW32__ + typedef std::codecvt_utf8 cvt_type; +#else typedef std::codecvt_utf8 cvt_type; +#endif std::wstring_convert cvt; return cvt.to_bytes(wstr); }