moriyoshi Fri Oct 11 03:50:47 2002 EDT Modified files: /php4/ext/iconv config.m4 iconv.c Log: Added ICONV_IMPL and ICONV_VERSION constants. @- Added ICONV_IMPL and ICONV_VERSION constants to iconv extension to @ indicate which iconv implementation is used. (Moriyoshi) Index: php4/ext/iconv/config.m4 diff -u php4/ext/iconv/config.m4:1.14 php4/ext/iconv/config.m4:1.15 --- php4/ext/iconv/config.m4:1.14 Wed Sep 4 01:17:16 2002 +++ php4/ext/iconv/config.m4 Fri Oct 11 03:50:47 2002 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.14 2002/09/04 05:17:16 yohgaki Exp $ +dnl $Id: config.m4,v 1.15 2002/10/11 07:50:47 moriyoshi Exp $ dnl PHP_ARG_WITH(iconv, for iconv support, @@ -8,8 +8,15 @@ if test "$PHP_ICONV" != "no"; then PHP_SETUP_ICONV(ICONV_SHARED_LIBADD, [ - AC_MSG_CHECKING([if iconv supports errno]) - AC_TRY_RUN([ + iconv_avail="yes"; + ],[ + iconv_avail="no"; + ]) + + if test "$iconv_avail" != "no"; then + + AC_MSG_CHECKING([if iconv supports errno]) + AC_TRY_RUN([ #define LIBICONV_PLUG #include <iconv.h> #include <errno.h> @@ -39,17 +46,37 @@ ],[ AC_MSG_RESULT(yes) PHP_DEFINE([ICONV_SUPPORTS_ERRNO],1) - AC_DEFINE(ICONV_SUPPORTS_ERRNO,1,[Whether iconv supports error no or not]) + AC_DEFINE([ICONV_SUPPORTS_ERRNO],1,[Whether iconv supports error no or not]) ],[ PHP_DEFINE([ICONV_SUPPORTS_ERRNO],0) - AC_DEFINE(ICONV_SUPPORTS_ERRNO,0,[Whether iconv supports error no or not]) + AC_DEFINE([ICONV_SUPPORTS_ERRNO],0,[Whether iconv supports error no or not]) AC_MSG_RESULT(no) ]) + if test -z "$iconv_lib_name"; then + AC_MSG_CHECKING([if iconv is glibc's]) + AC_TRY_COMPILE([#include <iconv.h>],[void __gconv(); int main() { __gconv(); } +],[ + AC_MSG_RESULT(yes) + PHP_DEFINE([ICONV_IMPL],["glibc"]) + AC_DEFINE([ICONV_IMPL],["glibc"],[Which iconv implementation to use]) +],[ + AC_MSG_RESULT(no) +]) + else + case "$iconv_lib_name" in + iconv [)] + PHP_DEFINE([ICONV_IMPL],["libiconv"]) + AC_DEFINE([ICONV_IMPL],["libiconv"],[Which iconv implementation to use]) + ;; + giconv [)] + PHP_DEFINE([ICONV_IMPL],["giconv"]) + AC_DEFINE([ICONV_IMPL],["giconv"],[Which iconv implementation to use]) + ;; + esac + fi PHP_NEW_EXTENSION(iconv, iconv.c, $ext_shared) PHP_SUBST(ICONV_SHARED_LIBADD) - ], [ + else AC_MSG_ERROR(Please reinstall the iconv library.) - ]) - + fi fi Index: php4/ext/iconv/iconv.c diff -u php4/ext/iconv/iconv.c:1.48 php4/ext/iconv/iconv.c:1.49 --- php4/ext/iconv/iconv.c:1.48 Sat Sep 7 17:08:47 2002 +++ php4/ext/iconv/iconv.c Fri Oct 11 03:50:47 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: iconv.c,v 1.48 2002/09/07 21:08:47 yohgaki Exp $ */ +/* $Id: iconv.c,v 1.49 2002/10/11 07:50:47 moriyoshi Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -106,8 +106,25 @@ PHP_MINIT_FUNCTION(miconv) { + char *impl_name = "unknown"; + char *version = ""; + ZEND_INIT_MODULE_GLOBALS(iconv, php_iconv_init_globals, NULL); REGISTER_INI_ENTRIES(); + +#if HAVE_LIBICONV + { + static char buf[16]; + impl_name = "libiconv"; + snprintf( buf, sizeof(buf), "%d.%d", ((_libiconv_version >> 8) & 0x0f), + (_libiconv_version & 0x0f) ); + version = buf; + } +#endif + + REGISTER_STRING_CONSTANT( "ICONV_IMPL", ICONV_IMPL, CONST_CS | +CONST_PERSISTENT ); + REGISTER_STRING_CONSTANT( "ICONV_VERSION", version, CONST_CS | +CONST_PERSISTENT ); + return SUCCESS; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php