extern size_t strlcpy __P((char *, const char *, size_t));
extern size_t strlcat __P((char *, const char *, size_t));
+
+extern char *strcasestr __P((const char *, const char *));
+
#ifdef z80
#pagma inline(memcpy)
#pagma inline(memset)
--- /dev/null
+/* Another BSDism */
+
+#include <string.h>
+#include <ctype.h>
+
+char *strcasestr(const char *needle, const char *haystack)
+{
+ size_t s = strlen(needle);
+ char c = tolower(needle[0]);
+
+ while(*haystack) {
+ /* check the lead byte here for speed */
+ if (tolower(*haystack) == c) {
+ if (strncasecmp(needle, haystack, s) == 0)
+ return haystack;
+ }
+ haystack++;
+ }
+ return NULL;
+}