Do the Windows oldnames workaround through the C++ GNULIB_NAMESPACE.
[gnulib.git] / m4 / iconv_open.m4
blob2d2f5e1f391a9fe8f9b16200444753422d93d9e8
1 # iconv_open.m4 serial 16
2 dnl Copyright (C) 2007-2020 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 AC_DEFUN([gl_FUNC_ICONV_OPEN],
9   AC_REQUIRE([AM_ICONV])
10   AC_REQUIRE([AC_CANONICAL_HOST])
11   AC_REQUIRE([gl_ICONV_H_DEFAULTS])
12   if test "$am_cv_func_iconv" = yes; then
13     dnl Provide the <iconv.h> override, for the sake of the C++ aliases.
14     gl_REPLACE_ICONV_H
15     dnl Test whether iconv_open accepts standardized encoding names.
16     dnl We know that GNU libiconv and GNU libc do.
17     AC_EGREP_CPP([gnu_iconv], [
18       #include <iconv.h>
19       #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__)
20        gnu_iconv
21       #endif
22       ], [gl_func_iconv_gnu=yes], [gl_func_iconv_gnu=no])
23     if test $gl_func_iconv_gnu = no; then
24       iconv_flavor=
25       case "$host_os" in
26         aix*)         iconv_flavor=ICONV_FLAVOR_AIX ;;
27         irix*)        iconv_flavor=ICONV_FLAVOR_IRIX ;;
28         hpux*)        iconv_flavor=ICONV_FLAVOR_HPUX ;;
29         osf*)         iconv_flavor=ICONV_FLAVOR_OSF ;;
30         solaris*)     iconv_flavor=ICONV_FLAVOR_SOLARIS ;;
31         openedition*) iconv_flavor=ICONV_FLAVOR_ZOS ;;
32       esac
33       if test -n "$iconv_flavor"; then
34         AC_DEFINE_UNQUOTED([ICONV_FLAVOR], [$iconv_flavor],
35           [Define to a symbolic name denoting the flavor of iconv_open()
36            implementation.])
37         gl_REPLACE_ICONV_OPEN
38       fi
39     fi
40     m4_ifdef([gl_FUNC_ICONV_OPEN_UTF_SUPPORT], [
41       gl_FUNC_ICONV_OPEN_UTF_SUPPORT
42       case "$gl_cv_func_iconv_supports_utf" in
43         *yes) ;;
44         *)
45           REPLACE_ICONV_UTF=1
46           AC_DEFINE([REPLACE_ICONV_UTF], [1],
47             [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.])
48           REPLACE_ICONV=1
49           gl_REPLACE_ICONV_OPEN
50           ;;
51       esac
52     ])
53   fi
56 AC_DEFUN([gl_REPLACE_ICONV_OPEN],
58   gl_REPLACE_ICONV_H
59   REPLACE_ICONV_OPEN=1