]> granicus.if.org Git - php/commitdiff
Fixed bug #28228 (NULL decimal separator is not being handled correctly).
authorIlia Alshanetsky <iliaa@php.net>
Tue, 14 Dec 2004 00:37:19 +0000 (00:37 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 14 Dec 2004 00:37:19 +0000 (00:37 +0000)
ext/standard/math.c

index 3543e222134b8e02b0827b40cbf7ddde7843222c..289c3c491b6906bf97e93273c619551fd8ffdb3c 100644 (file)
@@ -1141,17 +1141,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;