rasmus Thu Apr 9 16:08:34 2009 UTC
Modified files:
/php-src/ext/standard strnatcmp.c
/php-src/ext/standard/tests/array bug44929.phpt
Log:
Don't strip leading zeros on floating point numbers
and fix the test case
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/strnatcmp.c?r1=1.14&r2=1.15&diff_format=u
Index: php-src/ext/standard/strnatcmp.c
diff -u php-src/ext/standard/strnatcmp.c:1.14
php-src/ext/standard/strnatcmp.c:1.15
--- php-src/ext/standard/strnatcmp.c:1.14 Wed Apr 8 20:12:27 2009
+++ php-src/ext/standard/strnatcmp.c Thu Apr 9 16:08:34 2009
@@ -38,7 +38,7 @@
#if 0
static char const *version UNUSED =
- "$Id: strnatcmp.c,v 1.14 2009/04/08 20:12:27 andrei Exp $";
+ "$Id: strnatcmp.c,v 1.15 2009/04/09 16:08:34 rasmus Exp $";
#endif
/* {{{ compare_right
*/
@@ -112,10 +112,10 @@
ca = a[ai]; cb = b[bi];
/* skip over leading spaces or zeros */
- while (isspace((int)(unsigned char)ca) || (ca == '0' && ai+1 <
a_len))
+ while (isspace((int)(unsigned char)ca) || (ca == '0' && (ai+1 <
a_len)) && (a[ai+1] != '.'))
ca = a[++ai];
- while (isspace((int)(unsigned char)cb) || (cb == '0' && bi+1 <
b_len))
+ while (isspace((int)(unsigned char)cb) || (cb == '0' && bi+1 <
b_len) && (b[bi+1] != '.'))
cb = b[++bi];
/* process run of digits */
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/bug44929.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/array/bug44929.phpt
diff -u php-src/ext/standard/tests/array/bug44929.phpt:1.2
php-src/ext/standard/tests/array/bug44929.phpt:1.3
--- php-src/ext/standard/tests/array/bug44929.phpt:1.2 Wed Apr 8 18:18:49 2009
+++ php-src/ext/standard/tests/array/bug44929.phpt Thu Apr 9 16:08:34 2009
@@ -10,12 +10,12 @@
array(10) {
[6]=>
string(4) "-123"
- [7]=>
- string(5) "0.002"
[8]=>
string(2) "00"
[9]=>
string(1) "0"
+ [7]=>
+ string(5) "0.002"
[0]=>
string(3) "001"
[4]=>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php