diff options
author | 2025-04-28 14:40:02 +0200 | |
---|---|---|
committer | 2025-05-21 15:32:00 +0200 | |
commit | 05b6b2a9efa4b40b7bc1668f887b7d98f719efb1 (patch) | |
tree | 42ce2e03f1db4c81401c4151053c2398b15cda6b /tools/include/nolibc | |
parent | tools/nolibc: use poll-related definitions from UAPI headers (diff) | |
download | wireguard-linux-05b6b2a9efa4b40b7bc1668f887b7d98f719efb1.tar.xz wireguard-linux-05b6b2a9efa4b40b7bc1668f887b7d98f719efb1.zip |
tools/nolibc: add strstr()
This is used in various selftests and will be handy when integrating
those with nolibc.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://lore.kernel.org/r/20250428-nolibc-misc-v2-1-3c043eeab06c@linutronix.de
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Diffstat (limited to 'tools/include/nolibc')
-rw-r--r-- | tools/include/nolibc/string.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/include/nolibc/string.h b/tools/include/nolibc/string.h index febfd6978966..163a17e7dd38 100644 --- a/tools/include/nolibc/string.h +++ b/tools/include/nolibc/string.h @@ -293,6 +293,26 @@ char *strrchr(const char *s, int c) } static __attribute__((unused)) +char *strstr(const char *haystack, const char *needle) +{ + size_t len_haystack, len_needle; + + len_needle = strlen(needle); + if (!len_needle) + return NULL; + + len_haystack = strlen(haystack); + while (len_haystack >= len_needle) { + if (!memcmp(haystack, needle, len_needle)) + return (char *)haystack; + haystack++; + len_haystack--; + } + + return NULL; +} + +static __attribute__((unused)) int tolower(int c) { if (c >= 'A' && c <= 'Z') |