Merge pull request #119 from jsttzsf/bugfix/mbstowcs_deprecation

Replaced mbstowcs with mbstowcs_s
This commit is contained in:
Pranav
2023-02-15 09:09:54 -06:00
committed by GitHub

View File

@@ -309,6 +309,20 @@ static inline int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n) {
}
// convert UTF-8 string to wstring
#ifdef _MSC_VER
static inline std::wstring utf8_decode(const std::string& s) {
std::string curLocale = setlocale(LC_ALL, "");
const char* _Source = s.c_str();
size_t _Dsize = std::strlen(_Source) + 1;
wchar_t* _Dest = new wchar_t[_Dsize];
size_t _Osize;
mbstowcs_s(&_Osize, _Dest, _Dsize, _Source, _Dsize);
std::wstring result = _Dest;
delete[] _Dest;
setlocale(LC_ALL, curLocale.c_str());
return result;
}
#else
static inline std::wstring utf8_decode(const std::string& s) {
std::string curLocale = setlocale(LC_ALL, "");
const char* _Source = s.c_str();
@@ -321,6 +335,7 @@ static inline std::wstring utf8_decode(const std::string &s) {
setlocale(LC_ALL, curLocale.c_str());
return result;
}
#endif
} // namespace details