commit 1e7498b293ab21828df41a2d908f77388bf1a364
parent a36e13e0df6e1c31031c597e8242306f1d4a4ffe
Author: fjbalon <fjbalon@templier.es>
Date: Sun, 21 Jun 2026 23:08:08 +0200
Añadido case in-sensitive para mejorar patrones de búsqueda rápida
Diffstat:
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/dmenu.1 b/dmenu.1
@@ -3,7 +3,7 @@
dmenu \- dynamic menu
.SH SYNOPSIS
.B dmenu
-.RB [ \-bfiv ]
+.RB [ \-bfsv ]
.RB [ \-l
.IR lines ]
.RB [ \-m
@@ -48,8 +48,8 @@ dmenu appears at the bottom of the screen.
dmenu grabs the keyboard before reading stdin if not reading from a tty. This
is faster, but will lock up X until stdin reaches end\-of\-file.
.TP
-.B \-i
-dmenu matches menu items case insensitively.
+.B \-s
+dmenu matches menu items case sensitively.
.TP
.BI \-l " lines"
dmenu lists items vertically, with the given number of lines.
diff --git a/dmenu.c b/dmenu.c
@@ -54,8 +54,9 @@ static Clr *scheme[SchemeLast];
#include "config.h"
-static int (*fstrncmp)(const char *, const char *, size_t) = strncmp;
-static char *(*fstrstr)(const char *, const char *) = strstr;
+static char * cistrstr(const char *s, const char *sub);
+static int (*fstrncmp)(const char *, const char *, size_t) = strncasecmp;
+static char *(*fstrstr)(const char *, const char *) = cistrstr;
static unsigned int
textw_clamp(const char *str, unsigned int n)
@@ -733,9 +734,9 @@ main(int argc, char *argv[])
topbar = 0;
else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */
fast = 1;
- else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */
- fstrncmp = strncasecmp;
- fstrstr = cistrstr;
+ else if (!strcmp(argv[i], "-s")) { /* case-sensitive item matching */
+ fstrncmp = strncmp;
+ fstrstr = strstr;
} else if (i + 1 == argc)
usage();
/* these options take one argument */