iliaa Tue Jun 17 09:20:18 2003 EDT Added files: (Branch: PHP_4_3) /php4/ext/standard/tests/array bug24220.phpt
Modified files: /php4/ext/standard array.c Log: Fixed bug #24220 (range() didn't handle numeric strings correctly) Index: php4/ext/standard/array.c diff -u php4/ext/standard/array.c:1.199.2.20 php4/ext/standard/array.c:1.199.2.21 --- php4/ext/standard/array.c:1.199.2.20 Mon Jun 16 13:37:15 2003 +++ php4/ext/standard/array.c Tue Jun 17 09:20:18 2003 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.199.2.20 2003/06/16 17:37:15 iliaa Exp $ */ +/* $Id: array.c,v 1.199.2.21 2003/06/17 13:20:18 iliaa Exp $ */ #include "php.h" #include "php_ini.h" @@ -1428,7 +1428,7 @@ /* allocate an array for return */ array_init(return_value); - if (Z_TYPE_PP(zlow)==IS_STRING && Z_TYPE_PP(zhigh)==IS_STRING) { + if (Z_TYPE_PP(zlow) == IS_STRING && Z_TYPE_PP(zhigh) == IS_STRING && Z_STRLEN_PP(zlow) == 1 && Z_STRLEN_PP(zhigh) == 1) { unsigned char low, high; low = *((unsigned char *)Z_STRVAL_PP(zlow)); high = *((unsigned char *)Z_STRVAL_PP(zhigh)); Index: php4/ext/standard/tests/array/bug24220.phpt +++ php4/ext/standard/tests/array/bug24220.phpt --TEST--n Bug #24220 (range() numeric string handling) --FILE-- <?php var_dump(range("2003", "2004")); var_dump(range("a", "z")); var_dump(range("1", "10")); ?> --EXPECT-- array(2) { [0]=> int(2003) [1]=> int(2004) } array(26) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" [4]=> string(1) "e" [5]=> string(1) "f" [6]=> string(1) "g" [7]=> string(1) "h" [8]=> string(1) "i" [9]=> string(1) "j" [10]=> string(1) "k" [11]=> string(1) "l" [12]=> string(1) "m" [13]=> string(1) "n" [14]=> string(1) "o" [15]=> string(1) "p" [16]=> string(1) "q" [17]=> string(1) "r" [18]=> string(1) "s" [19]=> string(1) "t" [20]=> string(1) "u" [21]=> string(1) "v" [22]=> string(1) "w" [23]=> string(1) "x" [24]=> string(1) "y" [25]=> string(1) "z" } array(10) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) [7]=> int(8) [8]=> int(9) [9]=> int(10) } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php