diff options
| author | Rasmus Lerdorf <rasmus@php.net> | 2009-04-09 16:08:34 +0000 |
|---|---|---|
| committer | Rasmus Lerdorf <rasmus@php.net> | 2009-04-09 16:08:34 +0000 |
| commit | e965a7d95c8a42625e33e67d4d2d880cbdd9be68 (patch) | |
| tree | 1ea9eaacc23e90e4ffd8d65da312b34292fdc947 | |
| parent | 775421e8214acf5146cd59d64f28f56b936252ac (diff) | |
| download | php-git-e965a7d95c8a42625e33e67d4d2d880cbdd9be68.tar.gz | |
Don't strip leading zeros on floating point numbers
and fix the test case
| -rw-r--r-- | ext/standard/strnatcmp.c | 4 | ||||
| -rw-r--r-- | ext/standard/tests/array/bug44929.phpt | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/ext/standard/strnatcmp.c b/ext/standard/strnatcmp.c index c9ab26f69d..106beda5d6 100644 --- a/ext/standard/strnatcmp.c +++ b/ext/standard/strnatcmp.c @@ -112,10 +112,10 @@ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len 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 */ diff --git a/ext/standard/tests/array/bug44929.phpt b/ext/standard/tests/array/bug44929.phpt index ae71e06cff..dd2b0db077 100644 --- a/ext/standard/tests/array/bug44929.phpt +++ b/ext/standard/tests/array/bug44929.phpt @@ -10,12 +10,12 @@ var_dump($a); 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]=> |
