Introduction
Introduction Statistics Contact Development Disclaimer Help
revert using strcasestr and use a more optimized portable version - dmenu - dyn…
git clone git://git.suckless.org/dmenu
Log
Files
Refs
README
LICENSE
---
commit 3e39c526d28582b0b5606d3e3bb36ee3d271e616
parent a9a3836861bd23387b5a51d6f6ac23377e98e26f
Author: Hiltjo Posthuma <[email protected]>
Date: Tue, 8 Feb 2022 19:32:25 +0100
revert using strcasestr and use a more optimized portable version
... compared to the old cistrstr().
Thanks for the feedback!
Diffstat:
M config.mk | 2 +-
M dmenu.c | 21 ++++++++++++++++++++-
2 files changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/config.mk b/config.mk
@@ -23,7 +23,7 @@ INCS = -I$(X11INC) -I$(FREETYPEINC)
LIBS = -L$(X11LIB) -lX11 $(XINERAMALIBS) $(FREETYPELIBS)
# flags
-CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -D_XOPEN_SOURCE=700 -…
+CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_POSIX_C_SOUR…
CFLAGS = -std=c99 -pedantic -Wall -Os $(INCS) $(CPPFLAGS)
LDFLAGS = $(LIBS)
diff --git a/dmenu.c b/dmenu.c
@@ -102,6 +102,25 @@ cleanup(void)
XCloseDisplay(dpy);
}
+static char *
+cistrstr(const char *h, const char *n)
+
+{
+ size_t i;
+
+ if (!n[0])
+ return (char *)h;
+
+ for (; *h; ++h) {
+ for (i = 0; n[i] && tolower((unsigned char)n[i]) ==
+ tolower((unsigned char)h[i]); ++i)
+ ;
+ if (n[i] == '\0')
+ return (char *)h;
+ }
+ return NULL;
+}
+
static int
drawitem(struct item *item, int x, int y, int w)
{
@@ -711,7 +730,7 @@ main(int argc, char *argv[])
fast = 1;
else if (!strcmp(argv[i], "-i")) { /* case-insensitive item ma…
fstrncmp = strncasecmp;
- fstrstr = strcasestr;
+ fstrstr = cistrstr;
} else if (i + 1 == argc)
usage();
/* these options take one argument */
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.