iconv() is part of POSIX.1-2001.
(echo "DOVECOT_INSTALLED=no"; cat dovecot-config.in | sed \
-e "s|\$$(top_builddir)|$$abs_builddir|g" \
-e "s|\$$(incdir)|$$abs_srcdir|g" \
- -e "s|\$$(LIBICONV)|$(LIBICONV)|g" \
-e "s|\$$(MODULE_LIBS)|$(MODULE_LIBS)|g" \
-e "s|^\(dovecot_pkgincludedir\)=|\1=$(pkgincludedir)|" \
-e "s|^\(dovecot_pkglibdir\)=|\1=$(pkglibdir)|" \
#!/bin/sh
-# If you've non-standard directories, set these
-#GETTEXT_DIR=
-
-if ! test -f build-aux/config.rpath; then
- for dir in $GETTEXT_DIR /usr/share/gettext /usr/local/share/gettext; do
- if test -f $dir/config.rpath; then
- /bin/cp -f $dir/config.rpath build-aux/
- break
- fi
- done
-fi
-
autoreconf -vif
])
AC_C_INLINE
LT_INIT
-AM_ICONV
# SIZE_MAX is missing without this
CXXFLAGS="$CXXFLAGS -D__STDC_LIMIT_MACROS"
fi
else
LIBDOVECOT_DEPS="$LIBDOVECOT_LA_LIBS"
- LIBDOVECOT="$LIBDOVECOT_DEPS \$(LIBICONV) \$(MODULE_LIBS)"
+ LIBDOVECOT="$LIBDOVECOT_DEPS \$(MODULE_LIBS)"
LIBDOVECOT_STORAGE_DEPS='$(top_builddir)/src/lib-storage/libstorage.la'
LIBDOVECOT_LOGIN='$(top_builddir)/src/login-common/liblogin.la'
LIBDOVECOT_LDA='$(top_builddir)/src/lib-lda/liblda.la'
-I$(top_srcdir)/src/lib \
-I$(top_srcdir)/src/lib-test
-libcharset_la_LIBADD = $(LTLIBICONV)
libcharset_la_SOURCES = \
charset-iconv.c \
- charset-utf8.c \
- charset-utf8-only.c
+ charset-utf8.c
headers = \
charset-utf8.h \
#include "buffer.h"
#include "charset-utf8-private.h"
-#ifdef HAVE_ICONV
-
#include <iconv.h>
#include <ctype.h>
const unsigned char *src, size_t *src_size, buffer_t *dest,
enum charset_result *result)
{
- ICONV_CONST char *ic_srcbuf;
+ char *ic_srcbuf;
char tmpbuf[8192], *ic_destbuf;
size_t srcleft, destleft, tmpbuf_used;
bool ret = TRUE;
destleft = sizeof(tmpbuf);
ic_destbuf = tmpbuf;
srcleft = *src_size;
- ic_srcbuf = (ICONV_CONST char *) src;
+ ic_srcbuf = (char *) src;
if (iconv(t->cd, &ic_srcbuf, &srcleft,
&ic_destbuf, &destleft) != SIZE_MAX) {
.to_utf8_reset = iconv_charset_to_utf8_reset,
.to_utf8 = iconv_charset_to_utf8,
};
-
-#endif
+++ /dev/null
-/* Copyright (c) 2002-2018 Dovecot authors, see the included COPYING file */
-
-#include "lib.h"
-#include "charset-utf8-private.h"
-
-struct charset_translation {
- normalizer_func_t *normalizer;
-};
-
-static int
-utf8only_charset_to_utf8_begin(const char *charset,
- normalizer_func_t *normalizer,
- struct charset_translation **t_r)
-{
- struct charset_translation *t;
-
- if (!charset_is_utf8(charset)) {
- /* no support for charsets that need translation */
- return -1;
- }
-
- t = i_new(struct charset_translation, 1);
- t->normalizer = normalizer;
- *t_r = t;
- return 0;
-}
-
-static void utf8only_charset_to_utf8_end(struct charset_translation *t)
-{
- i_free(t);
-}
-
-static void
-utf8only_charset_to_utf8_reset(struct charset_translation *t ATTR_UNUSED)
-{
-}
-
-static enum charset_result
-utf8only_charset_to_utf8(struct charset_translation *t,
- const unsigned char *src, size_t *src_size,
- buffer_t *dest)
-{
- return charset_utf8_to_utf8(t->normalizer, src, src_size, dest);
-}
-
-const struct charset_utf8_vfuncs charset_utf8only = {
- .to_utf8_begin = utf8only_charset_to_utf8_begin,
- .to_utf8_end = utf8only_charset_to_utf8_end,
- .to_utf8_reset = utf8only_charset_to_utf8_reset,
- .to_utf8 = utf8only_charset_to_utf8,
-};
#include <ctype.h>
-#ifdef HAVE_ICONV
const struct charset_utf8_vfuncs *charset_utf8_vfuncs = &charset_iconv;
-#else
-const struct charset_utf8_vfuncs *charset_utf8_vfuncs = &charset_utf8only;
-#endif
bool charset_is_utf8(const char *charset)
{