From ec42f864d4a420b66c6a02ccc43846d05e50553e Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Mon, 18 Jan 2021 09:57:12 +0100 Subject: [PATCH] LibC: Add wcsncmp() Taken from strncmp(), like wcscmp() in ef40ebb. :^) --- Userland/Libraries/LibC/wchar.cpp | 13 +++++++++++++ Userland/Libraries/LibC/wchar.h | 1 + 2 files changed, 14 insertions(+) diff --git a/Userland/Libraries/LibC/wchar.cpp b/Userland/Libraries/LibC/wchar.cpp index 54cfdacda46..8c1653e164b 100644 --- a/Userland/Libraries/LibC/wchar.cpp +++ b/Userland/Libraries/LibC/wchar.cpp @@ -61,6 +61,19 @@ int wcscmp(const wchar_t* s1, const wchar_t* s2) return *(const wchar_t*)s1 - *(const wchar_t*)--s2; } +int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n) +{ + if (!n) + return 0; + do { + if (*s1 != *s2++) + return *(const wchar_t*)s1 - *(const wchar_t*)--s2; + if (*s1++ == 0) + break; + } while (--n); + return 0; +} + wchar_t* wcschr(const wchar_t* str, int c) { wchar_t ch = c; diff --git a/Userland/Libraries/LibC/wchar.h b/Userland/Libraries/LibC/wchar.h index c6ab5b29652..1f7d8d6c76f 100644 --- a/Userland/Libraries/LibC/wchar.h +++ b/Userland/Libraries/LibC/wchar.h @@ -39,6 +39,7 @@ size_t wcslen(const wchar_t*); wchar_t* wcscpy(wchar_t*, const wchar_t*); wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t); int wcscmp(const wchar_t*, const wchar_t*); +int wcsncmp(const wchar_t*, const wchar_t*, size_t); wchar_t* wcschr(const wchar_t*, int); const wchar_t* wcsrchr(const wchar_t*, wchar_t); wchar_t* wcscat(wchar_t*, const wchar_t*);