pajoye          Thu Aug 31 18:28:39 2006 UTC

  Modified files:              
    /php-src/ext/filter logical_filters.c 
    /php-src/ext/filter/tests   010.phpt 013.phpt filter_data.phpt 
  Log:
  - pecl bug #8316,
    empty strings are not int or float, return false (due to popular demand)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/filter/logical_filters.c?r1=1.7&r2=1.8&diff_format=u
Index: php-src/ext/filter/logical_filters.c
diff -u php-src/ext/filter/logical_filters.c:1.7 
php-src/ext/filter/logical_filters.c:1.8
--- php-src/ext/filter/logical_filters.c:1.7    Thu Aug 31 16:12:33 2006
+++ php-src/ext/filter/logical_filters.c        Thu Aug 31 18:28:38 2006
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: logical_filters.c,v 1.7 2006/08/31 16:12:33 pajoye Exp $ */
+/* $Id: logical_filters.c,v 1.8 2006/08/31 18:28:38 pajoye Exp $ */
 
 #include "php_filter.h"
 #include "filter_private.h"
@@ -173,6 +173,14 @@
        FETCH_LONG_OPTION(max_range,    "max_range");
        FETCH_LONG_OPTION(option_flags, "flags");
 
+       len = Z_STRLEN_P(value);
+
+       if (len == 0) {
+               zval_dtor(value);
+               ZVAL_BOOL(value, 0);
+               return;
+       }
+
        if (option_flags_set && (option_flags & FILTER_FLAG_ALLOW_OCTAL)) {
                allow_octal = 1;
        }
@@ -181,21 +189,6 @@
                allow_hex = 1;
        }
 
-       len = Z_STRLEN_P(value);
-
-       if (len == 0) {
-               if ((min_range_set && (0 < min_range)) || (max_range_set && (0 
> max_range))) {
-                       zval_dtor(value);
-                       ZVAL_BOOL(value, 0);
-                       return;
-               } else {
-                       zval_dtor(value);
-                       Z_TYPE_P(value) = IS_LONG;
-                       Z_LVAL_P(value) = 0;
-                       return;
-               }
-       }
-
        /* Start the validating loop */
        p = Z_STRVAL_P(value);
        ctx_value = 0;
@@ -245,6 +238,7 @@
        } else {
                zval_dtor(value);
                ZVAL_BOOL(value, 0);
+               return;
        }
 
        /* returns true for "1", "true", "on" and "yes"
@@ -292,8 +286,7 @@
 
        if (len < 1) {
                zval_dtor(value);
-               Z_TYPE_P(value) = IS_DOUBLE;
-               Z_DVAL_P(value) = 0;
+               ZVAL_BOOL(value, 0);
                return;
        }
 
http://cvs.php.net/viewvc.cgi/php-src/ext/filter/tests/010.phpt?r1=1.4&r2=1.5&diff_format=u
Index: php-src/ext/filter/tests/010.phpt
diff -u php-src/ext/filter/tests/010.phpt:1.4 
php-src/ext/filter/tests/010.phpt:1.5
--- php-src/ext/filter/tests/010.phpt:1.4       Sun May 14 13:54:10 2006
+++ php-src/ext/filter/tests/010.phpt   Thu Aug 31 18:28:39 2006
@@ -21,7 +21,7 @@
   [1]=>
   int(1)
   [2]=>
-  int(0)
+  bool(false)
   [3]=>
   int(-23234)
   [4]=>
@@ -38,7 +38,7 @@
   [1]=>
   float(1.7)
   [2]=>
-  float(0)
+  bool(false)
   [3]=>
   float(-23234.123)
   [4]=>
http://cvs.php.net/viewvc.cgi/php-src/ext/filter/tests/013.phpt?r1=1.8&r2=1.9&diff_format=u
Index: php-src/ext/filter/tests/013.phpt
diff -u php-src/ext/filter/tests/013.phpt:1.8 
php-src/ext/filter/tests/013.phpt:1.9
--- php-src/ext/filter/tests/013.phpt:1.8       Thu Aug 31 16:12:33 2006
+++ php-src/ext/filter/tests/013.phpt   Thu Aug 31 18:28:39 2006
@@ -63,7 +63,7 @@
 bool(false)
 bool(false)
 int(-1)
-int(0)
+bool(false)
 bool(false)
 bool(false)
 bool(false)
http://cvs.php.net/viewvc.cgi/php-src/ext/filter/tests/filter_data.phpt?r1=1.4&r2=1.5&diff_format=u
Index: php-src/ext/filter/tests/filter_data.phpt
diff -u php-src/ext/filter/tests/filter_data.phpt:1.4 
php-src/ext/filter/tests/filter_data.phpt:1.5
--- php-src/ext/filter/tests/filter_data.phpt:1.4       Sat Jan 21 15:57:43 2006
+++ php-src/ext/filter/tests/filter_data.phpt   Thu Aug 31 18:28:39 2006
@@ -46,7 +46,7 @@
 int(-123)
 int(0)
 int(123)
-int(0)
+bool(false)
 
 float(-0.123)
 float(0)
@@ -54,7 +54,7 @@
 float(-1.23)
 float(0)
 float(1.23)
-float(0)
+bool(false)
 
 bool(true)
 bool(false)

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

Reply via email to