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

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to