dmenu-caseinsensitive-5.0.diff (1691B)
1 diff --git a/dmenu.1 b/dmenu.1 2 index 323f93c..3e3b31b 100644 3 --- a/dmenu.1 4 +++ b/dmenu.1 5 @@ -3,7 +3,7 @@ 6 dmenu \- dynamic menu 7 .SH SYNOPSIS 8 .B dmenu 9 -.RB [ \-bfiv ] 10 +.RB [ \-bfsv ] 11 .RB [ \-l 12 .IR lines ] 13 .RB [ \-m 14 @@ -44,8 +44,8 @@ dmenu appears at the bottom of the screen. 15 dmenu grabs the keyboard before reading stdin if not reading from a tty. This 16 is faster, but will lock up X until stdin reaches end\-of\-file. 17 .TP 18 -.B \-i 19 -dmenu matches menu items case insensitively. 20 +.B \-s 21 +dmenu matches menu items case sensitively. 22 .TP 23 .BI \-l " lines" 24 dmenu lists items vertically, with the given number of lines. 25 diff --git a/dmenu.c b/dmenu.c 26 index 65f25ce..855df59 100644 27 --- a/dmenu.c 28 +++ b/dmenu.c 29 @@ -55,8 +55,9 @@ static Clr *scheme[SchemeLast]; 30 31 #include "config.h" 32 33 -static int (*fstrncmp)(const char *, const char *, size_t) = strncmp; 34 -static char *(*fstrstr)(const char *, const char *) = strstr; 35 +static char * cistrstr(const char *s, const char *sub); 36 +static int (*fstrncmp)(const char *, const char *, size_t) = strncasecmp; 37 +static char *(*fstrstr)(const char *, const char *) = cistrstr; 38 39 static void 40 appenditem(struct item *item, struct item **list, struct item **last) 41 @@ -709,9 +710,9 @@ main(int argc, char *argv[]) 42 topbar = 0; 43 else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */ 44 fast = 1; 45 - else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */ 46 - fstrncmp = strncasecmp; 47 - fstrstr = cistrstr; 48 + else if (!strcmp(argv[i], "-s")) { /* case-sensitive item matching */ 49 + fstrncmp = strncmp; 50 + fstrstr = strstr; 51 } else if (i + 1 == argc) 52 usage(); 53 /* these options take one argument */