diff options
Diffstat (limited to 'ext/iconv')
24 files changed, 0 insertions, 3076 deletions
diff --git a/ext/iconv/CREDITS b/ext/iconv/CREDITS deleted file mode 100644 index 70d3825ac3..0000000000 --- a/ext/iconv/CREDITS +++ /dev/null @@ -1,2 +0,0 @@ -Iconv -Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4 deleted file mode 100644 index 37f82eb479..0000000000 --- a/ext/iconv/config.m4 +++ /dev/null @@ -1,118 +0,0 @@ -dnl -dnl $Id$ -dnl - -PHP_ARG_WITH(iconv, for iconv support, -[ --with-iconv[=DIR] Include iconv support]) - -if test "$PHP_ICONV" != "no"; then - - PHP_SETUP_ICONV(ICONV_SHARED_LIBADD, [ - iconv_avail="yes"; - ],[ - iconv_avail="no"; - ]) - - if test "$iconv_avail" != "no"; then - iconv_cflags_save="$CFLAGS" - CFLAGS="$CFLAGS $INCLUDES" - AC_MSG_CHECKING([if iconv supports errno]) - AC_TRY_RUN([ -#define LIBICONV_PLUG -#include <iconv.h> -#include <errno.h> -#if defined(_LIBICONV_H) -#define icv_open(a, b) libiconv_open(a, b) -#define icv_close(a) libiconv_close(a) -#define icv(a, b, c, d, e) libiconv(a, b, c, d, e) -#else -#define icv_open(a, b) iconv_open(a, b) -#define icv_close(a) iconv_close(a) -#define icv(a, b, c, d, e) iconv(a, b, c, d, e) -#endif - -int main() { - iconv_t cd; - cd = icv_open( "*blahblah*", "*blahblah*" ); - if( cd == (iconv_t)(-1) ) { - if( errno == EINVAL ) { - return 0; - } else { - return 1; - } - } - icv_close( cd ); - return 2; -} - ],[ - AC_MSG_RESULT(yes) - PHP_DEFINE([ICONV_SUPPORTS_ERRNO],1) - AC_DEFINE([ICONV_SUPPORTS_ERRNO],1,[Whether iconv supports error no or not]) - ],[ - AC_MSG_RESULT(no) - PHP_DEFINE([ICONV_SUPPORTS_ERRNO],0) - AC_DEFINE([ICONV_SUPPORTS_ERRNO],0,[Whether iconv supports error no or not]) - ]) - - if test -z "$iconv_lib_name"; then - AC_MSG_CHECKING([if iconv is glibc's]) - AC_TRY_LINK([#include <gnu/libc-version.h>],[gnu_get_libc_version();], - [ - AC_MSG_RESULT(yes) - iconv_impl_name="glibc" - ],[ - AC_MSG_RESULT(no) - ]) - else - case "$iconv_lib_name" in - iconv [)] - AC_MSG_CHECKING([if iconv is Konstantin Chugeuv's]) - AC_TRY_LINK([#include <iconv.h>],[iconv_ccs_init(NULL, NULL);], - [ - AC_MSG_RESULT(yes) - iconv_impl_name="bsd" - ],[ - AC_MSG_RESULT(no) - iconv_impl_name="gnu_libiconv" - ]) - ;; - - giconv [)] - iconv_impl_name="gnu_libiconv" - ;; - - biconv [)] - iconv_impl_name="bsd" - ;; - esac - fi - - case "$iconv_impl_name" in - gnu_libiconv [)] - PHP_DEFINE([PHP_ICONV_IMPL],[\"libiconv\"]) - AC_DEFINE([PHP_ICONV_IMPL],["libiconv"],[Which iconv implementation to use]) - ;; - - bsd [)] - PHP_DEFINE([HAVE_BSD_ICONV],1) - AC_DEFINE([HAVE_BSD_ICONV],1,[Konstantin Chugeuv's iconv implementation]) - PHP_DEFINE([PHP_ICONV_IMPL],[\"BSD iconv\"]) - AC_DEFINE([PHP_ICONV_IMPL],["BSD iconv"],[Which iconv implementation to use]) - ;; - - glibc [)] - PHP_DEFINE([HAVE_GLIBC_ICONV],1) - AC_DEFINE([HAVE_GLIBC_ICONV],1,[glibc's iconv implementation]) - PHP_DEFINE([PHP_ICONV_IMPL],[\"glibc\"]) - AC_DEFINE([PHP_ICONV_IMPL],["glibc"],[Which iconv implementation to use]) - ;; - esac - - CFLAGS="$iconv_cflags_save" - - PHP_NEW_EXTENSION(iconv, iconv.c, $ext_shared) - PHP_SUBST(ICONV_SHARED_LIBADD) - else - AC_MSG_ERROR(Please reinstall the iconv library.) - fi -fi diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c deleted file mode 100644 index cdf13887f3..0000000000 --- a/ext/iconv/iconv.c +++ /dev/null @@ -1,1840 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2003 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.02 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available at through the world-wide-web at | - | http://www.php.net/license/2_02.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rui Hirokawa <rui_hirokawa@ybb.ne.jp> | - | Stig Bakken <ssb@fast.no> | - | Moriyoshi Koizumi <moriyoshi@php.net> | - +----------------------------------------------------------------------+ - */ - -/* $Id$ */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "php.h" -#include "php_globals.h" -#include "ext/standard/info.h" -#include "main/php_output.h" -#include "SAPI.h" -#include "php_ini.h" - -#ifdef HAVE_STDLIB_H -# include <stdlib.h> -#endif - -#include <errno.h> - -#include "php_iconv.h" - -#ifdef HAVE_ICONV - -#ifdef HAVE_GICONV_H -#include <giconv.h> -#else -#include <iconv.h> -#endif - -#ifdef HAVE_GLIBC_ICONV -#include <gnu/libc-version.h> -#endif - -#include "ext/standard/php_smart_str.h" -#include "ext/standard/base64.h" -#include "ext/standard/quot_print.h" - -#ifdef HAVE_LIBICONV -#define LIBICONV_PLUG -#define icv_open(a, b) libiconv_open(a, b) -#define icv_close(a) libiconv_close(a) -#define icv(a, b, c, d, e) libiconv(a, b, c, d, e) -#else -#define icv_open(a, b) iconv_open(a, b) -#define icv_close(a) iconv_close(a) -#define icv(a, b, c, d, e) iconv(a, (char **) b, c, d, e) -#endif - -#define _php_iconv_memequal(a, b, c) \ - ((c) == sizeof(unsigned long) ? *((unsigned long *)(a)) == *((unsigned long *)(b)) : ((c) == sizeof(unsigned int) ? *((unsigned int *)(a)) == *((unsigned int *)(b)) : memcmp(a, b, c) == 0)) - -/* {{{ iconv_functions[] - */ -function_entry iconv_functions[] = { - PHP_NAMED_FE(iconv,php_if_iconv, NULL) - PHP_FE(ob_iconv_handler, NULL) - PHP_FE(iconv_get_encoding, NULL) - PHP_FE(iconv_set_encoding, NULL) - PHP_FE(iconv_strlen, NULL) - PHP_FE(iconv_substr, NULL) - PHP_FE(iconv_strpos, NULL) - PHP_FE(iconv_strrpos, NULL) - PHP_FE(iconv_mime_encode, NULL) - PHP_FE(iconv_mime_decode, NULL) - {NULL, NULL, NULL} -}; -/* }}} */ - -/* {{{ iconv_module_entry - */ -zend_module_entry iconv_module_entry = { - STANDARD_MODULE_HEADER, - "iconv", - iconv_functions, - PHP_MINIT(miconv), - PHP_MSHUTDOWN(miconv), - NULL, - NULL, - PHP_MINFO(miconv), - NO_VERSION_YET, - STANDARD_MODULE_PROPERTIES -}; -/* }}} */ - -ZEND_DECLARE_MODULE_GLOBALS(iconv) - -#ifdef COMPILE_DL_ICONV -ZEND_GET_MODULE(iconv) -#endif - -/* {{{ typedef enum php_iconv_err_t */ -typedef enum _php_iconv_err_t { - PHP_ICONV_ERR_SUCCESS = SUCCESS, - PHP_ICONV_ERR_CONVERTER = 1, - PHP_ICONV_ERR_WRONG_CHARSET = 2, - PHP_ICONV_ERR_TOO_BIG = 3, - PHP_ICONV_ERR_ILLEGAL_SEQ = 4, - PHP_ICONV_ERR_ILLEGAL_CHAR = 5, - PHP_ICONV_ERR_UNKNOWN = 6, - PHP_ICONV_ERR_MALFORMED = 7 -} php_iconv_err_t; -/* }}} */ - -/* {{{ typedef enum php_iconv_enc_scheme_t */ -typedef enum _php_iconv_enc_scheme_t { - PHP_ICONV_ENC_SCHEME_BASE64, - PHP_ICONV_ENC_SCHEME_QPRINT -} php_iconv_enc_scheme_t; -/* }}} */ - -/* {{{ prototypes */ -static php_iconv_err_t _php_iconv_appendl(smart_str *d, const char *s, size_t l, iconv_t cd); -static php_iconv_err_t _php_iconv_appendc(smart_str *d, const char c, iconv_t cd); - -static php_iconv_err_t php_iconv_string(const char * in_p, size_t in_len, char **out, size_t *out_len, const char *out_charset, const char *in_charset); - -static void _php_iconv_show_error(php_iconv_err_t err, const char *out_charset, const char *in_charset TSRMLS_DC); - -static php_iconv_err_t _php_iconv_strlen(unsigned int *pretval, const char *str, size_t nbytes, const char *enc); - -static php_iconv_err_t _php_iconv_substr(smart_str *pretval, const char *str, size_t nbytes, int offset, int len, const char *enc); - -static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, const char *haystk, size_t haystk_nbytes, const char *ndl, size_t ndl_nbytes, int offset, const char *enc); - -static php_iconv_err_t _php_iconv_mime_encode(smart_str *pretval, const char *fname, size_t fname_nbytes, const char *fval, size_t fval_nbytes, unsigned int max_line_len, const char *lfchars, php_iconv_enc_scheme_t enc_scheme, const char *out_charset, const char *enc); - -static php_iconv_err_t _php_iconv_mime_decode(smart_str *pretval, const char *str, size_t str_nbytes, const char *enc); -/* }}} */ - -/* {{{ static globals */ -static char _generic_superset_name[] = "UCS-4LE"; -#define GENERIC_SUPERSET_NAME _generic_superset_name -#define GENERIC_SUPERSET_NBYTES 4 -/* }}} */ - -/* {{{ PHP_INI - */ -PHP_INI_BEGIN() - STD_PHP_INI_ENTRY("iconv.input_encoding", ICONV_INPUT_ENCODING, PHP_INI_ALL, OnUpdateString, input_encoding, zend_iconv_globals, iconv_globals) - STD_PHP_INI_ENTRY("iconv.output_encoding", ICONV_OUTPUT_ENCODING, PHP_INI_ALL, OnUpdateString, output_encoding, zend_iconv_globals, iconv_globals) - STD_PHP_INI_ENTRY("iconv.internal_encoding", ICONV_INTERNAL_ENCODING, PHP_INI_ALL, OnUpdateString, internal_encoding, zend_iconv_globals, iconv_globals) -PHP_INI_END() -/* }}} */ - -/* {{{ php_iconv_init_globals */ -static void php_iconv_init_globals(zend_iconv_globals *iconv_globals) -{ - iconv_globals->input_encoding = NULL; - iconv_globals->output_encoding = NULL; - iconv_globals->internal_encoding = NULL; -} -/* }}} */ - -/* {{{ PHP_MINIT_FUNCTION */ -PHP_MINIT_FUNCTION(miconv) -{ - char *version = "unknown"; - - ZEND_INIT_MODULE_GLOBALS(iconv, php_iconv_init_globals, NULL); - REGISTER_INI_ENTRIES(); - -#if HAVE_LIBICONV - { - static char buf[16]; - snprintf(buf, sizeof(buf), "%d.%d", - ((_libiconv_version >> 8) & 0x0f), (_libiconv_version & 0x0f)); - version = buf; - } -#elif HAVE_GLIBC_ICONV - version = (char *)gnu_get_libc_version(); -#endif - -#ifdef PHP_ICONV_IMPL - REGISTER_STRING_CONSTANT("ICONV_IMPL", PHP_ICONV_IMPL, CONST_CS | CONST_PERSISTENT); -#elif HAVE_LIBICONV - REGISTER_STRING_CONSTANT("ICONV_IMPL", "libiconv", CONST_CS | CONST_PERSISTENT); -#else - REGISTER_STRING_CONSTANT("ICONV_IMPL", "unknown", CONST_CS | CONST_PERSISTENT); -#endif - REGISTER_STRING_CONSTANT("ICONV_VERSION", version, CONST_CS | CONST_PERSISTENT); - - return SUCCESS; -} -/* }}} */ - -/* {{{ PHP_MSHUTDOWN_FUNCTION */ -PHP_MSHUTDOWN_FUNCTION(miconv) -{ - UNREGISTER_INI_ENTRIES(); - return SUCCESS; -} -/* }}} */ - -/* {{{ PHP_MINFO_FUNCTION */ -PHP_MINFO_FUNCTION(miconv) -{ - zval iconv_impl, iconv_ver; - - zend_get_constant("ICONV_IMPL", sizeof("ICONV_IMPL")-1, &iconv_impl TSRMLS_CC); - zend_get_constant("ICONV_VERSION", sizeof("ICONV_VERSION")-1, &iconv_ver TSRMLS_CC); - - php_info_print_table_start(); - php_info_print_table_row(2, "iconv support", "enabled"); - php_info_print_table_row(2, "iconv implementation", Z_STRVAL(iconv_impl)); - php_info_print_table_row(2, "iconv library version", Z_STRVAL(iconv_ver)); - php_info_print_table_end(); - - DISPLAY_INI_ENTRIES(); - - zval_dtor(&iconv_impl); - zval_dtor(&iconv_ver); -} -/* }}} */ - -/* {{{ _php_iconv_appendl() */ -static php_iconv_err_t _php_iconv_appendl(smart_str *d, const char *s, size_t l, iconv_t cd) -{ - const char *in_p = s; - size_t in_left = l; - char *out_p; - size_t out_left = 0; - size_t buf_growth = 128; -#if !ICONV_SUPPORTS_ERRNO - size_t prev_in_left = in_left; -#endif - - if (in_p != NULL) { - while (in_left > 0) { - out_left = buf_growth - out_left; - { - size_t newlen; - smart_str_alloc((d), out_left, 0); - } - - out_p = (d)->c + (d)->len; - - if (icv(cd, &in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { -#if ICONV_SUPPORTS_ERRNO - switch (errno) { - case EINVAL: - return PHP_ICONV_ERR_ILLEGAL_CHAR; - - case EILSEQ: - return PHP_ICONV_ERR_ILLEGAL_SEQ; - - case E2BIG: - break; - - default: - return PHP_ICONV_ERR_UNKNOWN; - } -#else - if (prev_in_left == in_left) { - return PHP_ICONV_ERR_UNKNOWN; - } -#endif - } -#if !ICONV_SUPPORTS_ERRNO - prev_in_left = in_left; -#endif - (d)->len += (buf_growth - out_left); - buf_growth <<= 1; - } - } else { - for (;;) { - out_left = buf_growth - out_left; - { - size_t newlen; - smart_str_alloc((d), out_left, 0); - } - - out_p = (d)->c + (d)->len; - - if (icv(cd, NULL, NULL, (char **) &out_p, &out_left) == (size_t)0) { - (d)->len += (buf_growth - out_left); - break; - } else { -#if ICONV_SUPPORTS_ERRNO - if (errno != E2BIG) { - return PHP_ICONV_ERR_UNKNOWN; - } -#else - if (out_left != 0) { - return PHP_ICONV_ERR_UNKNOWN; - } -#endif - } - (d)->len += (buf_growth - out_left); - buf_growth <<= 1; - } - } - return PHP_ICONV_ERR_SUCCESS; -} -/* }}} */ - -/* {{{ _php_iconv_appendc() */ -static php_iconv_err_t _php_iconv_appendc(smart_str *d, const char c, iconv_t cd) -{ - return _php_iconv_appendl(d, &c, 1, cd); -} -/* }}} */ - -/* {{{ php_iconv_string() - */ -php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len, - char **out, size_t *out_len, - const char *out_charset, const char *in_charset) -{ -#if !ICONV_SUPPORTS_ERRNO - unsigned int in_size, out_size, out_left; - char *out_buffer, *out_p; - iconv_t cd; - size_t result; - typedef unsigned int ucs4_t; - - *out = NULL; - *out_len = 0; - - /* - This is not the right way to get output size... - This is not space efficient for large text. - This is also problem for encoding like UTF-7/UTF-8/ISO-2022 which - a single char can be more than 4 bytes. - I added 15 extra bytes for safety. <yohgaki@php.net> - */ - out_size = in_len * sizeof(ucs4_t) + 15; - out_left = out_size; - - in_size = in_len; - - cd = icv_open(out_charset, in_charset); - - if (cd == (iconv_t)(-1)) { - return PHP_ICONV_ERR_UNKNOWN; - } - - out_buffer = (char *) emalloc(out_size + 1); - out_p = out_buffer; - - result = icv(cd, (const char **) &in_p, &in_size, (char **) - &out_p, &out_left); - - if (result == (size_t)(-1)) { - efree(out_buffer); - return PHP_ICONV_ERR_UNKNOWN; - } - - if (out_left < 8) { - out_buffer = (char *) erealloc(out_buffer, out_size + 8); - } - - /* flush the shift-out sequences */ - result = icv(cd, NULL, NULL, &out_p, &out_left); - - if (result == (size_t)(-1)) { - efree(out_buffer); - return PHP_ICONV_ERR_UNKNOWN; - } - - *out_len = out_size - out_left; - out_buffer[*out_len] = '\0'; - *out = out_buffer; - - icv_close(cd); - - return PHP_ICONV_ERR_SUCCESS; - -#else - /* - iconv supports errno. Handle it better way. - */ - iconv_t cd; - size_t in_left, out_size, out_left; - char *out_p, *out_buf, *tmp_buf; - size_t bsz, result = 0; - php_iconv_err_t retval = PHP_ICONV_ERR_SUCCESS; - - *out = NULL; - *out_len = 0; - - cd = icv_open(out_charset, in_charset); - - if (cd == (iconv_t)(-1)) { - if (errno == EINVAL) { - return PHP_ICONV_ERR_WRONG_CHARSET; - } else { - return PHP_ICONV_ERR_CONVERTER; - } - } - in_left= in_len; - out_left = in_len + 32; /* Avoid realloc() most cases */ - out_size = 0; - bsz = out_left; - out_buf = (char *) emalloc(bsz+1); - out_p = out_buf; - - while (in_left > 0) { - result = icv(cd, (const char **) &in_p, &in_left, (char **) &out_p, &out_left); - out_size = bsz - out_left; - if (result == (size_t)(-1)) { - if (errno == E2BIG && in_left > 0) { - /* converted string is longer than out buffer */ - bsz += in_len; - - tmp_buf = (char*) erealloc(out_buf, bsz+1); - out_p = out_buf = tmp_buf; - out_p += out_size; - out_left = bsz - out_size; - continue; - } - } - break; - } - - if (result != (size_t)(-1)) { - /* flush the shift-out sequences */ - for (;;) { - result = icv(cd, NULL, NULL, (char **) &out_p, &out_left); - out_size = bsz - out_left; - - if (result != (size_t)(-1)) { - break; - } - - if (errno == E2BIG) { - bsz += 16; - tmp_buf = (char *) erealloc(out_buf, bsz); - - out_p = out_buf = tmp_buf; - out_p += out_size; - out_left = bsz - out_size; - } else { - break; - } - } - } - - icv_close(cd); - - if (result == (size_t)(-1)) { - switch (errno) { - case EINVAL: - retval = PHP_ICONV_ERR_ILLEGAL_CHAR; - break; - - case EILSEQ: - retval = PHP_ICONV_ERR_ILLEGAL_SEQ; - break; - - case E2BIG: - /* should not happen */ - retval = PHP_ICONV_ERR_TOO_BIG; - break; - - default: - /* other error */ - retval = PHP_ICONV_ERR_UNKNOWN; - efree(out_buf); - return PHP_ICONV_ERR_UNKNOWN; - } - } - *out_p = '\0'; - *out = out_buf; - *out_len = out_size; - return retval; -#endif -} -/* }}} */ - -/* {{{ _php_iconv_strlen() */ -static php_iconv_err_t _php_iconv_strlen(unsigned int *pretval, const char *str, size_t nbytes, const char *enc) -{ - char buf[GENERIC_SUPERSET_NBYTES*2]; - - php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; - - iconv_t cd; - - const char *in_p; - size_t in_left; - - char *out_p; - size_t out_left; - - unsigned int cnt; - - *pretval = (unsigned int)-1; - - cd = icv_open(GENERIC_SUPERSET_NAME, enc); - - if (cd == (iconv_t)(-1)) { -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - return PHP_ICONV_ERR_WRONG_CHARSET; - } else { - return PHP_ICONV_ERR_CONVERTER; - } -#else - return PHP_ICONV_ERR_UNKNOWN; -#endif - } - - out_left = 0; - - for (in_p = str, in_left = nbytes, cnt = 0; in_left > 0; cnt+=2) { - size_t prev_in_left; - out_p = buf; - out_left = sizeof(buf); - - prev_in_left = in_left; - - if (icv(cd, &in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { - if (prev_in_left == in_left) { - break; - } - } - } - - if (out_left > 0) { - cnt -= out_left / GENERIC_SUPERSET_NBYTES; - } - -#if ICONV_SUPPORTS_ERRNO - switch (errno) { - case EINVAL: - err = PHP_ICONV_ERR_ILLEGAL_CHAR; - break; - - case EILSEQ: - err = PHP_ICONV_ERR_ILLEGAL_SEQ; - break; - - case E2BIG: - *pretval = cnt; - break; - - default: - err = PHP_ICONV_ERR_UNKNOWN; - break; - } -#else - *pretval = cnt; -#endif - - icv_close(cd); - - return err; -} - -/* }}} */ - -/* {{{ _php_iconv_substr() */ -static php_iconv_err_t _php_iconv_substr(smart_str *pretval, - const char *str, size_t nbytes, int offset, int len, const char *enc) -{ - char buf[GENERIC_SUPERSET_NBYTES]; - - php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; - - iconv_t cd1, cd2; - - const char *in_p; - size_t in_left; - - char *out_p; - size_t out_left; - - unsigned int cnt; - - /* normalize the offset and the length */ - if (offset < 0 || len < 0) { - unsigned int total_len; - err = _php_iconv_strlen(&total_len, str, nbytes, enc); - if (err != PHP_ICONV_ERR_SUCCESS) { - return err; - } - if (offset < 0) { - if ((offset += total_len) < 0) { - offset = 0; - } - } - if (len < 0) { - if ((len += (total_len - offset)) < 0) { - len = 0; - } - } - } - - cd1 = icv_open(GENERIC_SUPERSET_NAME, enc); - - if (cd1 == (iconv_t)(-1)) { -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - return PHP_ICONV_ERR_WRONG_CHARSET; - } else { - return PHP_ICONV_ERR_CONVERTER; - } -#else - return PHP_ICONV_ERR_UNKNOWN; -#endif - } - - cd2 = NULL; - - for (in_p = str, in_left = nbytes, cnt = 0; in_left > 0 && len > 0; ++cnt) { - size_t prev_in_left; - out_p = buf; - out_left = sizeof(buf); - - prev_in_left = in_left; - - if (icv(cd1, &in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { - if (prev_in_left == in_left) { - break; - } - } - - if (cnt >= (unsigned int)offset) { - if (cd2 == NULL) { - cd2 = icv_open(enc, GENERIC_SUPERSET_NAME); - - if (cd2 == (iconv_t)(-1)) { - cd2 = NULL; -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - err = PHP_ICONV_ERR_WRONG_CHARSET; - } else { - err = PHP_ICONV_ERR_CONVERTER; - } -#else - err = PHP_ICONV_ERR_UNKNOWN; -#endif - break; - } - } - - _php_iconv_appendl(pretval, buf, sizeof(buf), cd2); - --len; - } - - } - -#if ICONV_SUPPORTS_ERRNO - switch (errno) { - case EINVAL: - err = PHP_ICONV_ERR_ILLEGAL_CHAR; - break; - - case EILSEQ: - err = PHP_ICONV_ERR_ILLEGAL_SEQ; - break; - - case E2BIG: - break; - - default: - err = PHP_ICONV_ERR_UNKNOWN; - break; - } -#endif - if (err == PHP_ICONV_ERR_SUCCESS) { - if (cd2 != NULL) { - _php_iconv_appendl(pretval, NULL, 0, cd2); - } - smart_str_0(pretval); - } - - if (cd1 != NULL) { - icv_close(cd1); - } - - if (cd2 != NULL) { - icv_close(cd2); - } - return err; -} - -/* }}} */ - -/* {{{ _php_iconv_strpos() */ -static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, - const char *haystk, size_t haystk_nbytes, - const char *ndl, size_t ndl_nbytes, - int offset, const char *enc) -{ - char buf[GENERIC_SUPERSET_NBYTES]; - - php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; - - iconv_t cd; - - const char *in_p; - size_t in_left; - - char *out_p; - size_t out_left; - - unsigned int cnt; - - char *ndl_buf; - const char *ndl_buf_p; - size_t ndl_buf_len, ndl_buf_left; - - unsigned int match_ofs; - - *pretval = (unsigned int)-1; - - err = php_iconv_string(ndl, ndl_nbytes, - &ndl_buf, &ndl_buf_len, GENERIC_SUPERSET_NAME, enc); - - if (err != PHP_ICONV_ERR_SUCCESS) { - if (ndl_buf != NULL) { - efree(ndl_buf); - } - return err; - } - - cd = icv_open(GENERIC_SUPERSET_NAME, enc); - - if (cd == (iconv_t)(-1)) { -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - return PHP_ICONV_ERR_WRONG_CHARSET; - } else { - return PHP_ICONV_ERR_CONVERTER; - } -#else - return PHP_ICONV_ERR_UNKNOWN; -#endif - } - - ndl_buf_p = ndl_buf; - ndl_buf_left = ndl_buf_len; - match_ofs = (unsigned int)-1; - - for (in_p = haystk, in_left = haystk_nbytes, cnt = 0; in_left > 0; ++cnt) { - size_t prev_in_left; - out_p = buf; - out_left = sizeof(buf); - - prev_in_left = in_left; - - if (icv(cd, &in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { - if (prev_in_left == in_left) { -#if ICONV_SUPPORTS_ERRNO - switch (errno) { - case EINVAL: - err = PHP_ICONV_ERR_ILLEGAL_CHAR; - break; - - case EILSEQ: - err = PHP_ICONV_ERR_ILLEGAL_SEQ; - break; - - case E2BIG: - break; - - default: - err = PHP_ICONV_ERR_UNKNOWN; - break; - } -#endif - break; - } - } - if (offset >= 0) { - if (cnt >= (unsigned int)offset) { - if (_php_iconv_memequal(buf, ndl_buf_p, sizeof(buf))) { - if (match_ofs == (unsigned int)-1) { - match_ofs = cnt; - } - ndl_buf_p += GENERIC_SUPERSET_NBYTES; - ndl_buf_left -= GENERIC_SUPERSET_NBYTES; - if (ndl_buf_left == 0) { - *pretval = match_ofs; - break; - } - } else { - unsigned int i, j, lim; - - i = 0; - j = GENERIC_SUPERSET_NBYTES; - lim = (unsigned int)(ndl_buf_p - ndl_buf); - - while (j < lim) { - if (_php_iconv_memequal(&ndl_buf[j], &ndl_buf[i], - GENERIC_SUPERSET_NBYTES)) { - i += GENERIC_SUPERSET_NBYTES; - } else { - j -= i; - i = 0; - } - j += GENERIC_SUPERSET_NBYTES; - } - - if (!_php_iconv_memequal(buf, &ndl_buf[i], sizeof(buf))) { - i = 0; - } - - if (i == 0) { - match_ofs = (unsigned int)-1; - } else { - match_ofs += (lim - i) / GENERIC_SUPERSET_NBYTES; - i += GENERIC_SUPERSET_NBYTES; - } - ndl_buf_p = &ndl_buf[i]; - ndl_buf_left = ndl_buf_len - i; - } - } - } else { - if (_php_iconv_memequal(buf, ndl_buf_p, sizeof(buf))) { - if (match_ofs == (unsigned int)-1) { - match_ofs = cnt; - } - ndl_buf_p += GENERIC_SUPERSET_NBYTES; - ndl_buf_left -= GENERIC_SUPERSET_NBYTES; - if (ndl_buf_left == 0) { - *pretval = match_ofs; - ndl_buf_p = ndl_buf; - ndl_buf_left = ndl_buf_len; - match_ofs = -1; - } - } else { - unsigned int i, j, lim; - - i = 0; - j = GENERIC_SUPERSET_NBYTES; - lim = (unsigned int)(ndl_buf_p - ndl_buf); - - while (j < lim) { - if (_php_iconv_memequal(&ndl_buf[j], &ndl_buf[i], - GENERIC_SUPERSET_NBYTES)) { - i += GENERIC_SUPERSET_NBYTES; - } else { - j -= i; - i = 0; - } - j += GENERIC_SUPERSET_NBYTES; - } - - if (!_php_iconv_memequal(buf, &ndl_buf[i], sizeof(buf))) { - i = 0; - } - - if (i == 0) { - match_ofs = (unsigned int)-1; - } else { - match_ofs += (lim - i) / GENERIC_SUPERSET_NBYTES; - i += GENERIC_SUPERSET_NBYTES; - } - ndl_buf_p = &ndl_buf[i]; - ndl_buf_left = ndl_buf_len - i; - } - } - } - - if (ndl_buf) { - efree(ndl_buf); - } - - icv_close(cd); - - return err; -} -/* }}} */ - -/* {{{ _php_iconv_mime_encode() */ -static php_iconv_err_t _php_iconv_mime_encode(smart_str *pretval, const char *fname, size_t fname_nbytes, const char *fval, size_t fval_nbytes, unsigned int max_line_len, const char *lfchars, php_iconv_enc_scheme_t enc_scheme, const char *out_charset, const char *enc) -{ - php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; - iconv_t cd = (iconv_t)(-1), cd_pl = (iconv_t)(-1); - unsigned int char_cnt = 0; - size_t out_charset_len; - size_t lfchars_len; - char *buf = NULL; - char *encoded = NULL; - size_t encoded_len; - const char *in_p; - size_t in_left; - char *out_p; - size_t out_left; - - out_charset_len = strlen(out_charset); - lfchars_len = strlen(lfchars); - - if ((fname_nbytes + 2) >= max_line_len - || (out_charset_len + 12) >= max_line_len) { - /* field name is too long */ - err = PHP_ICONV_ERR_TOO_BIG; - goto out; - } - - cd_pl = icv_open("ASCII", enc); - if (cd_pl == (iconv_t)(-1)) { -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - err = PHP_ICONV_ERR_WRONG_CHARSET; - } else { - err = PHP_ICONV_ERR_CONVERTER; - } -#else - err = PHP_ICONV_ERR_UNKNOWN; -#endif - goto out; - } - - cd = icv_open(out_charset, enc); - if (cd == (iconv_t)(-1)) { -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - err = PHP_ICONV_ERR_WRONG_CHARSET; - } else { - err = PHP_ICONV_ERR_CONVERTER; - } -#else - err = PHP_ICONV_ERR_UNKNOWN; -#endif - goto out; - } - - buf = emalloc(max_line_len + 5); - - char_cnt = max_line_len; - - _php_iconv_appendl(pretval, fname, fname_nbytes, cd_pl); - char_cnt -= fname_nbytes; - smart_str_appendl(pretval, ": ", sizeof(": ") - 1); - char_cnt -= 2; - - in_p = fval; - in_left = fval_nbytes; - - do { - size_t prev_in_left; - size_t out_size; - - if (char_cnt < (out_charset_len + 12)) { - /* lfchars must be encoded in ASCII here*/ - smart_str_appendl(pretval, lfchars, lfchars_len); - smart_str_appendc(pretval, ' '); - char_cnt = max_line_len - 1; - } - - smart_str_appendl(pretval, "=?", sizeof("=?") - 1); - char_cnt -= 2; - smart_str_appendl(pretval, out_charset, out_charset_len); - char_cnt -= out_charset_len; - smart_str_appendc(pretval, '?'); - char_cnt --; - - switch (enc_scheme) { - case PHP_ICONV_ENC_SCHEME_BASE64: { - size_t ini_in_left; - const char *ini_in_p; - size_t out_reserved = 4; - - smart_str_appendc(pretval, 'B'); - char_cnt--; - smart_str_appendc(pretval, '?'); - char_cnt--; - - prev_in_left = ini_in_left = in_left; - ini_in_p = in_p; - - out_size = (char_cnt - 2) / 4 * 3; - - for (;;) { - out_p = buf; - - if (out_size <= out_reserved) { - err = PHP_ICONV_ERR_TOO_BIG; - goto out; - } - - out_left = out_size - out_reserved; - - if (icv(cd, &in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { -#if ICONV_SUPPORTS_ERRNO - switch (errno) { - case EINVAL: - err = PHP_ICONV_ERR_ILLEGAL_CHAR; - goto out; - - case EILSEQ: - err = PHP_ICONV_ERR_ILLEGAL_SEQ; - goto out; - - case E2BIG: - if (prev_in_left == in_left) { - err = PHP_ICONV_ERR_TOO_BIG; - goto out; - } - break; - - default: - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } -#else - if (prev_in_left == in_left) { - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } -#endif - } - - out_left += out_reserved; - - if (icv(cd, NULL, NULL, (char **) &out_p, &out_left) == (size_t)-1) { -#if ICONV_SUPPORTS_ERRNO - if (errno != E2BIG) { - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } -#else - if (out_left != 0) { - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } -#endif - } else { - break; - } - - if (icv(cd, NULL, NULL, NULL, NULL) == (size_t)-1) { - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } - - out_reserved += 4; - in_left = ini_in_left; - in_p = ini_in_p; - } - - prev_in_left = in_left; - - encoded = php_base64_encode(buf, (int)(out_size - out_left), &encoded_len); - if (char_cnt < encoded_len) { - /* something went wrong! */ - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } - - smart_str_appendl(pretval, encoded, encoded_len); - char_cnt -= encoded_len; - smart_str_appendl(pretval, "?=", sizeof("?=") - 1); - char_cnt -= 2; - - efree(encoded); - encoded = NULL; - } break; /* case PHP_ICONV_ENC_SCHEME_BASE64: */ - - case PHP_ICONV_ENC_SCHEME_QPRINT: { - smart_str_appendc(pretval, 'Q'); - char_cnt--; - smart_str_appendc(pretval, '?'); - char_cnt--; - - prev_in_left = in_left; - - while (in_left > 0) { - out_p = buf; - out_left = out_size = 1; - - if (icv(cd, &in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { -#if ICONV_SUPPORTS_ERRNO - switch (errno) { - case EINVAL: - err = PHP_ICONV_ERR_ILLEGAL_CHAR; - goto out; - - case EILSEQ: - err = PHP_ICONV_ERR_ILLEGAL_SEQ; - goto out; - - case E2BIG: - break; - - default: - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } -#else - if (prev_in_left == in_left) { - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } -#endif - } - - if (out_size > out_left) { - if ((buf[0] >= 33 && buf[0] <= 60) || - (buf[0] >= 62 && buf[0] <= 126)) { - - if (char_cnt >= 1 + 2) { - smart_str_appendc(pretval, buf[0]); - char_cnt--; - } else { - in_p -= (prev_in_left - in_left); - in_left = prev_in_left; - - break; - } - } else { - if (char_cnt >= 3 + 2) { - static char qp_digits[] = "0123456789ABCDEF"; - smart_str_appendc(pretval, '='); - smart_str_appendc(pretval, qp_digits[(buf[0] >> 4) & 0x0f]); - smart_str_appendc(pretval, qp_digits[(buf[0] & 0x0f)]); - char_cnt -= 3; - } else { - in_p -= (prev_in_left - in_left); - in_left = prev_in_left; - - break; - } - } - } - prev_in_left = in_left; - } - - smart_str_appendl(pretval, "?=", sizeof("?=") - 1); - char_cnt -= 2; - - if (icv(cd, NULL, NULL, NULL, NULL) == (size_t)-1) { - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } - - } break; /* case PHP_ICONV_ENC_SCHEME_QPRINT: */ - } - } while (in_left > 0); - - smart_str_0(pretval); - -out: - if (cd != (iconv_t)(-1)) { - icv_close(cd); - } - if (cd_pl != (iconv_t)(-1)) { - icv_close(cd_pl); - } - if (encoded != NULL) { - efree(encoded); - } - if (buf != NULL) { - efree(buf); - } - return err; -} -/* }}} */ - -/* {{{ _php_iconv_mime_decode() */ -static php_iconv_err_t _php_iconv_mime_decode(smart_str *pretval, const char *str, size_t str_nbytes, const char *enc) -{ - php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; - - iconv_t cd = (iconv_t)(-1), cd_pl = (iconv_t)(-1); - - const char *p1; - size_t str_left; - unsigned int scan_stat = 0; - const char *csname = NULL; - size_t csname_len; - const char *encoded_text = NULL; - size_t encoded_text_len; - - php_iconv_enc_scheme_t enc_scheme; - - cd_pl = icv_open(enc, "ASCII"); - - if (cd_pl == (iconv_t)(-1)) { -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - err = PHP_ICONV_ERR_WRONG_CHARSET; - } else { - err = PHP_ICONV_ERR_CONVERTER; - } -#else - err = PHP_ICONV_ERR_UNKNOWN; -#endif - goto out; - } - - p1 = str; - for (str_left = str_nbytes; str_left > 0; str_left--, p1++) { - - switch (scan_stat) { - case 0: - switch (*p1) { - case '\r': - scan_stat = 7; - break; - - case '\n': - scan_stat = 8; - break; - - case '=': - scan_stat = 1; - break; - - default: - _php_iconv_appendc(pretval, *p1, cd_pl); - } - break; - - case 1: - if (*p1 != '?') { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - csname = p1 + 1; - scan_stat = 2; - break; - - case 2: /* charset name */ - switch (*p1) { - case '?': - scan_stat = 3; - break; - - case '*': - scan_stat = 10; - break; - } - if (scan_stat != 2) { - char tmpbuf[80]; - - if (csname == NULL) { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - - csname_len = (size_t)(p1 - csname); - - if (csname_len > sizeof(tmpbuf) - 1) { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - - memcpy(tmpbuf, csname, csname_len); - tmpbuf[csname_len] = '\0'; - - if (cd != (iconv_t)(-1)) { - icv_close(cd); - } - - cd = icv_open(enc, tmpbuf); - - if (cd == (iconv_t)(-1)) { -#if ICONV_SUPPORTS_ERRNO - if (errno == EINVAL) { - err = PHP_ICONV_ERR_WRONG_CHARSET; - } else { - err = PHP_ICONV_ERR_CONVERTER; - } -#else - err = PHP_ICONV_ERR_UNKNOWN; -#endif - goto out; - } - } - break; - - case 3: - switch (*p1) { - case 'B': - enc_scheme = PHP_ICONV_ENC_SCHEME_BASE64; - break; - - case 'Q': - enc_scheme = PHP_ICONV_ENC_SCHEME_QPRINT; - break; - - default: - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - scan_stat = 4; - break; - - case 4: - if (*p1 != '?') { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - encoded_text = p1 + 1; - scan_stat = 5; - break; - - case 5: - if (*p1 == '?') { - char *decoded_text; - size_t decoded_text_len; - - if (encoded_text == NULL) { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - - encoded_text_len = (size_t)(p1 - encoded_text); - switch (enc_scheme) { - case PHP_ICONV_ENC_SCHEME_BASE64: - decoded_text = (char *)php_base64_decode((unsigned char*)encoded_text, (int)encoded_text_len, &decoded_text_len); - break; - - case PHP_ICONV_ENC_SCHEME_QPRINT: - decoded_text = (char *)php_quot_print_decode((unsigned char*)encoded_text, (int)encoded_text_len, &decoded_text_len); - break; - } - - if (decoded_text == NULL) { - err = PHP_ICONV_ERR_UNKNOWN; - goto out; - } - - err = _php_iconv_appendl(pretval, decoded_text, decoded_text_len, cd); - efree(decoded_text); - if (err != PHP_ICONV_ERR_SUCCESS) { - goto out; - } - scan_stat = 6; - } - break; - - case 6: - if (*p1 != '=') { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - scan_stat = 0; - break; - - case 7: - if (*p1 == '\n') { - scan_stat = 8; - } else { - /* bare CR */ - _php_iconv_appendc(pretval, '\r', cd_pl); - _php_iconv_appendc(pretval, *p1, cd_pl); - } - break; - - case 8: - if (*p1 != ' ' && *p1 != '\t') { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - scan_stat = 9; - break; - - case 9: - if (*p1 == '=') { - scan_stat = 1; - } else if (*p1 != ' ' && *p1 != '\t') { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - break; - - case 10: /* language spec */ - if (*p1 == '?') { - scan_stat = 3; - } - break; - } - } - - if (scan_stat != 0) { - err = PHP_ICONV_ERR_MALFORMED; - goto out; - } - - if (cd != (iconv_t)(-1)) { - if ((err = _php_iconv_appendl(pretval, NULL, 0, cd)) != PHP_ICONV_ERR_SUCCESS) { - goto out; - } - } - smart_str_0(pretval); -out: - if (cd != (iconv_t)(-1)) { - icv_close(cd); - } - if (cd_pl != (iconv_t)(-1)) { - icv_close(cd_pl); - } - return err; -} -/* }}} */ - -/* {{{ php_iconv_show_error() */ -static void _php_iconv_show_error(php_iconv_err_t err, const char *out_charset, const char *in_charset TSRMLS_DC) -{ - switch (err) { - case PHP_ICONV_ERR_SUCCESS: - break; - - case PHP_ICONV_ERR_CONVERTER: - php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Cannot open converter"); - break; - - case PHP_ICONV_ERR_WRONG_CHARSET: - php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Wrong charset, cannot convert from `%s' to `%s'", - in_charset, out_charset); - break; - - case PHP_ICONV_ERR_ILLEGAL_CHAR: - php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Detected incomplete character in input string"); - break; - - case PHP_ICONV_ERR_ILLEGAL_SEQ: - php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Detected illegal character in input string"); - break; - - case PHP_ICONV_ERR_TOO_BIG: - /* should not happen */ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Run out buffer"); - break; - - default: - /* other error */ - php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Unknown error (%d)", errno); - break; - } -} -/* }}} */ - -/* {{{ proto int iconv_strlen(string str [, string charset]) - Returns the character count of str */ -PHP_FUNCTION(iconv_strlen) -{ - char *charset; - long charset_len; - char *str; - long str_len; - - php_iconv_err_t err; - - unsigned int retval; - - charset = ICONVG(internal_encoding); - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", - &str, &str_len, &charset, &charset_len) == FAILURE) { - RETURN_FALSE; - } - - err = _php_iconv_strlen(&retval, str, str_len, charset); - _php_iconv_show_error(err, GENERIC_SUPERSET_NAME, charset TSRMLS_CC); - if (err == PHP_ICONV_ERR_SUCCESS) { - RETVAL_LONG(retval); - } else { - RETVAL_FALSE; - } -} -/* }}} */ - -/* {{{ proto string iconv_substr(string str, int offset, [int length, string charset]) - Returns specified part of a string */ -PHP_FUNCTION(iconv_substr) -{ - char *charset; - long charset_len; - char *str; - long str_len; - long offset, length; - zval *len_z = NULL; - - php_iconv_err_t err; - - smart_str retval = {0}; - - charset = ICONVG(internal_encoding); - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl|zs", - &str, &str_len, &offset, &len_z, - &charset, &charset_len) == FAILURE) { - RETURN_FALSE; - } - - if (len_z == NULL) { - length = str_len; - } else { - convert_to_long_ex(&len_z); - length = Z_LVAL_P(len_z); - } - - err = _php_iconv_substr(&retval, str, str_len, offset, length, charset); - _php_iconv_show_error(err, GENERIC_SUPERSET_NAME, charset TSRMLS_CC); - - if (err == PHP_ICONV_ERR_SUCCESS && str != NULL) { - if (retval.c != NULL) { - RETVAL_STRINGL(retval.c, retval.len, 0); - } else { - RETVAL_EMPTY_STRING(); - } - } else { - smart_str_free(&retval); - RETVAL_FALSE; - } -} -/* }}} */ - -/* {{{ proto string iconv_strpos(string haystack, string needle, int offset [, string charset]) - Finds position of first occurrence of needle within part of haystack beginning with offset */ -PHP_FUNCTION(iconv_strpos) -{ - char *charset; - long charset_len; - char *haystk; - long haystk_len; - char *ndl; - long ndl_len; - long offset; - - php_iconv_err_t err; - - unsigned int retval; - - offset = 0; - charset = ICONVG(internal_encoding); - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|ls", - &haystk, &haystk_len, &ndl, &ndl_len, - &offset, &charset, &charset_len) == FAILURE) { - RETURN_FALSE; - } - - if (offset < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Offset not contained in string."); - RETURN_FALSE; - } - - err = _php_iconv_strpos(&retval, haystk, haystk_len, ndl, ndl_len, - offset, charset); - _php_iconv_show_error(err, GENERIC_SUPERSET_NAME, charset TSRMLS_CC); - - if (err == PHP_ICONV_ERR_SUCCESS && retval != (unsigned int)-1) { - RETVAL_LONG((long)retval); - } else { - RETVAL_FALSE; - } -} -/* }}} */ - -/* {{{ proto string iconv_strrpos(string haystack, string needle [, string charset]) - Finds position of last occurrence of needle within part of haystack beginning with offset */ -PHP_FUNCTION(iconv_strrpos) -{ - char *charset; - long charset_len; - char *haystk; - long haystk_len; - char *ndl; - long ndl_len; - - php_iconv_err_t err; - - unsigned int retval; - - charset = ICONVG(internal_encoding); - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|s", - &haystk, &haystk_len, &ndl, &ndl_len, - &charset, &charset_len) == FAILURE) { - RETURN_FALSE; - } - - err = _php_iconv_strpos(&retval, haystk, haystk_len, ndl, ndl_len, - -1, charset); - _php_iconv_show_error(err, GENERIC_SUPERSET_NAME, charset TSRMLS_CC); - - if (err == PHP_ICONV_ERR_SUCCESS && retval != (unsigned int)-1) { - RETVAL_LONG((long)retval); - } else { - RETVAL_FALSE; - } -} -/* }}} */ - -/* {{{ proto string iconv_mime_encode(string field_name, string field_value, string scheme, string out_charset [, string in_charset, int line_len, string lfchars]) - Composes a mime header field with field_name and field_value in a specified scheme */ -PHP_FUNCTION(iconv_mime_encode) -{ - char *field_name; - long field_name_len; - char *field_value; - long field_value_len; - char *scheme; - long scheme_len; - char *in_charset; - long in_charset_len; - char *out_charset; - long out_charset_len; - long line_len = 76; - char *lfchars = "\r\n"; - long lfchars_len = sizeof("\r\n")-1; - - php_iconv_enc_scheme_t scheme_id = PHP_ICONV_ENC_SCHEME_BASE64; - - smart_str retval = {0}; - - php_iconv_err_t err; - - in_charset = ICONVG(internal_encoding); - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssss|sls", - &field_name, &field_name_len, &field_value, &field_value_len, - &scheme, &scheme_len, &out_charset, &out_charset_len, - &in_charset, &in_charset_len, &line_len, &lfchars, &lfchars_len) == FAILURE) { - - RETURN_FALSE; - } - - if (scheme_len > 0) { - switch (scheme[0]) { - case 'B': case 'b': - scheme_id = PHP_ICONV_ENC_SCHEME_BASE64; - break; - - case 'Q': case 'q': - scheme_id = PHP_ICONV_ENC_SCHEME_QPRINT; - break; - } - } - - err = _php_iconv_mime_encode(&retval, field_name, field_name_len, - field_value, field_value_len, line_len, lfchars, scheme_id, - out_charset, in_charset); - _php_iconv_show_error(err, out_charset, in_charset TSRMLS_CC); - - if (err == PHP_ICONV_ERR_SUCCESS) { - if (retval.c != NULL) { - RETVAL_STRINGL(retval.c, retval.len, 0); - } else { - RETVAL_EMPTY_STRING(); - } - } else { - smart_str_free(&retval); - RETVAL_FALSE; - } -} -/* }}} */ - -/* {{{ proto string iconv_mime_decode(string encoded_string [, string charset]) - Decodes a mime header field */ -PHP_FUNCTION(iconv_mime_decode) -{ - char *encoded_str; - long encoded_str_len; - char *charset; - long charset_len; - - smart_str retval = {0}; - - php_iconv_err_t err; - - charset = ICONVG(internal_encoding); - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", - &encoded_str, &encoded_str_len, &charset, &charset_len) == FAILURE) { - - RETURN_FALSE; - } - - err = _php_iconv_mime_decode(&retval, encoded_str, encoded_str_len, charset); - _php_iconv_show_error(err, charset, "???" TSRMLS_CC); - - if (err == PHP_ICONV_ERR_SUCCESS) { - if (retval.c != NULL) { - RETVAL_STRINGL(retval.c, retval.len, 0); - } else { - RETVAL_EMPTY_STRING(); - } - } else { - smart_str_free(&retval); - RETVAL_FALSE; - } -} -/* }}} */ - -/* {{{ proto string iconv(string in_charset, string out_charset, string str) - Returns str converted to the out_charset character set */ -PHP_NAMED_FUNCTION(php_if_iconv) -{ - char *in_charset, *out_charset, *in_buffer, *out_buffer; - size_t out_len; - int in_charset_len, out_charset_len, in_buffer_len; - php_iconv_err_t err; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss", - &in_charset, &in_charset_len, &out_charset, &out_charset_len, &in_buffer, &in_buffer_len) == FAILURE) - return; - - err = php_iconv_string(in_buffer, (size_t)in_buffer_len, - &out_buffer, &out_len, out_charset, in_charset); - _php_iconv_show_error(err, out_charset, in_charset TSRMLS_CC); - if (out_buffer != NULL) { - RETVAL_STRINGL(out_buffer, out_len, 0); - } else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto string ob_iconv_handler(string contents, int status) - Returns str in output buffer converted to the iconv.output_encoding character set */ -PHP_FUNCTION(ob_iconv_handler) -{ - char *out_buffer, *content_type, *mimetype = NULL, *s; - zval *zv_string; - unsigned int out_len; - int status, mimetype_alloced = 0; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zl", &zv_string, &status) == FAILURE) - return; - - convert_to_string_ex(&zv_string); - - if (SG(sapi_headers).mimetype && - strncasecmp(SG(sapi_headers).mimetype, "text/", 5) == 0) { - if ((s = strchr(SG(sapi_headers).mimetype,';')) == NULL){ - mimetype = SG(sapi_headers).mimetype; - } else { - mimetype = estrndup(SG(sapi_headers).mimetype, s-SG(sapi_headers).mimetype); - mimetype_alloced = 1; - } - } else if (SG(sapi_headers).send_default_content_type) { - mimetype =(SG(default_mimetype) ? SG(default_mimetype) : SAPI_DEFAULT_MIMETYPE); - } - if (mimetype != NULL) { - php_iconv_err_t err = php_iconv_string(Z_STRVAL_P(zv_string), - Z_STRLEN_P(zv_string), &out_buffer, &out_len, - ICONVG(output_encoding), ICONVG(internal_encoding)); - _php_iconv_show_error(err, ICONVG(output_encoding), ICONVG(internal_encoding) TSRMLS_CC); - if (out_buffer != NULL) { - spprintf(&content_type, 0, "Content-Type:%s; charset=%s", mimetype, ICONVG(output_encoding)); - if (content_type && sapi_add_header(content_type, strlen(content_type), 0) != FAILURE) { - SG(sapi_headers).send_default_content_type = 0; - } - RETURN_STRINGL(out_buffer, out_len, 0); - } - if (mimetype_alloced) { - efree(mimetype); - } - } - - zval_dtor(return_value); - *return_value = *zv_string; - zval_copy_ctor(return_value); -} -/* }}} */ - -/* {{{ proto bool iconv_set_encoding(string type, string charset) - Sets internal encoding and output encoding for ob_iconv_handler() */ -PHP_FUNCTION(iconv_set_encoding) -{ - char *type, *charset; - int type_len, charset_len, retval; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &type, &type_len, &charset, &charset_len) == FAILURE) - return; - - if(!strcasecmp("input_encoding", type)) { - retval = zend_alter_ini_entry("iconv.input_encoding", sizeof("iconv.input_encoding"), charset, charset_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME); - } else if(!strcasecmp("output_encoding", type)) { - retval = zend_alter_ini_entry("iconv.output_encoding", sizeof("iconv.output_encoding"), charset, charset_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME); - } else if(!strcasecmp("internal_encoding", type)) { - retval = zend_alter_ini_entry("iconv.internal_encoding", sizeof("iconv.internal_encoding"), charset, charset_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME); - } else { - RETURN_FALSE; - } - - if (retval == SUCCESS) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto array iconv_get_encoding([string type]) - Get internal encoding and output encoding for ob_iconv_handler() */ -PHP_FUNCTION(iconv_get_encoding) -{ - char *type = "all"; - int type_len; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &type, &type_len) == FAILURE) - return; - - if (!strcasecmp("all", type)) { - array_init(return_value); - add_assoc_string(return_value, "input_encoding", ICONVG(input_encoding), 1); - add_assoc_string(return_value, "output_encoding", ICONVG(output_encoding), 1); - add_assoc_string(return_value, "internal_encoding", ICONVG(internal_encoding), 1); - } else if (!strcasecmp("input_encoding", type)) { - RETVAL_STRING(ICONVG(input_encoding), 1); - } else if (!strcasecmp("output_encoding", type)) { - RETVAL_STRING(ICONVG(output_encoding), 1); - } else if (!strcasecmp("internal_encoding", type)) { - RETVAL_STRING(ICONVG(internal_encoding), 1); - } else { - RETURN_FALSE; - } - -} -/* }}} */ - -#endif - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 fdm=marker - * vim<600: sw=4 ts=4 - */ diff --git a/ext/iconv/iconv.dsp b/ext/iconv/iconv.dsp deleted file mode 100644 index 946fa2dfb9..0000000000 --- a/ext/iconv/iconv.dsp +++ /dev/null @@ -1,107 +0,0 @@ -# Microsoft Developer Studio Project File - Name="iconv" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=iconv - Win32 Debug_TS
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "iconv.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "iconv.mak" CFG="iconv - Win32 Debug_TS"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "iconv - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "iconv - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "iconv - Win32 Release_TS"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release_TS"
-# PROP BASE Intermediate_Dir "Release_TS"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release_TS"
-# PROP Intermediate_Dir "Release_TS"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ICONV_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\main" /I "..\..\win32" /I "..\..\..\php_build\iconv\include" /D "WIN32" /D "PHP_EXPORTS" /D "COMPILE_DL_ICONV" /D "HAVE_ICONV" /D ZEND_DEBUG=0 /D "NDEBUG" /D "_WINDOWS" /D "ZEND_WIN32" /D "PHP_WIN32" /D ZTS=1 /D "ICONV_SUPPORTS_ERRNO" /D "HAVE_LIBICONV" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x407 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 php4ts.lib iconv-1.3.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Release_TS/php_iconv.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline" /libpath:"..\..\..\php_build\iconv\lib"
-
-!ELSEIF "$(CFG)" == "iconv - Win32 Debug_TS"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug_TS"
-# PROP BASE Intermediate_Dir "Debug_TS"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug_TS"
-# PROP Intermediate_Dir "Debug_TS"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ICONV_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\main" /I "..\..\win32" /I "..\..\..\php_build\iconv\include" /D ZEND_DEBUG=1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "PHP_EXPORTS" /D "COMPILE_DL_ICONV" /D "ZEND_WIN32" /D "PHP_WIN32" /D "HAVE_ICONV" /D ZTS=1 /D "HAVE_LIBICONV" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x407 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 php4ts_debug.lib iconv-1.3.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"..\..\Debug_TS/php_iconv.dll" /pdbtype:sept /libpath:"..\..\Debug_TS" /libpath:"..\..\..\php_build\iconv\lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "iconv - Win32 Release_TS"
-# Name "iconv - Win32 Debug_TS"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\iconv.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\php_iconv.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/ext/iconv/php_iconv.h b/ext/iconv/php_iconv.h deleted file mode 100644 index ad5509c26f..0000000000 --- a/ext/iconv/php_iconv.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2003 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.02 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available at through the world-wide-web at | - | http://www.php.net/license/2_02.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rui Hirokawa <rui_hirokawa@ybb.ne.jp> | - | Stig Bakken <ssb@fast.no> | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_ICONV_H -#define PHP_ICONV_H - -#ifdef PHP_WIN32 -#define PHP_ICONV_API __declspec(dllexport) -#else -#define PHP_ICONV_API -#endif - -#ifdef PHP_ATOM_INC -#include "php_have_iconv.h" -#include "php_have_libiconv.h" -#endif - - -#ifdef HAVE_ICONV -extern zend_module_entry iconv_module_entry; -#define iconv_module_ptr &iconv_module_entry - -PHP_MINIT_FUNCTION(miconv); -PHP_MSHUTDOWN_FUNCTION(miconv); -PHP_MINFO_FUNCTION(miconv); - -PHP_NAMED_FUNCTION(php_if_iconv); -PHP_FUNCTION(ob_iconv_handler); -PHP_FUNCTION(iconv_get_encoding); -PHP_FUNCTION(iconv_set_encoding); -PHP_FUNCTION(iconv_strlen); -PHP_FUNCTION(iconv_substr); -PHP_FUNCTION(iconv_strpos); -PHP_FUNCTION(iconv_strrpos); -PHP_FUNCTION(iconv_mime_encode); -PHP_FUNCTION(iconv_mime_decode); - -ZEND_BEGIN_MODULE_GLOBALS(iconv) - char *input_encoding; - char *internal_encoding; - char *output_encoding; -ZEND_END_MODULE_GLOBALS(iconv) - -#ifdef ZTS -#define ICONVG(v) TSRMG(iconv_globals_id, zend_iconv_globals *, v) -#else -#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" - -#else - -#define iconv_module_ptr NULL - -#endif /* HAVE_ICONV */ - -#define phpext_iconv_ptr iconv_module_ptr - -#endif /* PHP_ICONV_H */ - - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ diff --git a/ext/iconv/tests/Quotes.UTF-8 b/ext/iconv/tests/Quotes.UTF-8 deleted file mode 100644 index 3d48ee970a..0000000000 --- a/ext/iconv/tests/Quotes.UTF-8 +++ /dev/null @@ -1,4 +0,0 @@ -“Hello” -‘Hello’ -„Hello” -‚Hello’ diff --git a/ext/iconv/tests/bug16069.phpt b/ext/iconv/tests/bug16069.phpt deleted file mode 100644 index 0d58defe3c..0000000000 --- a/ext/iconv/tests/bug16069.phpt +++ /dev/null @@ -1,22 +0,0 @@ ---TEST-- -Bug #16069 ---SKIPIF-- -<?php -/* include( 'skipif.inc' ); */ -if (@iconv('CP932', 'EUC-JP//TRANSLIT', "\x87\x6d")=='') { - die("skip CP932 translit not available\n"); -} -?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -/* charset=CP932, KOI8-R */ -$str = "\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d"; -print iconv( "CP932", "EUC-JP//TRANSLIT", $str ); -$str = "(\x9c\xe4\x9c)"; -print iconv( "KOI8-R", "EUC-JP//TRANSLIT", $str ); -?> ---EXPECT-- -ߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥСߥС(맥) diff --git a/ext/iconv/tests/eucjp2iso2022jp.phpt b/ext/iconv/tests/eucjp2iso2022jp.phpt deleted file mode 100644 index 13dab43d4c..0000000000 --- a/ext/iconv/tests/eucjp2iso2022jp.phpt +++ /dev/null @@ -1,27 +0,0 @@ ---TEST-- -EUC-JP to ISO-2022-JP ---SKIPIF-- -<?php /* include('skipif.inc'); */ ?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -/* charset=EUC-JP */ - -function hexdump($str) { - $len = strlen($str); - for ($i = 0; $i < $len; ++$i) { - printf("%02x", ord($str{$i})); - } - print "\n"; -} - -$str = str_repeat("ܸƥȤ English text", 30); -$str .= "ܸ"; - -echo hexdump(iconv("EUC-JP", "ISO-2022-JP", $str)); -?> ---EXPECT-- -1b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c2546252d2539254824481b284220456e676c69736820746578741b2442467c4b5c386c1b2842 - diff --git a/ext/iconv/tests/eucjp2sjis.phpt b/ext/iconv/tests/eucjp2sjis.phpt deleted file mode 100644 index c1cac62e85..0000000000 --- a/ext/iconv/tests/eucjp2sjis.phpt +++ /dev/null @@ -1,58 +0,0 @@ ---TEST-- -EUC-JP to SJIS ---SKIPIF-- -<?php /* include('skipif.inc'); */ ?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -/* charset=EUC-JP */ - -$str = " -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -"; - -$str = iconv("EUC-JP", "SJIS", $str); -$str = base64_encode($str); -echo $str."\n"; - -?> ---EXPECT-- -CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0CpP6lnuM6oNlg0yDWINngsZFbmdsaXNoIFRleHQKk/qWe4zqg2WDTINYg2eCxkVuZ2xpc2ggVGV4dAqT+pZ7jOqDZYNMg1iDZ4LGRW5nbGlzaCBUZXh0Cg== - diff --git a/ext/iconv/tests/eucjp2utf8.phpt b/ext/iconv/tests/eucjp2utf8.phpt deleted file mode 100644 index 2100385cd6..0000000000 --- a/ext/iconv/tests/eucjp2utf8.phpt +++ /dev/null @@ -1,58 +0,0 @@ ---TEST-- -EUC-JP to UTF8 ---SKIPIF-- -<?php /* include('skipif.inc'); */ ?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -/* charset=EUC-JP */ - -$str = " -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -ܸƥȤEnglish Text -"; - -$str = iconv("EUC-JP", "UTF-8", $str); /* libiconv(1.8) doesn't know "UTF8" but "UTF-8". */ -$str = base64_encode($str); -echo $str."\n"; - -?> ---EXPECT-- -CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0Cg== - diff --git a/ext/iconv/tests/iconv001.phpt b/ext/iconv/tests/iconv001.phpt deleted file mode 100644 index d2c1f3ed60..0000000000 --- a/ext/iconv/tests/iconv001.phpt +++ /dev/null @@ -1,18 +0,0 @@ ---TEST-- -iconv() test 1 ---SKIPIF-- -<?php /* include('skipif.inc'); */ ?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -echo "iconv extension is available\n"; -$test = ""; -var_dump("ISO-8859-1: $test"); -var_dump("UTF-8: ".iconv( "ISO-8859-1", "UTF-8", $test ) ); -?> ---EXPECT-- -iconv extension is available -string(15) "ISO-8859-1: " -string(13) "UTF-8: æøå" diff --git a/ext/iconv/tests/iconv002.phpt b/ext/iconv/tests/iconv002.phpt deleted file mode 100644 index 8aded58866..0000000000 --- a/ext/iconv/tests/iconv002.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -iconv() test 2 (UCS4BE to ASCII) ---SKIPIF-- -<?php -/* include('skipif.inc'); */ -if (@iconv("ascii","UCS-4LE", "abcd") == '') { - die("skip conversion to UCS-4LE not supported"); -} -?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -/* -Expected output: -abcd -abcd -*/ - - $s = unpack("V*", iconv("ascii","UCS-4LE", "abcd")); - foreach($s as $c) { print "&#$c;"; } print "\n"; - - $s = pack("NNNN", 97, 98, 99, 100); - $q = iconv("UCS-4BE", "ascii", $s); - print $q; print "\n"; -?> ---EXPECT-- -abcd -abcd diff --git a/ext/iconv/tests/iconv003.phpt b/ext/iconv/tests/iconv003.phpt deleted file mode 100644 index 9fcfe4b0cd..0000000000 --- a/ext/iconv/tests/iconv003.phpt +++ /dev/null @@ -1,13 +0,0 @@ ---TEST-- -iconv() test 3 ---FILE-- -<?php -for ($i = 0; $i < 3; ++$i) { - if (@iconv('blah', 'blah', 'blah') != '') { - die("failed\n"); - } -} -echo "success\n"; -?> ---EXPECT-- -success diff --git a/ext/iconv/tests/iconv_mime_decode.phpt b/ext/iconv/tests/iconv_mime_decode.phpt deleted file mode 100644 index 32682c8d10..0000000000 --- a/ext/iconv/tests/iconv_mime_decode.phpt +++ /dev/null @@ -1,17 +0,0 @@ ---TEST-- -iconv_mime_decode() (quoted-printable) ---SKIPIF-- -<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?> ---INI-- -iconv.internal_charset=iso-8859-1 ---FILE-- -<?php -$header = <<< HERE -Subject: =?ISO-8859-1?Q?Pr=FCfung?= - =?ISO-8859-1*de_DE?Q?=20Pr=FCfung?= - =?ISO-8859-2?Q?k=F9=D4=F1=D3let?= -HERE; -$result = iconv_mime_decode($header, "UTF-8"); -printf("(%d) \"%s\"\n", iconv_strlen($result, "UTF-8"), $result); ---EXPECT-- -(33) "Subject: Prüfung Prüfung kůÔńÓlet" diff --git a/ext/iconv/tests/iconv_mime_encode.phpt b/ext/iconv/tests/iconv_mime_encode.phpt deleted file mode 100644 index 1c58640200..0000000000 --- a/ext/iconv/tests/iconv_mime_encode.phpt +++ /dev/null @@ -1,393 +0,0 @@ ---TEST-- -iconv_mime_encode() ---SKIPIF-- -<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?> ---INI-- -iconv.internal_charset=iso-8859-1 ---FILE-- -<?php -function my_error_handler($errno, $errmsg, $filename, $linenum, $vars) -{ - echo "$errno: $errmsg\n"; -} -set_error_handler('my_error_handler'); -for ($line_len= 0; $line_len < 80; ++$line_len) { - print "-------- line length=$line_len\n"; - $result = iconv_mime_encode("From", "ץʸץʸܸƥ", "B", "ISO-2022-JP", "EUC-JP", $line_len, "\n"); - var_dump($result); - if ($result !== false) { - list($max) = rsort(array_map("strlen", explode("\n", $result))); - print "-------- "; - var_dump(($max <= $line_len)); - } else { - print "-------- \n"; - } -} -?> ---EXPECTF-- --------- line length=0 -2: %s -bool(false) --------- --------- line length=1 -2: %s -bool(false) --------- --------- line length=2 -2: %s -bool(false) --------- --------- line length=3 -2: %s -bool(false) --------- --------- line length=4 -2: %s -bool(false) --------- --------- line length=5 -2: %s -bool(false) --------- --------- line length=6 -2: %s -bool(false) --------- --------- line length=7 -2: %s -bool(false) --------- --------- line length=8 -2: %s -bool(false) --------- --------- line length=9 -2: %s -bool(false) --------- --------- line length=10 -2: %s -bool(false) --------- --------- line length=11 -2: %s -bool(false) --------- --------- line length=12 -2: %s -bool(false) --------- --------- line length=13 -2: %s -bool(false) --------- --------- line length=14 -2: %s -bool(false) --------- --------- line length=15 -2: %s -bool(false) --------- --------- line length=16 -2: %s -bool(false) --------- --------- line length=17 -2: %s -bool(false) --------- --------- line length=18 -2: %s -bool(false) --------- --------- line length=19 -2: %s -bool(false) --------- --------- line length=20 -2: %s -bool(false) --------- --------- line length=21 -2: %s -bool(false) --------- --------- line length=22 -2: %s -bool(false) --------- --------- line length=23 -2: %s -bool(false) --------- --------- line length=24 -2: %s -bool(false) --------- --------- line length=25 -2: %s -bool(false) --------- --------- line length=26 -2: %s -bool(false) --------- --------- line length=27 -2: %s -bool(false) --------- --------- line length=28 -2: %s -bool(false) --------- --------- line length=29 -2: %s -bool(false) --------- --------- line length=30 -2: %s -bool(false) --------- --------- line length=31 -2: %s -bool(false) --------- --------- line length=32 -2: %s -bool(false) --------- --------- line length=33 -2: %s -bool(false) --------- --------- line length=34 -2: %s -bool(false) --------- --------- line length=35 -2: %s -bool(false) --------- --------- line length=36 -string(216) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= - =?ISO-2022-JP?B?JXMlVyVrSjgbKEI=?= - =?ISO-2022-JP?B?O3pOcyU1JXMbKEI=?= - =?ISO-2022-JP?B?JVcla0o4O3obKEI=?= - =?ISO-2022-JP?B?TnNGfEtcOGwbKEI=?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=37 -string(216) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= - =?ISO-2022-JP?B?JXMlVyVrSjgbKEI=?= - =?ISO-2022-JP?B?O3pOcyU1JXMbKEI=?= - =?ISO-2022-JP?B?JVcla0o4O3obKEI=?= - =?ISO-2022-JP?B?TnNGfEtcOGwbKEI=?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=38 -string(216) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= - =?ISO-2022-JP?B?JXMlVyVrSjgbKEI=?= - =?ISO-2022-JP?B?O3pOcyU1JXMbKEI=?= - =?ISO-2022-JP?B?JVcla0o4O3obKEI=?= - =?ISO-2022-JP?B?TnNGfEtcOGwbKEI=?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=39 -string(196) "From: =?ISO-2022-JP?B?GyRCJTUbKEI=?= - =?ISO-2022-JP?B?JXMlVyVrSjg7ehsoQg==?= - =?ISO-2022-JP?B?TnMlNSVzJVclaxsoQg==?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXBsoQg==?= - =?ISO-2022-JP?B?OGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=40 -string(196) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= - =?ISO-2022-JP?B?JVcla0o4O3pOcxsoQg==?= - =?ISO-2022-JP?B?JTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOc0Z8S1w4bBsoQg==?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=41 -string(196) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= - =?ISO-2022-JP?B?JVcla0o4O3pOcxsoQg==?= - =?ISO-2022-JP?B?JTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOc0Z8S1w4bBsoQg==?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=42 -string(196) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= - =?ISO-2022-JP?B?JVcla0o4O3pOcxsoQg==?= - =?ISO-2022-JP?B?JTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOc0Z8S1w4bBsoQg==?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=43 -string(168) "From: =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?= - =?ISO-2022-JP?B?JVcla0o4O3pOcyU1JXMbKEI=?= - =?ISO-2022-JP?B?JVcla0o4O3pOc0Z8S1wbKEI=?= - =?ISO-2022-JP?B?OGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=44 -string(164) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= - =?ISO-2022-JP?B?Sjg7ek5zJTUlcyVXJWsbKEI=?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXDhsJUYbKEI=?= - =?ISO-2022-JP?B?JS0lOSVIGyhC?=" --------- bool(true) --------- line length=45 -string(164) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= - =?ISO-2022-JP?B?Sjg7ek5zJTUlcyVXJWsbKEI=?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXDhsJUYbKEI=?= - =?ISO-2022-JP?B?JS0lOSVIGyhC?=" --------- bool(true) --------- line length=46 -string(164) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= - =?ISO-2022-JP?B?Sjg7ek5zJTUlcyVXJWsbKEI=?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXDhsJUYbKEI=?= - =?ISO-2022-JP?B?JS0lOSVIGyhC?=" --------- bool(true) --------- line length=47 -string(168) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWsbKEI=?= - =?ISO-2022-JP?B?Sjg7ek5zJTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOc0Z8S1w4bCVGJS0lORsoQg==?= - =?ISO-2022-JP?B?JUgbKEI=?=" --------- bool(true) --------- line length=48 -string(144) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOcyU1JXMlVyVrSjg7ehsoQg==?= - =?ISO-2022-JP?B?TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=49 -string(144) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOcyU1JXMlVyVrSjg7ehsoQg==?= - =?ISO-2022-JP?B?TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=50 -string(144) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOcyU1JXMlVyVrSjg7ehsoQg==?= - =?ISO-2022-JP?B?TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=51 -string(140) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKOBsoQg==?= - =?ISO-2022-JP?B?O3pOcyU1JXMlVyVrSjg7ek5zRnwbKEI=?= - =?ISO-2022-JP?B?S1w4bCVGJS0lOSVIGyhC?=" --------- bool(true) --------- line length=52 -string(140) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= - =?ISO-2022-JP?B?JTUlcyVXJWtKODt6TnNGfEtcOGwbKEI=?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=53 -string(140) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= - =?ISO-2022-JP?B?JTUlcyVXJWtKODt6TnNGfEtcOGwbKEI=?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=54 -string(140) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= - =?ISO-2022-JP?B?JTUlcyVXJWtKODt6TnNGfEtcOGwbKEI=?= - =?ISO-2022-JP?B?JUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=55 -string(140) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMbKEI=?= - =?ISO-2022-JP?B?JTUlcyVXJWtKODt6TnNGfEtcOGwlRhsoQg==?= - =?ISO-2022-JP?B?JS0lOSVIGyhC?=" --------- bool(true) --------- line length=56 -string(144) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= - =?ISO-2022-JP?B?JXMlVyVrSjg7ek5zRnxLXDhsJUYlLRsoQg==?= - =?ISO-2022-JP?B?JTklSBsoQg==?=" --------- bool(true) --------- line length=57 -string(144) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= - =?ISO-2022-JP?B?JXMlVyVrSjg7ek5zRnxLXDhsJUYlLRsoQg==?= - =?ISO-2022-JP?B?JTklSBsoQg==?=" --------- bool(true) --------- line length=58 -string(144) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= - =?ISO-2022-JP?B?JXMlVyVrSjg7ek5zRnxLXDhsJUYlLRsoQg==?= - =?ISO-2022-JP?B?JTklSBsoQg==?=" --------- bool(true) --------- line length=59 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNRsoQg==?= - =?ISO-2022-JP?B?JXMlVyVrSjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=60 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= - =?ISO-2022-JP?B?JWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=61 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= - =?ISO-2022-JP?B?JWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=62 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= - =?ISO-2022-JP?B?JWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=63 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcbKEI=?= - =?ISO-2022-JP?B?JWtKODt6TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=64 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=65 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=66 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=67 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVclaxsoQg==?= - =?ISO-2022-JP?B?Sjg7ek5zRnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=68 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= - =?ISO-2022-JP?B?TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=69 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= - =?ISO-2022-JP?B?TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=70 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= - =?ISO-2022-JP?B?TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=71 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3obKEI=?= - =?ISO-2022-JP?B?TnNGfEtcOGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=72 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= - =?ISO-2022-JP?B?RnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=73 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= - =?ISO-2022-JP?B?RnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=74 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= - =?ISO-2022-JP?B?RnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=75 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOcxsoQg==?= - =?ISO-2022-JP?B?RnxLXDhsJUYlLSU5JUgbKEI=?=" --------- bool(true) --------- line length=76 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= - =?ISO-2022-JP?B?OGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=77 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= - =?ISO-2022-JP?B?OGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=78 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= - =?ISO-2022-JP?B?OGwlRiUtJTklSBsoQg==?=" --------- bool(true) --------- line length=79 -string(116) "From: =?ISO-2022-JP?B?GyRCJTUlcyVXJWtKODt6TnMlNSVzJVcla0o4O3pOc0Z8S1wbKEI=?= - =?ISO-2022-JP?B?OGwlRiUtJTklSBsoQg==?=" --------- bool(true) - diff --git a/ext/iconv/tests/iconv_strlen.phpt b/ext/iconv/tests/iconv_strlen.phpt deleted file mode 100644 index 2c815f4f31..0000000000 --- a/ext/iconv/tests/iconv_strlen.phpt +++ /dev/null @@ -1,19 +0,0 @@ ---TEST-- -iconv_strlen() ---SKIPIF-- -<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?> ---FILE-- -<?php -function foo($str, $charset) { - var_dump(strlen($str)); - var_dump(iconv_strlen($str, $charset)); -} - -foo("abc", "ASCII"); -foo("ܸ EUC-JP", "EUC-JP"); -?> ---EXPECT-- -int(3) -int(3) -int(13) -int(10) diff --git a/ext/iconv/tests/iconv_strpos.phpt b/ext/iconv/tests/iconv_strpos.phpt deleted file mode 100644 index ccf4ea74a7..0000000000 --- a/ext/iconv/tests/iconv_strpos.phpt +++ /dev/null @@ -1,52 +0,0 @@ ---TEST-- -iconv_strpos() ---SKIPIF-- -<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?> ---INI-- -iconv.internal_charset=ISO-8859-1 ---FILE-- -<?php -function my_error_handler($errno, $errmsg, $filename, $linenum, $vars) -{ - echo "$errno: $errmsg\n"; -} -set_error_handler('my_error_handler'); -function foo($haystk, $needle, $offset, $to_charset = false, $from_charset = false) -{ - if ($from_charset !== false) { - $haystk = iconv($from_charset, $to_charset, $haystk); - } - var_dump(strpos($haystk, $needle, $offset)); - if ($to_charset !== false) { - var_dump(iconv_strpos($haystk, $needle, $offset, $to_charset)); - } else { - var_dump(iconv_strpos($haystk, $needle, $offset)); - } -} -foo("abecdbcdabef", "bcd", -1); -foo("abecdbcdabef", "bcd", 100000); -foo("abcabcabcdabcababcdabc", "bcd", 0); -foo("abcabcabcdabcababcdabc", "bcd", 10); -foo(str_repeat("abcab", 60)."abcdb".str_repeat("adabc", 60), "abcd", 0); -foo(str_repeat("", 30)."".str_repeat("", 30), "", 0, "EUC-JP"); -$str = str_repeat("", 60).'$'.str_repeat("", 60); -foo($str, '$', 0, "ISO-2022-JP", "EUC-JP"); -?> ---EXPECTF-- -2: %s -bool(false) -2: %s -bool(false) -2: %s -bool(false) -bool(false) -int(7) -int(7) -int(16) -int(16) -int(300) -int(300) -int(302) -int(151) -int(1) -int(300) diff --git a/ext/iconv/tests/iconv_strrpos.phpt b/ext/iconv/tests/iconv_strrpos.phpt deleted file mode 100644 index f150f88422..0000000000 --- a/ext/iconv/tests/iconv_strrpos.phpt +++ /dev/null @@ -1,56 +0,0 @@ ---TEST-- -iconv_strrpos() ---SKIPIF-- -<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?> ---INI-- -iconv.internal_charset=ISO-8859-1 ---FILE-- -<?php -function my_error_handler($errno, $errmsg, $filename, $linenum, $vars) -{ - echo "$errno: $errmsg\n"; -} -set_error_handler('my_error_handler'); -function foo($haystk, $needle, $to_charset = false, $from_charset = false) -{ - if ($from_charset !== false) { - $haystk = iconv($from_charset, $to_charset, $haystk); - } - if ($to_charset !== false) { - var_dump(iconv_strlen($haystk, $to_charset)); - var_dump(iconv_strrpos($haystk, $needle, $to_charset)); - } else { - var_dump(iconv_strlen($haystk)); - var_dump(iconv_strrpos($haystk, $needle)); - } -} -foo("abecdbcdabcdef", "bcd"); -foo(str_repeat("abcab", 60)."abcdb".str_repeat("adabc", 60), "abcd"); -foo(str_repeat("", 30)."".str_repeat("", 30), "", "EUC-JP"); - -for ($i = 0; $i <=6; ++$i) { - $str = str_repeat("", 60).str_repeat('$', $i).str_repeat("", 60); - foo($str, '$', "ISO-2022-JP", "EUC-JP"); -} -?> ---EXPECT-- -int(14) -int(9) -int(605) -int(300) -int(305) -int(151) -int(600) -bool(false) -int(601) -int(300) -int(602) -int(301) -int(603) -int(302) -int(604) -int(303) -int(605) -int(304) -int(606) -int(305) diff --git a/ext/iconv/tests/iconv_substr.phpt b/ext/iconv/tests/iconv_substr.phpt deleted file mode 100644 index efa746e6de..0000000000 --- a/ext/iconv/tests/iconv_substr.phpt +++ /dev/null @@ -1,59 +0,0 @@ ---TEST-- -iconv_substr() ---SKIPIF-- -<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?> ---INI-- -iconv.internal_charset=ISO-8859-1 ---FILE-- -<?php -function hexdump($str) { - $len = strlen($str); - for ($i = 0; $i < $len; ++$i) { - printf("%02x", ord($str{$i})); - } - print "\n"; -} - -function foo($str, $offset, $len, $charset) { - hexdump(substr($str, $offset, $len)); - hexdump(iconv_substr($str, $offset, $len, $charset)); -} - -function bar($str, $offset, $len = false) { - if (is_bool($len)) { - var_dump(substr($str, $offset)); - var_dump(iconv_substr($str, $offset)); - } else { - var_dump(substr($str, $offset, $len)); - var_dump(iconv_substr($str, $offset, $len)); - } -} - -foo("abcdefghijklmnopqrstuvwxyz", 5, 7, "ASCII"); -foo("", 5, 7, "EUC-JP"); -bar("This is a test", 100000); -bar("This is a test", 0, 100000); -bar("This is a test", -3); -bar("This is a test", 0, -9); -bar("This is a test", 0, -100000); -bar("This is a test", -9, -100000); -var_dump(iconv("ISO-2022-JP", "EUC-JP", iconv_substr(iconv("EUC-JP", "ISO-2022-JP", "ˤ ISO-2022-JP"), 3, 8, "ISO-2022-JP"))); -?> ---EXPECT-- -666768696a6b6c -666768696a6b6c -a6a4a8a4aaa4ab -a4aba4ada4afa4b1a4b3a4b5a4b7 -bool(false) -string(0) "" -string(14) "This is a test" -string(14) "This is a test" -string(3) "est" -string(3) "est" -string(5) "This " -string(5) "This " -string(0) "" -string(0) "" -string(0) "" -string(0) "" -string(10) " ISO-2" diff --git a/ext/iconv/tests/ob_iconv_handler.phpt b/ext/iconv/tests/ob_iconv_handler.phpt deleted file mode 100644 index f26f87e97c..0000000000 --- a/ext/iconv/tests/ob_iconv_handler.phpt +++ /dev/null @@ -1,17 +0,0 @@ ---TEST-- -ob_iconv_handler() ---SKIPIF-- -<?php /* include('skipif.inc'); */ ?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -iconv_set_encoding('internal_encoding', 'EUC-JP'); -iconv_set_encoding('output_encoding', 'Shift_JIS'); -ob_start('ob_iconv_handler'); -print ""; -ob_end_flush(); -?> ---EXPECT-- - diff --git a/ext/iconv/tests/skipif.inc b/ext/iconv/tests/skipif.inc deleted file mode 100644 index 6f7bbf2b86..0000000000 --- a/ext/iconv/tests/skipif.inc +++ /dev/null @@ -1,12 +0,0 @@ -<?php -// This script prints "skip" if condition does not meet. - -// Do not dl load extension -//if (!extension_loaded("iconv") && ini_get("enable_dl")) { -// $dlext = (substr(PHP_OS, 0, 3) == "WIN") ? ".dll" : ".so"; -// @dl("iconv$dlext"); -//} -if (!extension_loaded("iconv")) { - die("skip iconv extension not available\n"); -} -?>
\ No newline at end of file diff --git a/ext/iconv/tests/test.inc b/ext/iconv/tests/test.inc deleted file mode 100644 index 78f180462f..0000000000 --- a/ext/iconv/tests/test.inc +++ /dev/null @@ -1,7 +0,0 @@ -<?php -// Do not dl load extension -//if (!extension_loaded("iconv") && ini_get("enable_dl")) { -// $dlext = (substr(PHP_OS, 0, 3) == "WIN") ? ".dll" : ".so"; -// @dl("iconv$dlext"); -//} -?>
\ No newline at end of file diff --git a/ext/iconv/tests/translit-failure.phpt b/ext/iconv/tests/translit-failure.phpt deleted file mode 100644 index d0fbf5c86a..0000000000 --- a/ext/iconv/tests/translit-failure.phpt +++ /dev/null @@ -1,33 +0,0 @@ ---TEST-- -Translit failure ---SKIPIF-- -<?php -/* include('skipif.inc'); */ -( ICONV_IMPL != "libiconv" ) and die("skip ICONV_IMPL != \"libiconv\""); -?> ---INI-- -error_reporting=2039 ---FILE-- -<?php -/* include('test.inc'); */ -// Should be ok. -// Content from file is from libiconv testkit. Tested both -// with a string as an implode, no difference. -// if at some point internal encoding changes, set correct one -// in INI section or use file 'TranslitFail1.ISO-8859-1'. - -set_time_limit(5); -/* - * The bug (fixed in libiconv 1.8) was confirmed that iconv goes into an - * infinite loop when ASCII//TRANSLIT is performed. We should stop it in - * some time. - */ - -$test = 'crit par %s.'; - -if (!@iconv("ISO-8859-1", "ASCII//TRANSLIT", $test)) { - echo 'wrong is right'; -} -?> ---EXPECT-- -wrong is right diff --git a/ext/iconv/tests/translit-utf8.phpt b/ext/iconv/tests/translit-utf8.phpt deleted file mode 100644 index 10f9605bb1..0000000000 --- a/ext/iconv/tests/translit-utf8.phpt +++ /dev/null @@ -1,28 +0,0 @@ ---TEST-- -Translit UTF-8 quotes ---SKIPIF-- -<?php -/* include('skipif.inc'); */ -( ICONV_IMPL != "libiconv" ) and die("skip ICONV_IMPL != \"libiconv\""); -?> ---INI-- -magic_quotes_runtime=0 -error_reporting=2047 ---FILE-- -<?php // vim600: syn=php -/* include('test.inc'); */ -//error_reporting(E_ALL); -$utf = implode('', file('ext/iconv/tests/Quotes.UTF-8')); - -print(iconv("UTF-8", "ISO-8859-1//TRANSLIT", $utf)); -print(iconv("UTF-8", "ASCII//TRANSLIT", $utf)); -?> ---EXPECT-- -"Hello" -`Hello -"Hello" -`Hello -"Hello" -'Hello' -"Hello" -'Hello' |