From: Ilia Alshanetsky Date: Tue, 14 Dec 2004 00:38:35 +0000 (+0000) Subject: MFH: Fixed bug #28228 (NULL decimal separator is not being handled correctly). X-Git-Tag: php-5.0.3~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cb5aa998b91eeb25a93e4828520164d0450344f8;p=php MFH: Fixed bug #28228 (NULL decimal separator is not being handled correctly). --- diff --git a/NEWS b/NEWS index 7d8b6cfb78..bd0f0eaf7e 100644 --- a/NEWS +++ b/NEWS @@ -86,6 +86,8 @@ PHP NEWS - Fixed bug #28598 (Lost support for MS Symbol fonts). (Pierre) - Fixed bug #28220 (mb_strwidth() returns wrong width values for some hangul characters). (Moriyoshi) +- Fixed bug #28228 (NULL decimal separator is not being handled correctly). + (Ilia) - Fixed bug #28209 (strtotime("now")). (Derick) - Fixed bug #27798 (private / protected variables not exposed by get_object_vars() inside class). (Marcus) diff --git a/ext/standard/math.c b/ext/standard/math.c index 1ab898569b..8278f1a277 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -1136,17 +1136,22 @@ PHP_FUNCTION(number_format) } convert_to_double_ex(num); convert_to_long_ex(dec); - convert_to_string_ex(d_p); - convert_to_string_ex(t_s); - if (Z_STRLEN_PP(d_p)==1) { - dec_point=Z_STRVAL_PP(d_p)[0]; - } else if (Z_STRLEN_PP(d_p)==0) { - dec_point=0; + + if (Z_TYPE_PP(d_p) != IS_NULL) { + convert_to_string_ex(d_p); + if (Z_STRLEN_PP(d_p)==1) { + dec_point=Z_STRVAL_PP(d_p)[0]; + } else if (Z_STRLEN_PP(d_p)==0) { + dec_point=0; + } } - if (Z_STRLEN_PP(t_s)==1) { - thousand_sep=Z_STRVAL_PP(t_s)[0]; - } else if(Z_STRLEN_PP(t_s)==0) { - thousand_sep=0; + if (Z_TYPE_PP(t_s) != IS_NULL) { + convert_to_string_ex(t_s); + if (Z_STRLEN_PP(t_s)==1) { + thousand_sep=Z_STRVAL_PP(t_s)[0]; + } else if(Z_STRLEN_PP(t_s)==0) { + thousand_sep=0; + } } RETURN_STRING(_php_math_number_format(Z_DVAL_PP(num), Z_LVAL_PP(dec), dec_point, thousand_sep), 0); break;