moriyoshi               Sun Mar 15 20:42:57 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /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.3.2.2&r2=1.17.2.2.2.3.2.3&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.3.2.2 
php-src/ext/mbstring/mb_gpc.c:1.17.2.2.2.3.2.3
--- php-src/ext/mbstring/mb_gpc.c:1.17.2.2.2.3.2.2      Wed Dec 31 11:15:38 2008
+++ php-src/ext/mbstring/mb_gpc.c       Sun Mar 15 20:42:56 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: mb_gpc.c,v 1.17.2.2.2.3.2.2 2008/12/31 11:15:38 sebastian Exp $ */
+/* $Id: mb_gpc.c,v 1.17.2.2.2.3.2.3 2009/03/15 20:42:56 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.25.2.51&r2=1.224.2.22.2.25.2.52&diff_format=u
Index: php-src/ext/mbstring/mbstring.c
diff -u php-src/ext/mbstring/mbstring.c:1.224.2.22.2.25.2.51 
php-src/ext/mbstring/mbstring.c:1.224.2.22.2.25.2.52
--- php-src/ext/mbstring/mbstring.c:1.224.2.22.2.25.2.51        Fri Mar  6 
15:48:30 2009
+++ php-src/ext/mbstring/mbstring.c     Sun Mar 15 20:42:56 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: mbstring.c,v 1.224.2.22.2.25.2.51 2009/03/06 15:48:30 iliaa Exp $ */
+/* $Id: mbstring.c,v 1.224.2.22.2.25.2.52 2009/03/15 20:42:56 moriyoshi Exp $ 
*/
 
 /*
  * PHP 4 Multibyte String module "mbstring"
@@ -1203,7 +1203,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;
@@ -1370,7 +1370,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);
@@ -1512,9 +1511,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);
@@ -1553,11 +1555,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.5.2.10&r2=1.66.2.4.2.5.2.11&diff_format=u
Index: php-src/ext/mbstring/mbstring.h
diff -u php-src/ext/mbstring/mbstring.h:1.66.2.4.2.5.2.10 
php-src/ext/mbstring/mbstring.h:1.66.2.4.2.5.2.11
--- php-src/ext/mbstring/mbstring.h:1.66.2.4.2.5.2.10   Sat Feb 14 07:34:15 2009
+++ php-src/ext/mbstring/mbstring.h     Sun Mar 15 20:42:56 2009
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: mbstring.h,v 1.66.2.4.2.5.2.10 2009/02/14 07:34:15 moriyoshi Exp $ */
+/* $Id: mbstring.h,v 1.66.2.4.2.5.2.11 2009/03/15 20:42:56 moriyoshi Exp $ */
 
 /*
  * PHP 4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -159,6 +159,9 @@
 
 MBSTRING_API int php_mb_stripos(int mode, const char *old_haystack, unsigned 
int old_haystack_len, const char *old_needle, unsigned int old_needle_len, long 
offset, const 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

Reply via email to