From e965a7d95c8a42625e33e67d4d2d880cbdd9be68 Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Thu, 9 Apr 2009 16:08:34 +0000 Subject: [PATCH] Don't strip leading zeros on floating point numbers and fix the test case --- ext/standard/strnatcmp.c | 4 ++-- 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]=> -- 2.50.1