moriyoshi Sun Mar 15 20:44:17 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mbstring mb_gpc.c mbstring.c mbstring.h Log: - MFH: Fix a bug that mbstring.internal_encoding doesn't take effect within the request encoding converter. http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mb_gpc.c?r1=1.17.2.2.2.5&r2=1.17.2.2.2.6&diff_format=u Index: php-src/ext/mbstring/mb_gpc.c diff -u php-src/ext/mbstring/mb_gpc.c:1.17.2.2.2.5 php-src/ext/mbstring/mb_gpc.c:1.17.2.2.2.6 --- php-src/ext/mbstring/mb_gpc.c:1.17.2.2.2.5 Wed Dec 31 11:17:39 2008 +++ php-src/ext/mbstring/mb_gpc.c Sun Mar 15 20:44:17 2009 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mb_gpc.c,v 1.17.2.2.2.5 2008/12/31 11:17:39 sebastian Exp $ */ +/* $Id: mb_gpc.c,v 1.17.2.2.2.6 2009/03/15 20:44:17 moriyoshi Exp $ */ /* {{{ includes */ #ifdef HAVE_CONFIG_H @@ -59,6 +59,11 @@ enum mbfl_no_encoding detected; php_mb_encoding_handler_info_t info; + { + char *value = zend_ini_string("mbstring.internal_encoding", sizeof("mbstring.internal_encoding"), 0); + _php_mb_ini_mbstring_internal_encoding_set(value, value ? strlen(value): 0 TSRMLS_CC); + } + if (!MBSTRG(encoding_translation)) { php_default_treat_data(arg, str, destArray TSRMLS_CC); return; http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.224.2.22.2.46&r2=1.224.2.22.2.47&diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.224.2.22.2.46 php-src/ext/mbstring/mbstring.c:1.224.2.22.2.47 --- php-src/ext/mbstring/mbstring.c:1.224.2.22.2.46 Sun Feb 15 07:11:23 2009 +++ php-src/ext/mbstring/mbstring.c Sun Mar 15 20:44:17 2009 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.c,v 1.224.2.22.2.46 2009/02/15 07:11:23 moriyoshi Exp $ */ +/* $Id: mbstring.c,v 1.224.2.22.2.47 2009/03/15 20:44:17 moriyoshi Exp $ */ /* * PHP 4 Multibyte String module "mbstring" @@ -656,7 +656,7 @@ /* }}} */ /* {{{ static _php_mb_ini_mbstring_internal_encoding_set */ -static int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, uint new_value_length TSRMLS_DC) +int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, uint new_value_length TSRMLS_DC) { enum mbfl_no_encoding no_encoding; const char *enc_name = NULL; @@ -826,7 +826,6 @@ if (MBSTRG(encoding_translation)) { sapi_unregister_post_entry(php_post_entries TSRMLS_CC); sapi_register_post_entries(mbstr_post_entries TSRMLS_CC); - sapi_register_treat_data(mbstr_treat_data); } else { sapi_unregister_post_entry(mbstr_post_entries TSRMLS_CC); sapi_register_post_entries(php_post_entries TSRMLS_CC); @@ -927,9 +926,12 @@ REGISTER_INI_ENTRIES(); + /* This is a global handler. Should not be set in a per-request handler. */ + sapi_register_treat_data(mbstr_treat_data); + + /* Post handlers are stored in the thread-local context. */ if (MBSTRG(encoding_translation)) { sapi_register_post_entries(mbstr_post_entries TSRMLS_CC); - sapi_register_treat_data(mbstr_treat_data); } REGISTER_LONG_CONSTANT("MB_OVERLOAD_MAIL", MB_OVERLOAD_MAIL, CONST_CS | CONST_PERSISTENT); @@ -968,11 +970,6 @@ zend_function *func, *orig; const struct mb_overload_def *p; - { - char *value = zend_ini_string("mbstring.internal_encoding", sizeof("mbstring.internal_encoding"), 0); - _php_mb_ini_mbstring_internal_encoding_set(value, value ? strlen(value): 0 TSRMLS_CC); - } - MBSTRG(current_internal_encoding) = MBSTRG(internal_encoding); MBSTRG(current_http_output_encoding) = MBSTRG(http_output_encoding); MBSTRG(current_filter_illegal_mode) = MBSTRG(filter_illegal_mode); http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.h?r1=1.66.2.4.2.9&r2=1.66.2.4.2.10&diff_format=u Index: php-src/ext/mbstring/mbstring.h diff -u php-src/ext/mbstring/mbstring.h:1.66.2.4.2.9 php-src/ext/mbstring/mbstring.h:1.66.2.4.2.10 --- php-src/ext/mbstring/mbstring.h:1.66.2.4.2.9 Wed Dec 31 11:17:39 2008 +++ php-src/ext/mbstring/mbstring.h Sun Mar 15 20:44:17 2009 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.h,v 1.66.2.4.2.9 2008/12/31 11:17:39 sebastian Exp $ */ +/* $Id: mbstring.h,v 1.66.2.4.2.10 2009/03/15 20:44:17 moriyoshi Exp $ */ /* * PHP 4 Multibyte String module "mbstring" (currently only for Japanese) @@ -159,6 +159,9 @@ MBSTRING_API int php_mb_stripos(int mode, char *old_haystack, int old_haystack_len, char *old_needle, int old_needle_len, long offset, char *from_encoding TSRMLS_DC); +/* internal use only */ +int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, uint new_value_length TSRMLS_DC); + ZEND_BEGIN_MODULE_GLOBALS(mbstring) enum mbfl_no_language language; enum mbfl_no_encoding internal_encoding;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php