diff options
author | Thomas Martitz <kugel@rockbox.org> | 2009-03-02 02:30:39 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2009-03-02 02:30:39 +0000 |
commit | 7125b9ebcb80cec6d411c22976df9fdb401caf5f (patch) | |
tree | ed6ec13fe22dc0f3695052c23382ec0aa0d34315 /firmware | |
parent | 4fd02fdd42cb389e2b63c7f1fd86377c4780b1d7 (diff) | |
download | rockbox-7125b9ebcb80cec6d411c22976df9fdb401caf5f.tar.gz rockbox-7125b9ebcb80cec6d411c22976df9fdb401caf5f.zip |
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
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/common/strnatcmp.c | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/firmware/common/strnatcmp.c b/firmware/common/strnatcmp.c index c67bda6b81..2ec920b0a1 100644 --- a/firmware/common/strnatcmp.c +++ b/firmware/common/strnatcmp.c | |||
@@ -95,34 +95,11 @@ compare_right(char const *a, char const *b) | |||
95 | return 0; | 95 | return 0; |
96 | } | 96 | } |
97 | 97 | ||
98 | |||
99 | static int | ||
100 | compare_left(char const *a, char const *b) | ||
101 | { | ||
102 | /* Compare two left-aligned numbers: the first to have a | ||
103 | different value wins. */ | ||
104 | for (;; a++, b++) { | ||
105 | if (!nat_isdigit(*a) && !nat_isdigit(*b)) | ||
106 | return 0; | ||
107 | else if (!nat_isdigit(*a)) | ||
108 | return -1; | ||
109 | else if (!nat_isdigit(*b)) | ||
110 | return +1; | ||
111 | else if (*a < *b) | ||
112 | return -1; | ||
113 | else if (*a > *b) | ||
114 | return +1; | ||
115 | } | ||
116 | |||
117 | return 0; | ||
118 | } | ||
119 | |||
120 | |||
121 | static int strnatcmp0(char const *a, char const *b, int fold_case) | 98 | static int strnatcmp0(char const *a, char const *b, int fold_case) |
122 | { | 99 | { |
123 | int ai, bi; | 100 | int ai, bi; |
124 | char ca, cb; | 101 | char ca, cb; |
125 | int fractional, result; | 102 | int result; |
126 | 103 | ||
127 | assert(a && b); | 104 | assert(a && b); |
128 | ai = bi = 0; | 105 | ai = bi = 0; |
@@ -138,15 +115,8 @@ static int strnatcmp0(char const *a, char const *b, int fold_case) | |||
138 | 115 | ||
139 | /* process run of digits */ | 116 | /* process run of digits */ |
140 | if (nat_isdigit(ca) && nat_isdigit(cb)) { | 117 | if (nat_isdigit(ca) && nat_isdigit(cb)) { |
141 | fractional = (ca == '0' || cb == '0'); | 118 | if ((result = compare_right(a+ai, b+bi)) != 0) |
142 | 119 | return result; | |
143 | if (fractional) { | ||
144 | if ((result = compare_left(a+ai, b+bi)) != 0) | ||
145 | return result; | ||
146 | } else { | ||
147 | if ((result = compare_right(a+ai, b+bi)) != 0) | ||
148 | return result; | ||
149 | } | ||
150 | } | 120 | } |
151 | 121 | ||
152 | if (!ca && !cb) { | 122 | if (!ca && !cb) { |