diff options
author | Max Kellermann <max@duempel.org> | 2014-11-30 10:53:05 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-11-30 10:53:05 +0100 |
commit | c641ca90a99bd9f7f5e62bea0b84766b948c6db3 (patch) | |
tree | b1f3cb1f57ba5c73d0386c9f3ae466fc76d4dcbe /src/lib/icu/Collate.cxx | |
parent | 87c88fcb27692a21060b9824d3d14b9fa2d22e60 (diff) | |
download | mpd-c641ca90a99bd9f7f5e62bea0b84766b948c6db3.tar.gz mpd-c641ca90a99bd9f7f5e62bea0b84766b948c6db3.tar.xz mpd-c641ca90a99bd9f7f5e62bea0b84766b948c6db3.zip |
lib/icu/Collate: move code to Util.cxx
Diffstat (limited to '')
-rw-r--r-- | src/lib/icu/Collate.cxx | 45 |
1 files changed, 1 insertions, 44 deletions
diff --git a/src/lib/icu/Collate.cxx b/src/lib/icu/Collate.cxx index b8560a4d8..1dde5d5e2 100644 --- a/src/lib/icu/Collate.cxx +++ b/src/lib/icu/Collate.cxx @@ -21,6 +21,7 @@ #include "Collate.hxx" #ifdef HAVE_ICU +#include "Util.hxx" #include "Error.hxx" #include "util/WritableBuffer.hxx" #include "util/ConstBuffer.hxx" @@ -71,50 +72,6 @@ IcuCollateFinish() ucol_close(collator); } -static WritableBuffer<UChar> -UCharFromUTF8(const char *src) -{ - assert(src != nullptr); - - const size_t src_length = strlen(src); - const size_t dest_capacity = src_length; - UChar *dest = new UChar[dest_capacity]; - - UErrorCode error_code = U_ZERO_ERROR; - int32_t dest_length; - u_strFromUTF8(dest, dest_capacity, &dest_length, - src, src_length, - &error_code); - if (U_FAILURE(error_code)) { - delete[] dest; - return nullptr; - } - - return { dest, size_t(dest_length) }; -} - -static WritableBuffer<char> -UCharToUTF8(ConstBuffer<UChar> src) -{ - assert(!src.IsNull()); - - /* worst-case estimate */ - size_t dest_capacity = 4 * src.size; - - char *dest = new char[dest_capacity]; - - UErrorCode error_code = U_ZERO_ERROR; - int32_t dest_length; - u_strToUTF8(dest, dest_capacity, &dest_length, src.data, src.size, - &error_code); - if (U_FAILURE(error_code)) { - delete[] dest; - return nullptr; - } - - return { dest, size_t(dest_length) }; -} - #endif gcc_pure |