summaryrefslogtreecommitdiffstats
path: root/src/lib/util/unicode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/util/unicode.cpp')
-rw-r--r--src/lib/util/unicode.cpp32
1 files changed, 12 insertions, 20 deletions
diff --git a/src/lib/util/unicode.cpp b/src/lib/util/unicode.cpp
index c4ee6c56cde..a375224fd1e 100644
--- a/src/lib/util/unicode.cpp
+++ b/src/lib/util/unicode.cpp
@@ -281,18 +281,21 @@ int uchar_from_utf16f(char32_t *uchar, const char16_t *utf16char, size_t count)
// into a Unicode string
//-------------------------------------------------
-std::u32string ustr_from_utf8(const std::string &utf8str)
+std::u32string ustr_from_utf8(std::string_view utf8str)
{
std::u32string result;
- char const *utf8char(utf8str.c_str());
- size_t remaining(utf8str.length());
- while (remaining)
+ if (!utf8str.empty())
{
- char32_t ch;
- int const consumed(uchar_from_utf8(&ch, utf8char, remaining));
- result.append(1, (consumed > 0) ? ch : char32_t(0x00fffdU));
- utf8char += (consumed > 0) ? consumed : 1;
- remaining -= (consumed > 0) ? consumed : 1;
+ char const *utf8char(&utf8str[0]);
+ auto remaining(utf8str.length());
+ while (remaining)
+ {
+ char32_t ch;
+ int const consumed(uchar_from_utf8(&ch, utf8char, remaining));
+ result.append(1, (consumed > 0) ? ch : char32_t(0x00fffdU));
+ utf8char += (consumed > 0) ? consumed : 1;
+ remaining -= (consumed > 0) ? consumed : 1;
+ }
}
return result;
}
@@ -485,17 +488,6 @@ std::string utf8_from_wstring(const std::wstring &string)
// unicode
//-------------------------------------------------
-std::string normalize_unicode(const std::string &s, unicode_normalization_form normalization_form, bool fold_case)
-{
- return internal_normalize_unicode(s.c_str(), s.length(), normalization_form, fold_case, false);
-}
-
-
-//-------------------------------------------------
-// normalize_unicode - uses utf8proc to normalize
-// unicode
-//-------------------------------------------------
-
std::string normalize_unicode(const char *s, unicode_normalization_form normalization_form, bool fold_case)
{
return internal_normalize_unicode(s, 0, normalization_form, fold_case, true);