masugata Fri Mar 10 16:22:15 2006 UTC Modified files: (Branch: PHP_5_1) /php-src/ext/mbstring mbstring.c Log: fixed different value was returned in mb_get_info. http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.224.2.15&r2=1.224.2.16&diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.224.2.15 php-src/ext/mbstring/mbstring.c:1.224.2.16 --- php-src/ext/mbstring/mbstring.c:1.224.2.15 Thu Mar 2 00:37:22 2006 +++ php-src/ext/mbstring/mbstring.c Fri Mar 10 16:22:15 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.c,v 1.224.2.15 2006/03/02 00:37:22 yohgaki Exp $ */ +/* $Id: mbstring.c,v 1.224.2.16 2006/03/10 16:22:15 masugata Exp $ */ /* * PHP 4 Multibyte String module "mbstring" @@ -3326,20 +3326,22 @@ /* }}} */ -/* {{{ proto string mb_get_info([string type]) +/* {{{ proto mixed mb_get_info([string type]) Returns the current settings of mbstring */ PHP_FUNCTION(mb_get_info) { char *typ = NULL; int typ_len; char *name; + const struct mb_overload_def *over_func; + zval *row; + const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language)); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &typ, &typ_len) == FAILURE) { RETURN_FALSE; } if (!typ || !strcasecmp("all", typ)) { - const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language)); array_init(return_value); if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { add_assoc_string(return_value, "internal_encoding", name, 1); @@ -3350,16 +3352,30 @@ if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_http_output_encoding))) != NULL) { add_assoc_string(return_value, "http_output", name, 1); } - if ((name = (char *)mbfl_no_encoding2name(MBSTRG(func_overload))) != NULL) { - add_assoc_string(return_value, "func_overload", name, 1); - } + if (MBSTRG(func_overload)){ + over_func = &(mb_ovld[0]); + MAKE_STD_ZVAL(row); + array_init(row); + while (over_func->type > 0) { + if ((MBSTRG(func_overload) & over_func->type) == over_func->type ) { + add_assoc_string(row, over_func->orig_func, over_func->ovld_func, 1); + } + over_func++; + } + add_assoc_zval(return_value, "func_overload", row); + } else { + add_assoc_string(return_value, "func_overload", "no overload", 1); + } if (lang != NULL) { - add_assoc_string(return_value, "mail_charset", - mbfl_no_encoding2name(lang->mail_charset), 1); - add_assoc_string(return_value, "mail_header_encoding", - mbfl_no_encoding2name(lang->mail_header_encoding), 1); - add_assoc_string(return_value, "mail_body_encoding", - mbfl_no_encoding2name(lang->mail_body_encoding), 1); + if ((name = (char *)mbfl_no_encoding2name(lang->mail_charset)) != NULL) { + add_assoc_string(return_value, "mail_charset", name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang->mail_header_encoding)) != NULL) { + add_assoc_string(return_value, "mail_header_encoding", name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang->mail_body_encoding)) != NULL) { + add_assoc_string(return_value, "mail_body_encoding", name, 1); + } } } else if (!strcasecmp("internal_encoding", typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { @@ -3374,7 +3390,28 @@ RETVAL_STRING(name, 1); } } else if (!strcasecmp("func_overload", typ)) { - if ((name = (char *)mbfl_no_encoding2name(MBSTRG(func_overload))) != NULL) { + if (MBSTRG(func_overload)){ + over_func = &(mb_ovld[0]); + array_init(return_value); + while (over_func->type > 0) { + if ((MBSTRG(func_overload) & over_func->type) == over_func->type ) { + add_assoc_string(return_value, over_func->orig_func, over_func->ovld_func, 1); + } + over_func++; + } + } else { + RETVAL_STRING("no overload", 1); + } + } else if (!strcasecmp("mail_charset", typ)) { + if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_charset)) != NULL) { + RETVAL_STRING(name, 1); + } + } else if (!strcasecmp("mail_header_encoding", typ)) { + if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_header_encoding)) != NULL) { + RETVAL_STRING(name, 1); + } + } else if (!strcasecmp("mail_body_encoding", typ)) { + if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_body_encoding)) != NULL) { RETVAL_STRING(name, 1); } } else {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php