tony2001 Tue Dec 4 11:26:55 2007 UTC Modified files: /php-src/ext/iconv .cvsignore config.m4 iconv.c php_iconv.h Log: detect IBM iconv implementation and use correct encoding names http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/.cvsignore?r1=1.8&r2=1.9&diff_format=u Index: php-src/ext/iconv/.cvsignore diff -u php-src/ext/iconv/.cvsignore:1.8 php-src/ext/iconv/.cvsignore:1.9 --- php-src/ext/iconv/.cvsignore:1.8 Wed Dec 15 02:29:40 2004 +++ php-src/ext/iconv/.cvsignore Tue Dec 4 11:26:54 2007 @@ -48,6 +48,7 @@ *.gcda *.gcno php_have_bsd_iconv.h +php_have_ibm_iconv.h php_have_libiconv.h php_php_iconv_h_path.h php_have_glibc_iconv.h http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/config.m4?r1=1.40&r2=1.41&diff_format=u Index: php-src/ext/iconv/config.m4 diff -u php-src/ext/iconv/config.m4:1.40 php-src/ext/iconv/config.m4:1.41 --- php-src/ext/iconv/config.m4:1.40 Thu Mar 1 11:29:34 2007 +++ php-src/ext/iconv/config.m4 Tue Dec 4 11:26:54 2007 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.40 2007/03/01 11:29:34 tony2001 Exp $ +dnl $Id: config.m4,v 1.41 2007/12/04 11:26:54 tony2001 Exp $ dnl PHP_ARG_WITH(iconv, for iconv support, @@ -79,9 +79,24 @@ ]) 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 [)] @@ -104,6 +119,12 @@ 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]) http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/iconv.c?r1=1.161&r2=1.162&diff_format=u Index: php-src/ext/iconv/iconv.c diff -u php-src/ext/iconv/iconv.c:1.161 php-src/ext/iconv/iconv.c:1.162 --- php-src/ext/iconv/iconv.c:1.161 Thu Nov 1 19:13:28 2007 +++ php-src/ext/iconv/iconv.c Tue Dec 4 11:26:54 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: iconv.c,v 1.161 2007/11/01 19:13:28 tony2001 Exp $ */ +/* $Id: iconv.c,v 1.162 2007/12/04 11:26:54 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1102,7 +1102,7 @@ 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) { @@ -1413,7 +1413,7 @@ *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 http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/php_iconv.h?r1=1.33&r2=1.34&diff_format=u Index: php-src/ext/iconv/php_iconv.h diff -u php-src/ext/iconv/php_iconv.h:1.33 php-src/ext/iconv/php_iconv.h:1.34 --- php-src/ext/iconv/php_iconv.h:1.33 Wed Sep 19 00:37:43 2007 +++ php-src/ext/iconv/php_iconv.h Tue Dec 4 11:26:54 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Revision: 1.33 $ */ +/* $Revision: 1.34 $ */ #ifndef PHP_ICONV_H #define PHP_ICONV_H @@ -37,6 +37,7 @@ #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" @@ -74,9 +75,17 @@ #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
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php