summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-03-02 02:30:39 +0000
committerThomas Martitz <kugel@rockbox.org>2009-03-02 02:30:39 +0000
commit7125b9ebcb80cec6d411c22976df9fdb401caf5f (patch)
treeed6ec13fe22dc0f3695052c23382ec0aa0d34315
parent4fd02fdd42cb389e2b63c7f1fd86377c4780b1d7 (diff)
downloadrockbox-7125b9ebcb80cec6d411c22976df9fdb401caf5f.zip
rockbox-7125b9ebcb80cec6d411c22976df9fdb401caf5f.tar.gz
rockbox-7125b9ebcb80cec6d411c22976df9fdb401caf5f.tar.bz2
rockbox-7125b9ebcb80cec6d411c22976df9fdb401caf5f.tar.xz
Actually apply the patch...thanks again to Bryan Vandyke (and Tom Ross for notifying me about my commit-fail).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20167 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/common/strnatcmp.c36
1 files changed, 3 insertions, 33 deletions
diff --git a/firmware/common/strnatcmp.c b/firmware/common/strnatcmp.c
index c67bda6..2ec920b 100644
--- a/firmware/common/strnatcmp.c
+++ b/firmware/common/strnatcmp.c
@@ -95,34 +95,11 @@ compare_right(char const *a, char const *b)
return 0;
}
-
-static int
-compare_left(char const *a, char const *b)
-{
- /* Compare two left-aligned numbers: the first to have a
- different value wins. */
- for (;; a++, b++) {
- if (!nat_isdigit(*a) && !nat_isdigit(*b))
- return 0;
- else if (!nat_isdigit(*a))
- return -1;
- else if (!nat_isdigit(*b))
- return +1;
- else if (*a < *b)
- return -1;
- else if (*a > *b)
- return +1;
- }
-
- return 0;
-}
-
-
static int strnatcmp0(char const *a, char const *b, int fold_case)
{
int ai, bi;
char ca, cb;
- int fractional, result;
+ int result;
assert(a && b);
ai = bi = 0;
@@ -138,15 +115,8 @@ static int strnatcmp0(char const *a, char const *b, int fold_case)
/* process run of digits */
if (nat_isdigit(ca) && nat_isdigit(cb)) {
- fractional = (ca == '0' || cb == '0');
-
- if (fractional) {
- if ((result = compare_left(a+ai, b+bi)) != 0)
- return result;
- } else {
- if ((result = compare_right(a+ai, b+bi)) != 0)
- return result;
- }
+ if ((result = compare_right(a+ai, b+bi)) != 0)
+ return result;
}
if (!ca && !cb) {