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