summaryrefslogtreecommitdiff
path: root/src/user/lib
diff options
context:
space:
mode:
authordzwdz2022-12-27 22:31:48 +0100
committerdzwdz2022-12-27 22:31:48 +0100
commita54c80d07bbaa8cb34dd5924d0926ac47e7deded (patch)
treec8f6c842bfc36e69d220af4768a9edd61af457c8 /src/user/lib
parent9ab2c4468e0352da0fa13de355124f25b6af5ad3 (diff)
libc: fix strncmp
Diffstat (limited to 'src/user/lib')
-rw-r--r--src/user/lib/string/string.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/user/lib/string/string.c b/src/user/lib/string/string.c
index f141a3d..126d175 100644
--- a/src/user/lib/string/string.c
+++ b/src/user/lib/string/string.c
@@ -109,12 +109,11 @@ char *strtok_r(char *restrict s, const char *restrict sep, char **restrict state
}
int strncmp(const char *s1, const char *s2, size_t n) {
- while (n-- & *s1 && *s1 == *s2) {
- s1++; s2++;
+ for (size_t i = 0; i < n; i++) {
+ if (s1[i] < s2[i]) return -1;
+ if (s1[i] > s2[i]) return 1;
}
- if (*s1 == *s2) return 0;
- if (*s1 < *s2) return -1;
- else return 1;
+ return 0;
}
int strcoll(const char *s1, const char *s2) {