summaryrefslogtreecommitdiff
path: root/gl/iconv_close.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2012-11-21 23:37:30 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-11-21 23:37:30 +0100
commita53aa1f9a32e47b465d5b6ef3e3f5ed6b918a1c5 (patch)
tree2f9f24ac951e6f939b5403af3eae079d6792a0c1 /gl/iconv_close.c
parent06fdce3411941982c5665d4152bac396bf648d5f (diff)
downloadgnutls-a53aa1f9a32e47b465d5b6ef3e3f5ed6b918a1c5.tar.gz
iconv() will include the UCS2->UTF8 convertion in systems that is not provided.
Diffstat (limited to 'gl/iconv_close.c')
-rw-r--r--gl/iconv_close.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/gl/iconv_close.c b/gl/iconv_close.c
new file mode 100644
index 0000000000..c02f76c649
--- /dev/null
+++ b/gl/iconv_close.c
@@ -0,0 +1,46 @@
+/* Character set conversion.
+ Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include <iconv.h>
+
+#include <stdint.h>
+#ifndef uintptr_t
+# define uintptr_t unsigned long
+#endif
+
+int
+rpl_iconv_close (iconv_t cd)
+#undef iconv_close
+{
+#if REPLACE_ICONV_UTF
+ switch ((uintptr_t) cd)
+ {
+ case (uintptr_t) _ICONV_UTF8_UTF16BE:
+ case (uintptr_t) _ICONV_UTF8_UTF16LE:
+ case (uintptr_t) _ICONV_UTF8_UTF32BE:
+ case (uintptr_t) _ICONV_UTF8_UTF32LE:
+ case (uintptr_t) _ICONV_UTF16BE_UTF8:
+ case (uintptr_t) _ICONV_UTF16LE_UTF8:
+ case (uintptr_t) _ICONV_UTF32BE_UTF8:
+ case (uintptr_t) _ICONV_UTF32LE_UTF8:
+ return 0;
+ }
+#endif
+ return iconv_close (cd);
+}