From 3fa4dad418a5235e5bd7990e3fe755a43fe987e7 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 26 Jun 2015 16:51:18 +0200 Subject: 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. --- src/fs/Charset.hxx | 2 +- src/lib/icu/Converter.cxx | 41 ++--------------------------------------- src/lib/icu/Converter.hxx | 13 ------------- 3 files changed, 3 insertions(+), 53 deletions(-) diff --git a/src/fs/Charset.hxx b/src/fs/Charset.hxx index 6ca5888e5..7ef19eba3 100644 --- a/src/fs/Charset.hxx +++ b/src/fs/Charset.hxx @@ -24,7 +24,7 @@ #include "Compiler.h" #include "Traits.hxx" -#if (defined(HAVE_ICU) || defined(HAVE_ICONV) || defined(HAVE_GLIB)) && !defined(WIN32) +#if (defined(HAVE_ICU) || defined(HAVE_ICONV)) && !defined(WIN32) #define HAVE_FS_CHARSET #endif 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 @@ -77,20 +74,6 @@ IcuConverter::Create(const char *charset, Error &error) return nullptr; } - 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 -DoConvert(GIConv conv, const char *src) -{ - // TODO: dynamic buffer? - char buffer[4096]; - char *in = const_cast(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(-1) || in_left > 0) - return nullptr; - - return AllocatedString<>::Duplicate(buffer, sizeof(buffer) - out_left); -} - #endif AllocatedString @@ -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 #define HAVE_ICU_CONVERTER -#elif defined(HAVE_GLIB) -#include -#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); -- cgit v1.2.3