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