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