diff options
| author | Craig Jennings <c@cjennings.net> | 2025-05-23 10:31:15 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-05-23 10:31:15 -0500 |
| commit | 928298ef5b08545a6e29050b5a3a971de4d99ed1 (patch) | |
| tree | 4cbe71a3b5470e0f4a39a80462e15ae836ef3f2f | |
| parent | 0da1db38600084fc62698187de495162c3377ad8 (diff) | |
| -rw-r--r-- | dmenu-caseinsensitive-5.0.diff | 53 | ||||
| -rw-r--r-- | dmenu.1 | 6 | ||||
| -rw-r--r-- | dmenu.c | 11 |
3 files changed, 62 insertions, 8 deletions
diff --git a/dmenu-caseinsensitive-5.0.diff b/dmenu-caseinsensitive-5.0.diff new file mode 100644 index 0000000..f476bc9 --- /dev/null +++ b/dmenu-caseinsensitive-5.0.diff @@ -0,0 +1,53 @@ +diff --git a/dmenu.1 b/dmenu.1 +index 323f93c..3e3b31b 100644 +--- 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 +@@ -44,8 +44,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 +index 65f25ce..855df59 100644 +--- a/dmenu.c ++++ b/dmenu.c +@@ -55,8 +55,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 void + appenditem(struct item *item, struct item **list, struct item **last) +@@ -709,9 +710,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 */ @@ -3,7 +3,7 @@ dmenu \- dynamic menu .SH SYNOPSIS .B dmenu -.RB [ \-bfiv ] +.RB [ \-bfsv ] .RB [ \-l .IR lines ] .RB [ \-m @@ -44,8 +44,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. @@ -55,8 +55,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) @@ -736,9 +737,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 */ |
