summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/util
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-10-09 14:27:37 +1100
committer Vas Crabb <vas@vastheman.com>2021-10-09 14:27:37 +1100
commitcfab5b6c03c37031b0f1f3e5c59227c551729f8c (patch)
tree0b819bdb3077f84920a7f31a840848e2f64cdf8b /src/lib/util
parent30dad180dd95191770e5ef1e29b096044b024c4f (diff)
util/unicode.cpp: string_view treatment for the last two holdouts.
Diffstat (limited to 'src/lib/util')
-rw-r--r--src/lib/util/unicode.cpp8
-rw-r--r--src/lib/util/unicode.h4
2 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/util/unicode.cpp b/src/lib/util/unicode.cpp
index 3b6f665f63a..ce917ec30aa 100644
--- a/src/lib/util/unicode.cpp
+++ b/src/lib/util/unicode.cpp
@@ -454,14 +454,14 @@ int utf16f_from_uchar(char16_t *utf16string, size_t count, char32_t uchar)
// wstring_from_utf8
//-------------------------------------------------
-std::wstring wstring_from_utf8(const std::string &utf8string)
+std::wstring wstring_from_utf8(std::string_view utf8string)
{
#ifdef _WIN32
// for some reason, using codecvt yields bad results on MinGW (but not MSVC)
return osd::text::to_wstring(utf8string);
#else
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
}
@@ -470,14 +470,14 @@ std::wstring wstring_from_utf8(const std::string &utf8string)
// utf8_from_wstring
//-------------------------------------------------
-std::string utf8_from_wstring(const std::wstring &string)
+std::string utf8_from_wstring(std::wstring_view string)
{
#ifdef _WIN32
// for some reason, using codecvt yields bad results on MinGW (but not MSVC)
return osd::text::from_wstring(string);
#else
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
}
diff --git a/src/lib/util/unicode.h b/src/lib/util/unicode.h
index d6f577289c4..761c809595c 100644
--- a/src/lib/util/unicode.h
+++ b/src/lib/util/unicode.h
@@ -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);
// converting UTF-8 strings to/from "wide" strings
-std::wstring wstring_from_utf8(const std::string &utf8string);
-std::string utf8_from_wstring(const std::wstring &string);
+std::wstring wstring_from_utf8(std::string_view utf8string);
+std::string utf8_from_wstring(std::wstring_view string);
// unicode normalization
std::string normalize_unicode(const char *s, unicode_normalization_form normalization_form, bool fold_case = false);