moriyoshi Thu Aug 7 15:45:26 2003 EDT
Modified files:
/php-src/ext/mbstring mbstring.c
Log:
Fix wrong behaviour under ZTS that was inconsistent with non-ZTS.
# This patch really needs MFH
Index: php-src/ext/mbstring/mbstring.c
diff -u php-src/ext/mbstring/mbstring.c:1.183 php-src/ext/mbstring/mbstring.c:1.184
--- php-src/ext/mbstring/mbstring.c:1.183 Wed Aug 6 18:01:23 2003
+++ php-src/ext/mbstring/mbstring.c Thu Aug 7 15:45:26 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.183 2003/08/06 22:01:23 moriyoshi Exp $ */
+/* $Id: mbstring.c,v 1.184 2003/08/07 19:45:26 moriyoshi Exp $ */
/*
* PHP4 Multibyte String module "mbstring"
@@ -487,10 +487,29 @@
}
MBSTRG(current_language) = MBSTRG(language);
if (default_enc) {
- zend_alter_ini_entry("mbstring.internal_encoding",
- sizeof("mbstring.internal_encoding"),
- default_enc, strlen(default_enc),
- PHP_INI_PERDIR, stage);
+ enum mbfl_no_encoding no_encoding;
+#if HAVE_MBREGEX
+ const struct def_mbctype_tbl *p = NULL;
+#endif
+ no_encoding = mbfl_name2no_encoding(default_enc);
+ if (no_encoding != mbfl_no_encoding_invalid) {
+ MBSTRG(internal_encoding) = no_encoding;
+ MBSTRG(current_internal_encoding) = no_encoding;
+#if HAVE_MBREGEX
+ p=&(mbctype_tbl[0]);
+ while (p->regex_encoding >= 0){
+ if (p->mbfl_encoding ==
MBSTRG(internal_encoding)){
+ MBSTRG(default_mbctype) =
p->regex_encoding;
+ MBSTRG(current_mbctype) =
p->regex_encoding;
+ break;
+ }
+ p++;
+ }
+#endif
+#ifdef ZEND_MULTIBYTE
+ zend_multibyte_set_internal_encoding(new_value,
new_value_length TSRMLS_CC);
+#endif /* ZEND_MULTIBYTE */
+ }
}
} else {
return FAILURE;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php