commit e80a23a161b19aab1cf034c9f318af4b4c9a89ce from: Omar Polo date: Wed Jul 14 20:49:20 2021 UTC use strcasestr to compare (and include the compat) commit - 6e6c6afb3ab80111a7b6a873834659c0df8cf7a1 commit + e80a23a161b19aab1cf034c9f318af4b4c9a89ce blob - /dev/null blob + 047a11314fd504b1a417ecf0593654866498e382 (mode 644) --- /dev/null +++ compat/strcasestr.c @@ -0,0 +1,60 @@ +/* $OpenBSD: strcasestr.c,v 1.4 2015/08/31 02:53:57 guenther Exp $ */ +/* $NetBSD: strcasestr.c,v 1.2 2005/02/09 21:35:47 kleink Exp $ */ + +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +/* + * Find the first occurrence of find in s, ignore case. + */ +char * +strcasestr(const char *s, const char *find) +{ + char c, sc; + size_t len; + + if ((c = *find++) != 0) { + c = (char)tolower((unsigned char)c); + len = strlen(find); + do { + do { + if ((sc = *s++) == 0) + return (NULL); + } while ((char)tolower((unsigned char)sc) != c); + } while (strncasecmp(s, find, len) != 0); + s--; + } + return ((char *)s); +} blob - d95ba1c075a7767ce9abad6533e9512f84e0bd95 blob + 8b206a283d35811665b2746568819d0e900f694a --- compat.h +++ compat.h @@ -81,6 +81,10 @@ void *memmem(const void*, size_t, const void*, size_t void *recallocarray(void*, size_t, size_t, size_t); #endif +#ifndef HAVE_STRCASESTR +char *strcasestr(const char *, const char *); +#endif + #ifndef HAVE_STRLCPY size_t strlcpy(char*, const char*, size_t); #endif blob - 2d1908d570035cdbf98af219213cff0a6c567ad4 blob + 5c895fee2d39be26764eee1cb4b4ea7eee5277e1 --- configure.ac +++ configure.ac @@ -16,6 +16,7 @@ AC_REPLACE_FUNCS([ getprogname \ memmem \ recallocarray \ + strcasestr \ strlcat \ strlcpy \ strsep \ blob - 9a37ea02a70008c37bfeb713e675fa1aec01945d blob + 62b1b51b659d0f3ea102273e032a4e1cfff66992 --- minibuffer.c +++ minibuffer.c @@ -62,7 +62,7 @@ recompute_completions(int add) l->type = LINE_COMPL; if (add && l->flags & L_HIDDEN) continue; - if (strstr(l->line, ministate.buf) != NULL) + if (strcasestr(l->line, ministate.buf) != NULL) l->flags &= ~L_HIDDEN; else l->flags |= L_HIDDEN;