sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

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 */