util/unicode.cpp: string_view treatment for the last two holdouts.

This commit is contained in:
Vas Crabb 2021-10-09 14:27:37 +11:00
parent 30dad180dd
commit cfab5b6c03
2 changed files with 6 additions and 6 deletions

View File

@ -454,14 +454,14 @@ int utf16f_from_uchar(char16_t *utf16string, size_t count, char32_t uchar)
// wstring_from_utf8 // wstring_from_utf8
//------------------------------------------------- //-------------------------------------------------
std::wstring wstring_from_utf8(const std::string &utf8string) std::wstring wstring_from_utf8(std::string_view utf8string)
{ {
#ifdef _WIN32 #ifdef _WIN32
// for some reason, using codecvt yields bad results on MinGW (but not MSVC) // for some reason, using codecvt yields bad results on MinGW (but not MSVC)
return osd::text::to_wstring(utf8string); return osd::text::to_wstring(utf8string);
#else #else
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.from_bytes(utf8string); return converter.from_bytes(string.data(), string.data() + string.length());
#endif #endif
} }
@ -470,14 +470,14 @@ std::wstring wstring_from_utf8(const std::string &utf8string)
// utf8_from_wstring // utf8_from_wstring
//------------------------------------------------- //-------------------------------------------------
std::string utf8_from_wstring(const std::wstring &string) std::string utf8_from_wstring(std::wstring_view string)
{ {
#ifdef _WIN32 #ifdef _WIN32
// for some reason, using codecvt yields bad results on MinGW (but not MSVC) // for some reason, using codecvt yields bad results on MinGW (but not MSVC)
return osd::text::from_wstring(string); return osd::text::from_wstring(string);
#else #else
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.to_bytes(string); return converter.to_bytes(string.data(), string.data() + string.length());
#endif #endif
} }

View File

@ -68,8 +68,8 @@ int utf16_from_uchar(char16_t *utf16string, size_t count, char32_t uchar);
int utf16f_from_uchar(char16_t *utf16string, size_t count, char32_t uchar); int utf16f_from_uchar(char16_t *utf16string, size_t count, char32_t uchar);
// converting UTF-8 strings to/from "wide" strings // converting UTF-8 strings to/from "wide" strings
std::wstring wstring_from_utf8(const std::string &utf8string); std::wstring wstring_from_utf8(std::string_view utf8string);
std::string utf8_from_wstring(const std::wstring &string); std::string utf8_from_wstring(std::wstring_view string);
// unicode normalization // unicode normalization
std::string normalize_unicode(const char *s, unicode_normalization_form normalization_form, bool fold_case = false); std::string normalize_unicode(const char *s, unicode_normalization_form normalization_form, bool fold_case = false);