summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2014-05-22 23:51:31 +0200
committerRichard Braun <rbraun@sceen.net>2014-05-22 23:51:31 +0200
commitf47a56fbf5995c900858cfb19ff315e0688a1f7d (patch)
tree55ae6833d9d08145f1f0141b964b29bef1d52bd1
parentd67abe8ff16a0e4dcf1cf152b89b4a0d1b236378 (diff)
kern/string: fix comparison functions
-rw-r--r--kern/string.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/kern/string.c b/kern/string.c
index 2122af6a..c62a405e 100644
--- a/kern/string.c
+++ b/kern/string.c
@@ -80,7 +80,7 @@ memset(void *s, int c, size_t n)
int
memcmp(const void *s1, const void *s2, size_t n)
{
- const char *a1, *a2;
+ const unsigned char *a1, *a2;
size_t i;
a1 = s1;
@@ -88,7 +88,7 @@ memcmp(const void *s1, const void *s2, size_t n)
for (i = 0; i < n; i++)
if (a1[i] != a2[i])
- return a2[i] - a1[i];
+ return (int)a1[i] - (int)a2[i];
return 0;
}
@@ -142,7 +142,7 @@ out:
int
strcmp(const char *s1, const char *s2)
{
- char c1, c2;
+ unsigned char c1, c2;
while ((c1 = *s1) == (c2 = *s2)) {
if (c1 == '\0')
@@ -152,5 +152,5 @@ strcmp(const char *s1, const char *s2)
s2++;
}
- return (c1 < c2) ? -1 : 1;
+ return (int)c1 - (int)c2;
}