From dd862bb3e37d9b36118ef9fefb001481e1f9c4a3 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Fri, 21 Mar 2008 12:09:28 +0000 Subject: [PATCH] fix #43477 (Error mode ignored in unicode_decode()) patch by Stephen Bach --- Zend/tests/bug43477.phpt | 9 +++++++++ Zend/zend_unicode.c | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 Zend/tests/bug43477.phpt diff --git a/Zend/tests/bug43477.phpt b/Zend/tests/bug43477.phpt new file mode 100644 index 0000000000..6f59e833ed --- /dev/null +++ b/Zend/tests/bug43477.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #43477 (Unicode error mode) +--FILE-- + +--EXPECT-- +unicode(0) "" + diff --git a/Zend/zend_unicode.c b/Zend/zend_unicode.c index 9191cbb602..7048e863c2 100644 --- a/Zend/zend_unicode.c +++ b/Zend/zend_unicode.c @@ -47,16 +47,16 @@ void zend_set_converter_error_mode(UConverter *conv, zend_conv_direction directi case ZEND_CONV_ERROR_SKIP: if (direction == ZEND_FROM_UNICODE) - ucnv_setFromUCallBack(conv, UCNV_FROM_U_CALLBACK_SKIP, UCNV_SKIP_STOP_ON_ILLEGAL, NULL, NULL, &status); + ucnv_setFromUCallBack(conv, UCNV_FROM_U_CALLBACK_SKIP, NULL, NULL, NULL, &status); else - ucnv_setToUCallBack(conv, UCNV_TO_U_CALLBACK_SKIP, UCNV_SKIP_STOP_ON_ILLEGAL, NULL, NULL, &status); + ucnv_setToUCallBack(conv, UCNV_TO_U_CALLBACK_SKIP, NULL, NULL, NULL, &status); break; case ZEND_CONV_ERROR_SUBST: if (direction == ZEND_FROM_UNICODE) - ucnv_setFromUCallBack(conv, UCNV_FROM_U_CALLBACK_SUBSTITUTE, UCNV_SUB_STOP_ON_ILLEGAL, NULL, NULL, &status); + ucnv_setFromUCallBack(conv, UCNV_FROM_U_CALLBACK_SUBSTITUTE, NULL, NULL, NULL, &status); else - ucnv_setToUCallBack(conv, UCNV_TO_U_CALLBACK_SUBSTITUTE, UCNV_SUB_STOP_ON_ILLEGAL, NULL, NULL, &status); + ucnv_setToUCallBack(conv, UCNV_TO_U_CALLBACK_SUBSTITUTE, NULL, NULL, NULL, &status); break; case ZEND_CONV_ERROR_ESCAPE_UNICODE: -- 2.40.0