sacc

sacc(omys), simple console gopher client (mirror)
git clone https://git.parazyd.org/sacc
Log | Files | Refs | LICENSE

commit eb8d00efa77bcacfdf1a456a09eaa53267142994
parent 3f367506841bfd8944cc57e3ccf231c41130af5e
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Mon, 21 May 2018 12:05:59 +0200

Fix distributed fallback strcasestr.

The function was slightly changed to use an inline loop without using
strncasecmp.

Diffstat:
Msacc.c | 17+++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/sacc.c b/sacc.c @@ -1,4 +1,5 @@ /* See LICENSE file for copyright and license details. */ +#include <ctype.h> #include <errno.h> #include <fcntl.h> #include <limits.h> @@ -66,11 +67,19 @@ asprintf(char **s, const char *fmt, ...) char * strcasestr(const char *h, const char *n) { - size_t l = strlen(n); - for (; *h; h++) - if (!strncasecmp(h, n, l)) + size_t i; + + if (!n[0]) + return h; + + for (; *h; ++h{ + for (i = 0; n[i] && tolower(n[i]) == tolower(h[i]); ++i) + ; + if (n[i] == '\0') return (char *)h; - return 0; + } + + return NULL; } #endif /* NEED_STRCASESTR */