diff options
author | Max Kellermann <max@duempel.org> | 2015-06-26 16:51:18 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2015-06-26 16:51:18 +0200 |
commit | 3fa4dad418a5235e5bd7990e3fe755a43fe987e7 (patch) | |
tree | 4066d36e37bfbd7357e293ad356fe11780d89629 /src/lib | |
parent | 0756607e32ff7f8df3ad21368e00c7e4e60ba203 (diff) | |
download | mpd-3fa4dad418a5235e5bd7990e3fe755a43fe987e7.tar.gz mpd-3fa4dad418a5235e5bd7990e3fe755a43fe987e7.tar.xz mpd-3fa4dad418a5235e5bd7990e3fe755a43fe987e7.zip |
lib/icu/Converter: remove GLib implementation
We don't need this anymore: Win32 doesn't use this library at all, and
everything else has either iconv() or libicu.
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/icu/Converter.cxx | 41 | ||||
-rw-r--r-- | src/lib/icu/Converter.hxx | 13 |
2 files changed, 2 insertions, 52 deletions
diff --git a/src/lib/icu/Converter.cxx b/src/lib/icu/Converter.cxx index 72028c82e..61c0cbdd5 100644 --- a/src/lib/icu/Converter.cxx +++ b/src/lib/icu/Converter.cxx @@ -34,9 +34,6 @@ #elif defined(HAVE_ICONV) #include "util/Domain.hxx" static constexpr Domain iconv_domain("iconv"); -#elif defined(HAVE_GLIB) -#include "util/Domain.hxx" -static constexpr Domain g_iconv_domain("g_iconv"); #endif #ifdef HAVE_ICU @@ -78,20 +75,6 @@ IcuConverter::Create(const char *charset, Error &error) } return new IcuConverter(to, from); -#elif defined(HAVE_GLIB) - GIConv to = g_iconv_open("utf-8", charset); - GIConv from = g_iconv_open(charset, "utf-8"); - if (to == (GIConv)-1 || from == (GIConv)-1) { - if (to != (GIConv)-1) - g_iconv_close(to); - if (from != (GIConv)-1) - g_iconv_close(from); - error.Format(g_iconv_domain, - "Failed to initialize charset '%s'", charset); - return nullptr; - } - - return new IcuConverter(to, from); #endif } @@ -116,26 +99,6 @@ DoConvert(iconv_t conv, const char *src) return AllocatedString<>::Duplicate(buffer, sizeof(buffer) - out_left); } -#elif defined(HAVE_GLIB) - -static AllocatedString<char> -DoConvert(GIConv conv, const char *src) -{ - // TODO: dynamic buffer? - char buffer[4096]; - char *in = const_cast<char *>(src); - char *out = buffer; - size_t in_left = strlen(src); - size_t out_left = sizeof(buffer); - - size_t n = g_iconv(conv, &in, &in_left, &out, &out_left); - - if (n == static_cast<size_t>(-1) || in_left > 0) - return nullptr; - - return AllocatedString<>::Duplicate(buffer, sizeof(buffer) - out_left); -} - #endif AllocatedString<char> @@ -160,7 +123,7 @@ IcuConverter::ToUTF8(const char *s) const const size_t target_length = target - buffer; return UCharToUTF8({buffer, target_length}); -#elif defined(HAVE_ICONV) || defined(HAVE_GLIB) +#elif defined(HAVE_ICONV) return DoConvert(to_utf8, s); #endif } @@ -192,7 +155,7 @@ IcuConverter::FromUTF8(const char *s) const return AllocatedString<>::Duplicate(buffer, target); -#elif defined(HAVE_ICONV) || defined(HAVE_GLIB) +#elif defined(HAVE_ICONV) return DoConvert(from_utf8, s); #endif } diff --git a/src/lib/icu/Converter.hxx b/src/lib/icu/Converter.hxx index d7a9a2113..edb092d8f 100644 --- a/src/lib/icu/Converter.hxx +++ b/src/lib/icu/Converter.hxx @@ -29,9 +29,6 @@ #elif defined(HAVE_ICONV) #include <iconv.h> #define HAVE_ICU_CONVERTER -#elif defined(HAVE_GLIB) -#include <glib.h> -#define HAVE_ICU_CONVERTER #endif #ifdef HAVE_ICU_CONVERTER @@ -64,11 +61,6 @@ class IcuConverter { IcuConverter(iconv_t _to, iconv_t _from) :to_utf8(_to), from_utf8(_from) {} -#elif defined(HAVE_GLIB) - const GIConv to_utf8, from_utf8; - - IcuConverter(GIConv _to, GIConv _from) - :to_utf8(_to), from_utf8(_from) {} #endif public: @@ -79,11 +71,6 @@ public: iconv_close(to_utf8); iconv_close(from_utf8); } -#elif defined(HAVE_GLIB) - ~IcuConverter() { - g_iconv_close(to_utf8); - g_iconv_close(from_utf8); - } #endif static IcuConverter *Create(const char *charset, Error &error); |