Re: cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
| From: | Derick Rethans | Date: | Tue, 21 Mar 2006 08:36:38 +0000 |
| Subject: | Re: cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-37386@lists.php.net to get a copy of this message | ||
On Sat, 18 Mar 2006, Seiji Masugata wrote:
> masugata Sat Mar 18 05:52:33 2006 UTC
>
> Modified files: (Branch: PHP_4_4)
> /php-src/ext/mbstring mbstring.c
> Log:
> fixed doesn't return value when omitting arguments in mb_get_info( ).
This is an awfully large change for a stable branch. Could you please
provide a more eleborate comment in those cases?
>
>
> http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.12&r2=1.142.2.47.2.13&diff_format=u
> Index: php-src/ext/mbstring/mbstring.c
> diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12
> php-src/ext/mbstring/mbstring.c:1.142.2.47.2.13
> --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 Sun Mar 12 07:54:56 2006
> +++ php-src/ext/mbstring/mbstring.c Sat Mar 18 05:52:33 2006
> @@ -17,7 +17,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: mbstring.c,v 1.142.2.47.2.12 2006/03/12 07:54:56 hirokawa Exp $ */
> +/* $Id: mbstring.c,v 1.142.2.47.2.13 2006/03/18 05:52:33 masugata Exp $ */
>
> /*
> * PHP4 Multibyte String module "mbstring"
> @@ -3711,22 +3711,19 @@
> Returns the current settings of mbstring */
> PHP_FUNCTION(mb_get_info)
> {
> - zval **type;
> + char *typ = NULL;
> + int typ_len;
> char *name;
> - int argc = ZEND_NUM_ARGS();
> const struct mb_overload_def *over_func;
> zval *row;
> + const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language));
>
> - if (argc < 0 || argc > 1 || zend_get_parameters_ex(1, &type) == FAILURE) {
> - WRONG_PARAM_COUNT;
> + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &typ, &typ_len)
> == FAILURE) {
> + RETURN_FALSE;
> }
>
> - convert_to_string_ex(type);
> -
> - if (argc == 0 || !strcasecmp("all", Z_STRVAL_PP(type))) {
> - if (array_init(return_value) == FAILURE) {
> - RETURN_FALSE;
> - }
> + if (!typ || !strcasecmp("all", typ)) {
> + array_init(return_value);
> if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) {
> add_assoc_string(return_value, "internal_encoding", name, 1);
> }
> @@ -3750,19 +3747,30 @@
> } else {
> add_assoc_string(return_value, "func_overload", "no overload", 1);
> }
> - } else if (!strcasecmp("internal_encoding", Z_STRVAL_PP(type))) {
> + if (lang != NULL) {
> + 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) {
> RETVAL_STRING(name, 1);
> }
> - } else if (!strcasecmp("http_input", Z_STRVAL_PP(type))) {
> + } else if (!strcasecmp("http_input", typ)) {
> if ((name = (char *)mbfl_no_encoding2name(MBSTRG(http_input_identify))) != NULL) {
> RETVAL_STRING(name, 1);
> }
> - } else if (!strcasecmp("http_output", Z_STRVAL_PP(type))) {
> + } else if (!strcasecmp("http_output", typ)) {
> if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_http_output_encoding))) != NULL) {
> RETVAL_STRING(name, 1);
> }
> - } else if (!strcasecmp("func_overload", Z_STRVAL_PP(type))) {
> + } else if (!strcasecmp("func_overload", typ)) {
> if (MBSTRG(func_overload)){
> over_func = &(mb_ovld[0]);
> array_init(return_value);
> @@ -3775,6 +3783,18 @@
> } 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 {
> RETURN_FALSE;
> }
>
>
--
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org