])
fi
+ if test -z "$iconv_impl_name"; then
+ AC_MSG_CHECKING([if using IBM iconv])
+ php_iconv_old_ld="$LDFLAGS"
+ LDFLAGS="-liconv $LDFLAGS"
+ AC_TRY_LINK([#include <iconv.h>],[cstoccsid("");],
+ [
+ AC_MSG_RESULT(yes)
+ iconv_impl_name="ibm"
+ ],[
+ AC_MSG_RESULT(no)
+ LDFLAGS="$php_iconv_old_ld"
+ ])
+ fi
+
echo > ext/iconv/php_have_bsd_iconv.h
echo > ext/iconv/php_have_glibc_iconv.h
echo > ext/iconv/php_have_libiconv.h
+ echo > ext/iconv/php_have_ibm_iconv.h
case "$iconv_impl_name" in
gnu_libiconv [)]
PHP_DEFINE([PHP_ICONV_IMPL],[\"glibc\"],[ext/iconv])
AC_DEFINE([PHP_ICONV_IMPL],["glibc"],[Which iconv implementation to use])
;;
+ ibm [)]
+ PHP_DEFINE([HAVE_IBM_ICONV],1,[ext/iconv])
+ AC_DEFINE([HAVE_IBM_ICONV],1,[IBM iconv implementation])
+ PHP_DEFINE([PHP_ICONV_IMPL],[\"IBM iconv\"],[ext/iconv])
+ AC_DEFINE([PHP_ICONV_IMPL],["IBM iconv"],[Which iconv implementation to use])
+ ;;
esac
AC_MSG_CHECKING([if iconv supports errno])
goto out;
}
- cd_pl = iconv_open("ASCII", enc);
+ cd_pl = iconv_open(ICONV_ASCII_ENCODING, enc);
if (cd_pl == (iconv_t)(-1)) {
#if ICONV_SUPPORTS_ERRNO
if (errno == EINVAL) {
*next_pos = NULL;
}
- cd_pl = iconv_open(enc, "ASCII");
+ cd_pl = iconv_open(enc, ICONV_ASCII_ENCODING);
if (cd_pl == (iconv_t)(-1)) {
#if ICONV_SUPPORTS_ERRNO
#include "ext/iconv/php_have_libiconv.h"
#include "ext/iconv/php_have_glibc_iconv.h"
#include "ext/iconv/php_have_bsd_iconv.h"
+#include "ext/iconv/php_have_ibm_iconv.h"
#include "ext/iconv/php_iconv_supports_errno.h"
#include "ext/iconv/php_php_iconv_impl.h"
#include "ext/iconv/php_php_iconv_h_path.h"
#define ICONVG(v) (iconv_globals.v)
#endif
-#define ICONV_INPUT_ENCODING "ISO-8859-1"
-#define ICONV_OUTPUT_ENCODING "ISO-8859-1"
-#define ICONV_INTERNAL_ENCODING "ISO-8859-1"
+#ifdef HAVE_IBM_ICONV
+# define ICONV_INPUT_ENCODING "ISO8859-1"
+# define ICONV_OUTPUT_ENCODING "ISO8859-1"
+# define ICONV_INTERNAL_ENCODING "ISO8859-1"
+# define ICONV_ASCII_ENCODING "IBM-850"
+#else
+# define ICONV_INPUT_ENCODING "ISO-8859-1"
+# define ICONV_OUTPUT_ENCODING "ISO-8859-1"
+# define ICONV_INTERNAL_ENCODING "ISO-8859-1"
+# define ICONV_ASCII_ENCODING "ASCII"
+#endif
#ifndef ICONV_CSNMAXLEN
#define ICONV_CSNMAXLEN 64