moriyoshi Sat Aug 2 20:49:48 2008 UTC
Modified files: (Branch: PHP_5_2)
/php-src NEWS
/php-src/ext/mbstring mbstring.c mbstring.h
Log:
- MFH: Fixed bug #45691 (Some per-dir or runtime settings may leak into other
requests).
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1186&r2=1.2027.2.547.2.1187&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1186 php-src/NEWS:1.2027.2.547.2.1187
--- php-src/NEWS:1.2027.2.547.2.1186 Fri Aug 1 22:58:17 2008
+++ php-src/NEWS Sat Aug 2 20:49:47 2008
@@ -14,6 +14,8 @@
- Fixed a regression when using strip_tags() and < is within an attribute.
(Scott)
+- Fixed bug #45691 (Some per-dir or runtime settings may leak into other
+ requests). (Moriyoshi)
- Fixed bug #45568 (ISAPI doesn't properly clear auth_digest in header).
(Patch by: navara at emclient dot com)
- Fixed bug #45556 (Return value from callback isn't freed). (Felipe)
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.224.2.22.2.34&r2=1.224.2.22.2.35&diff_format=u
Index: php-src/ext/mbstring/mbstring.c
diff -u php-src/ext/mbstring/mbstring.c:1.224.2.22.2.34
php-src/ext/mbstring/mbstring.c:1.224.2.22.2.35
--- php-src/ext/mbstring/mbstring.c:1.224.2.22.2.34 Fri Aug 1 22:53:20 2008
+++ php-src/ext/mbstring/mbstring.c Sat Aug 2 20:49:47 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.224.2.22.2.34 2008/08/01 22:53:20 moriyoshi Exp $ */
+/* $Id: mbstring.c,v 1.224.2.22.2.35 2008/08/02 20:49:47 moriyoshi Exp $ */
/*
* PHP 4 Multibyte String module "mbstring"
@@ -89,7 +89,7 @@
/* {{{ php_mb_default_identify_list */
typedef struct _php_mb_nls_ident_list {
enum mbfl_no_language lang;
- enum mbfl_no_encoding* list;
+ const enum mbfl_no_encoding* list;
int list_size;
} php_mb_nls_ident_list;
@@ -560,7 +560,7 @@
for (i = 0; i < sizeof(php_mb_default_identify_list) /
sizeof(php_mb_default_identify_list[0]); i++) {
if (php_mb_default_identify_list[i].lang == lang) {
- *plist = php_mb_default_identify_list[i].list;
+ *plist = (enum mbfl_no_encoding
*)php_mb_default_identify_list[i].list;
*plist_size = php_mb_default_identify_list[i].list_size;
return 1;
}
@@ -576,6 +576,7 @@
no_language = mbfl_name2no_language(new_value);
if (no_language == mbfl_no_language_invalid) {
+ MBSTRG(language) = mbfl_no_language_neutral;
return FAILURE;
}
MBSTRG(language) = no_language;
@@ -591,12 +592,16 @@
int size;
if (php_mb_parse_encoding_list(new_value, new_value_length, &list,
&size, 1 TSRMLS_CC)) {
- if (MBSTRG(detect_order_list) != NULL) {
+ if (MBSTRG(detect_order_list)) {
free(MBSTRG(detect_order_list));
}
MBSTRG(detect_order_list) = list;
MBSTRG(detect_order_list_size) = size;
} else {
+ if (MBSTRG(detect_order_list)) {
+ free(MBSTRG(detect_order_list));
+ MBSTRG(detect_order_list) = NULL;
+ }
return FAILURE;
}
@@ -611,12 +616,17 @@
int size;
if (php_mb_parse_encoding_list(new_value, new_value_length, &list,
&size, 1 TSRMLS_CC)) {
- if (MBSTRG(http_input_list) != NULL) {
+ if (MBSTRG(http_input_list)) {
free(MBSTRG(http_input_list));
}
MBSTRG(http_input_list) = list;
MBSTRG(http_input_list_size) = size;
} else {
+ if (MBSTRG(http_input_list)) {
+ free(MBSTRG(http_input_list));
+ MBSTRG(http_input_list) = NULL;
+ }
+ MBSTRG(http_input_list_size) = 0;
return FAILURE;
}
@@ -634,6 +644,8 @@
MBSTRG(http_output_encoding) = no_encoding;
MBSTRG(current_http_output_encoding) = no_encoding;
} else {
+ MBSTRG(http_output_encoding) = mbfl_no_encoding_pass;
+ MBSTRG(current_http_output_encoding) = mbfl_no_encoding_pass;
if (new_value != NULL && new_value_length > 0) {
return FAILURE;
}
@@ -647,32 +659,74 @@
static PHP_INI_MH(OnUpdate_mbstring_internal_encoding)
{
enum mbfl_no_encoding no_encoding;
- if (new_value == NULL) {
- return SUCCESS;
- }
+ const char *enc_name = NULL;
+ uint enc_name_len = 0;
- no_encoding = mbfl_name2no_encoding(new_value);
+ no_encoding = new_value ? mbfl_name2no_encoding(new_value):
+ mbfl_no_encoding_invalid;
if (no_encoding != mbfl_no_encoding_invalid) {
- MBSTRG(internal_encoding) = no_encoding;
- MBSTRG(current_internal_encoding) = no_encoding;
+ enc_name = new_value;
+ enc_name_len = new_value_length;
+ } else {
+ switch (MBSTRG(language)) {
+ case mbfl_no_language_uni:
+ enc_name = "UTF-8";
+ enc_name_len = sizeof("UTF-8") - 1;
+ break;
+ case mbfl_no_language_japanese:
+ enc_name = "EUC-JP";
+ enc_name_len = sizeof("EUC-JP") - 1;
+ break;
+ case mbfl_no_language_korean:
+ enc_name = "EUC-KR";
+ enc_name_len = sizeof("EUC-KR") - 1;
+ break;
+ case mbfl_no_language_simplified_chinese:
+ enc_name = "EUC-CN";
+ enc_name_len = sizeof("EUC-CN") - 1;
+ break;
+ case mbfl_no_language_traditional_chinese:
+ enc_name = "EUC-TW";
+ enc_name_len = sizeof("EUC-TW") - 1;
+ break;
+ case mbfl_no_language_russian:
+ enc_name = "KOI8-R";
+ enc_name_len = sizeof("KOI8-R") - 1;
+ break;
+ case mbfl_no_language_german:
+ enc_name = "ISO-8859-15";
+ enc_name_len = sizeof("ISO-8859-15") - 1;
+ break;
+ case mbfl_no_language_armenian:
+ enc_name = "ArmSCII-8";
+ enc_name_len = sizeof("ArmSCII-8") - 1;
+ break;
+ case mbfl_no_language_turkish:
+ enc_name = "ISO-8859-9";
+ enc_name_len = sizeof("ISO-8859-9") - 1;
+ break;
+ default:
+ enc_name = "ISO-8859-1";
+ enc_name_len = sizeof("ISO-8859-1") - 1;
+ break;
+ }
+ no_encoding = mbfl_name2no_encoding(enc_name);
+ }
+ MBSTRG(internal_encoding) = no_encoding;
+ MBSTRG(current_internal_encoding) = no_encoding;
#if HAVE_MBREGEX
- {
- OnigEncoding mbctype;
- mbctype = php_mb_regex_name2mbctype(new_value);
- if (mbctype == ONIG_ENCODING_UNDEF) {
- mbctype = ONIG_ENCODING_EUC_JP;
- }
- MBSTRG(current_mbctype) = MBSTRG(default_mbctype) =
mbctype;
+ {
+ OnigEncoding mbctype;
+ mbctype = php_mb_regex_name2mbctype(enc_name);
+ if (mbctype == ONIG_ENCODING_UNDEF) {
+ mbctype = ONIG_ENCODING_EUC_JP;
}
+ MBSTRG(current_mbctype) = MBSTRG(default_mbctype) = mbctype;
+ }
#endif
#ifdef ZEND_MULTIBYTE
- zend_multibyte_set_internal_encoding(new_value,
new_value_length TSRMLS_CC);
+ zend_multibyte_set_internal_encoding((char *)enc_name, enc_name_len
TSRMLS_CC);
#endif /* ZEND_MULTIBYTE */
- } else {
- if (new_value != NULL && new_value_length > 0) {
- return FAILURE;
- }
- }
return SUCCESS;
}
@@ -691,6 +745,11 @@
MBSTRG(script_encoding_list) = list;
MBSTRG(script_encoding_list_size) = size;
} else {
+ if (MBSTRG(script_encoding_list) != NULL) {
+ free(MBSTRG(script_encoding_list));
+ }
+ MBSTRG(script_encoding_list) = NULL;
+ MBSTRG(script_encoding_list_size) = 0;
return FAILURE;
}
@@ -756,7 +815,7 @@
/* {{{ php.ini directive registration */
PHP_INI_BEGIN()
- PHP_INI_ENTRY("mbstring.language", "neutral", PHP_INI_SYSTEM |
PHP_INI_PERDIR, OnUpdate_mbstring_language)
+ PHP_INI_ENTRY("mbstring.language", "neutral", PHP_INI_ALL,
OnUpdate_mbstring_language)
PHP_INI_ENTRY("mbstring.detect_order", NULL, PHP_INI_ALL,
OnUpdate_mbstring_detect_order)
PHP_INI_ENTRY("mbstring.http_input", "pass", PHP_INI_ALL,
OnUpdate_mbstring_http_input)
PHP_INI_ENTRY("mbstring.http_output", "pass", PHP_INI_ALL,
OnUpdate_mbstring_http_output)
@@ -781,7 +840,6 @@
static PHP_GINIT_FUNCTION(mbstring)
{
mbstring_globals->language = mbfl_no_language_uni;
- mbstring_globals->current_language = mbstring_globals->language;
mbstring_globals->internal_encoding = mbfl_no_encoding_invalid;
mbstring_globals->current_internal_encoding =
mbstring_globals->internal_encoding;
#ifdef ZEND_MULTIBYTE
@@ -887,53 +945,9 @@
zend_function *func, *orig;
const struct mb_overload_def *p;
- MBSTRG(current_language) = MBSTRG(language);
php_mb_nls_get_default_detect_order_list(MBSTRG(language),
&MBSTRG(default_detect_order_list),
&MBSTRG(default_detect_order_list_size));
- if (MBSTRG(internal_encoding) == mbfl_no_encoding_invalid) {
- char *default_enc = NULL;
- switch (MBSTRG(current_language)) {
- case mbfl_no_language_uni:
- default_enc = "UTF-8";
- break;
- case mbfl_no_language_japanese:
- default_enc = "EUC-JP";
- break;
- case mbfl_no_language_korean:
- default_enc = "EUC-KR";
- break;
- case mbfl_no_language_simplified_chinese:
- default_enc = "EUC-CN";
- break;
- case mbfl_no_language_traditional_chinese:
- default_enc = "EUC-TW";
- break;
- case mbfl_no_language_russian:
- default_enc = "KOI8-R";
- break;
- case mbfl_no_language_german:
- default_enc = "ISO-8859-15";
- break;
- case mbfl_no_language_armenian:
- default_enc = "ArmSCII-8";
- break;
- case mbfl_no_language_turkish:
- default_enc = "ISO-8859-9";
- break;
- case mbfl_no_language_english:
- default:
- default_enc = "ISO-8859-1";
- break;
- }
- if (default_enc) {
- zend_alter_ini_entry("mbstring.internal_encoding",
-
sizeof("mbstring.internal_encoding"),
- default_enc, strlen(default_enc),
- PHP_INI_PERDIR,
PHP_INI_STAGE_RUNTIME);
- }
- }
-
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);
@@ -1084,22 +1098,20 @@
{
char *name = NULL;
int name_len = 0;
- enum mbfl_no_language no_language;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &name,
&name_len) == FAILURE) {
return;
}
if (name == NULL) {
- RETURN_STRING((char
*)mbfl_no_language2name(MBSTRG(current_language)), 1);
+ RETVAL_STRING((char *)mbfl_no_language2name(MBSTRG(language)),
1);
} else {
- no_language = mbfl_name2no_language(name);
- if (no_language == mbfl_no_language_invalid) {
+ if (FAILURE == zend_alter_ini_entry(
+ "mbstring.language",
sizeof("mbstring.language"),
+ name, name_len, PHP_INI_USER,
PHP_INI_STAGE_RUNTIME)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown
language \"%s\"", name);
- RETURN_FALSE;
+ RETVAL_FALSE;
} else {
- php_mb_nls_get_default_detect_order_list(no_language,
&MBSTRG(default_detect_order_list), &MBSTRG(default_detect_order_list_size));
- MBSTRG(current_language) = no_language;
- RETURN_TRUE;
+ RETVAL_TRUE;
}
}
}
@@ -1441,10 +1453,10 @@
info.force_register_globals = (track_vars_array == NULL);
info.report_errors = 1;
info.to_encoding = MBSTRG(current_internal_encoding);
- info.to_language = MBSTRG(current_language);
+ info.to_language = MBSTRG(language);
info.from_encodings = MBSTRG(http_input_list);
info.num_from_encodings = MBSTRG(http_input_list_size);
- info.from_language = MBSTRG(current_language);
+ info.from_language = MBSTRG(language);
detected = _php_mb_encoding_handler_ex(&info, track_vars_array, encstr
TSRMLS_CC);
@@ -1532,7 +1544,7 @@
/* feed the string */
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
string.val = (unsigned char *)arg_string;
string.len = arg_string_len;
@@ -1568,7 +1580,7 @@
RETURN_FALSE;
}
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
if (enc_name == NULL) {
string.no_encoding = MBSTRG(current_internal_encoding);
} else {
@@ -1600,9 +1612,9 @@
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
offset = 0;
@@ -1667,9 +1679,9 @@
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|Zs", (char
**)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &zoffset,
&enc_name, &enc_name_len) == FAILURE) {
@@ -1815,9 +1827,9 @@
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|bs", (char
**)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &part,
&enc_name, &enc_name_len) == FAILURE) {
@@ -1873,9 +1885,9 @@
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|bs", (char
**)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &part,
&enc_name, &enc_name_len) == FAILURE) {
@@ -1931,9 +1943,9 @@
char *from_encoding =
(char*)mbfl_no2preferred_mime_name(MBSTRG(current_internal_encoding));
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
@@ -1989,9 +2001,9 @@
char *from_encoding =
(char*)mbfl_no2preferred_mime_name(MBSTRG(current_internal_encoding));
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
@@ -2043,9 +2055,9 @@
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|s", (char
**)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &enc_name,
&enc_name_len) == FAILURE) {
@@ -2083,7 +2095,7 @@
mbfl_string string, result, *ret;
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
argc = ZEND_NUM_ARGS();
@@ -2175,7 +2187,7 @@
mbfl_string string, result, *ret;
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
argc = ZEND_NUM_ARGS();
@@ -2265,7 +2277,7 @@
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", (char
**)&string.val, &string.len, &enc_name, &enc_name_len) == FAILURE) {
@@ -2299,9 +2311,9 @@
mbfl_string_init(&string);
mbfl_string_init(&marker);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
- marker.no_language = MBSTRG(current_language);
+ marker.no_language = MBSTRG(language);
marker.no_encoding = MBSTRG(current_internal_encoding);
marker.val = NULL;
marker.len = 0;
@@ -2397,7 +2409,7 @@
mbfl_string_init(&result);
from_encoding = MBSTRG(current_internal_encoding);
string.no_encoding = from_encoding;
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.val = (unsigned char *)input;
string.len = length;
@@ -2667,7 +2679,7 @@
convert_to_string_ex(arg_str);
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.val = (unsigned char *)Z_STRVAL_PP(arg_str);
string.len = Z_STRLEN_PP(arg_str);
ret = mbfl_identify_encoding_name(&string, elist, size, strict);
@@ -2830,7 +2842,7 @@
long indent = 0;
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sssl", (char
**)&string.val, &string.len, &charset_name, &charset_name_len, &trans_enc_name,
&trans_enc_name_len, &linefeed, &linefeed_len, &indent) == FAILURE) {
@@ -2847,7 +2859,7 @@
RETURN_FALSE;
}
} else {
- const mbfl_language *lang =
mbfl_no2language(MBSTRG(current_language));
+ const mbfl_language *lang = mbfl_no2language(MBSTRG(language));
if (lang != NULL) {
charset = lang->mail_charset;
transenc = lang->mail_header_encoding;
@@ -2879,7 +2891,7 @@
mbfl_string string, result, *ret;
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", (char
**)&string.val, &string.len) == FAILURE) {
@@ -2908,7 +2920,7 @@
int encname_len;
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ss", (char
**)&string.val, &string.len, &optstr, &optstr_len, &encname, &encname_len) ==
FAILURE) {
@@ -3040,7 +3052,7 @@
mbfl_string_init(&result);
from_encoding = MBSTRG(current_internal_encoding);
string.no_encoding = from_encoding;
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
/* pre-conversion encoding */
elist = NULL;
@@ -3244,7 +3256,7 @@
convert_to_string_ex(arg1);
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding);
string.val = (unsigned char *)Z_STRVAL_PP(arg1);
string.len = Z_STRLEN_PP(arg1);
@@ -3583,7 +3595,7 @@
tran_cs = mbfl_no_encoding_utf8;
head_enc = mbfl_no_encoding_base64;
body_enc = mbfl_no_encoding_base64;
- lang = mbfl_no2language(MBSTRG(current_language));
+ lang = mbfl_no2language(MBSTRG(language));
if (lang != NULL) {
tran_cs = lang->mail_charset;
head_enc = lang->mail_header_encoding;
@@ -3701,7 +3713,7 @@
/* Subject: */
if (subject != NULL && subject_len >= 0) {
- orig_str.no_language = MBSTRG(current_language);
+ orig_str.no_language = MBSTRG(language);
orig_str.val = (unsigned char *)subject;
orig_str.len = subject_len;
orig_str.no_encoding = MBSTRG(current_internal_encoding);
@@ -3720,7 +3732,7 @@
/* message body */
if (message != NULL) {
- orig_str.no_language = MBSTRG(current_language);
+ orig_str.no_language = MBSTRG(language);
orig_str.val = message;
orig_str.len = message_len;
orig_str.no_encoding = MBSTRG(current_internal_encoding);
@@ -3837,7 +3849,7 @@
char *name;
const struct mb_overload_def *over_func;
zval *row1, *row2;
- const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language));
+ const mbfl_language *lang = mbfl_no2language(MBSTRG(language));
enum mbfl_no_encoding *entry;
#ifdef ZEND_MULTIBYTE
zval *row3;
@@ -3890,7 +3902,7 @@
} else {
add_assoc_string(return_value, "encoding_translation",
"Off", 1);
}
- if ((name = (char
*)mbfl_no_language2name(MBSTRG(current_language))) != NULL) {
+ if ((name = (char *)mbfl_no_language2name(MBSTRG(language))) !=
NULL) {
add_assoc_string(return_value, "language", name, 1);
}
n = MBSTRG(current_detect_order_list_size);
@@ -3985,7 +3997,7 @@
RETVAL_STRING("Off", 1);
}
} else if (!strcasecmp("language", typ)) {
- if ((name = (char
*)mbfl_no_language2name(MBSTRG(current_language))) != NULL) {
+ if ((name = (char *)mbfl_no_language2name(MBSTRG(language))) !=
NULL) {
RETVAL_STRING(name, 1);
}
} else if (!strcasecmp("detect_order", typ)) {
@@ -4083,7 +4095,7 @@
mbfl_string_init(&string);
mbfl_string_init(&result);
string.no_encoding = no_encoding;
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.val = (unsigned char *)var;
string.len = var_len;
@@ -4245,7 +4257,7 @@
mbfl_string_init(&string);
mbfl_string_init(&result);
string.no_encoding = from_encoding;
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
for (i=0; i<num; i++){
string.val = (char*)str[i];
@@ -4326,7 +4338,7 @@
}
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
identd = mbfl_encoding_detector_new(elist, size,
MBSTRG(strict_detection));
@@ -4364,9 +4376,9 @@
mbfl_string_init(&haystack);
mbfl_string_init(&needle);
- haystack.no_language = MBSTRG(current_language);
+ haystack.no_language = MBSTRG(language);
haystack.no_encoding = MBSTRG(current_internal_encoding);
- needle.no_language = MBSTRG(current_language);
+ needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding);
do {
@@ -4492,7 +4504,7 @@
}
mbfl_string_init(&string);
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.val = (char*)arg_string;
string.len = arg_length;
ret = mbfl_identify_encoding_name(&string, elist, size, 0);
@@ -4530,7 +4542,7 @@
mbfl_string_init(&string);
mbfl_string_init(&result);
string.no_encoding = from_encoding;
- string.no_language = MBSTRG(current_language);
+ string.no_language = MBSTRG(language);
string.val = (char*)from;
string.len = from_length;
@@ -4565,7 +4577,7 @@
mbfl_string mb_string;
mbfl_string_init(&mb_string);
- mb_string.no_language = MBSTRG(current_language);
+ mb_string.no_language = MBSTRG(language);
mb_string.no_encoding = mbfl_name2no_encoding(encoding);
mb_string.val = (char*)string;
mb_string.len = length;
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.h?r1=1.66.2.4.2.6&r2=1.66.2.4.2.7&diff_format=u
Index: php-src/ext/mbstring/mbstring.h
diff -u php-src/ext/mbstring/mbstring.h:1.66.2.4.2.6
php-src/ext/mbstring/mbstring.h:1.66.2.4.2.7
--- php-src/ext/mbstring/mbstring.h:1.66.2.4.2.6 Mon Dec 31 07:20:07 2007
+++ php-src/ext/mbstring/mbstring.h Sat Aug 2 20:49:48 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.h,v 1.66.2.4.2.6 2007/12/31 07:20:07 sebastian Exp $ */
+/* $Id: mbstring.h,v 1.66.2.4.2.7 2008/08/02 20:49:48 moriyoshi Exp $ */
/*
* PHP 4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -163,7 +163,6 @@
ZEND_BEGIN_MODULE_GLOBALS(mbstring)
enum mbfl_no_language language;
- enum mbfl_no_language current_language;
enum mbfl_no_encoding internal_encoding;
enum mbfl_no_encoding current_internal_encoding;
#ifdef ZEND_MULTIBYTE
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php