Introduction
Introduction Statistics Contact Development Disclaimer Help
dmenu-instant-20160702-3c91eed.diff - sites - public wiki contents of suckless.…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dmenu-instant-20160702-3c91eed.diff (2048B)
---
1 diff --git a/config.def.h b/config.def.h
2 index dcffd38..a42d28b 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -1,6 +1,7 @@
6 /* See LICENSE file for copyright and license details. */
7 /* Default settings; can be overriden by command line. */
8
9 +static int instant = 0;
10 static int topbar = 1; /* -b option; if 0, dmenu …
11 /* -fn option overrides fonts[0]; default X11 font or font set */
12 static const char *fonts[] = {
13 diff --git a/dmenu.1 b/dmenu.1
14 index d3ab805..8806d4d 100644
15 --- a/dmenu.1
16 +++ b/dmenu.1
17 @@ -6,6 +6,7 @@ dmenu \- dynamic menu
18 .RB [ \-b ]
19 .RB [ \-f ]
20 .RB [ \-i ]
21 +.RB [ \-n ]
22 .RB [ \-l
23 .RB [ \-m
24 .IR monitor ]
25 @@ -48,6 +49,9 @@ X until stdin reaches end\-of\-file.
26 .B \-i
27 dmenu matches menu items case insensitively.
28 .TP
29 +.B \-n
30 +dmenu instantly selects if only one match.
31 +.TP
32 .BI \-l " lines"
33 dmenu lists items vertically, with the given number of lines.
34 .TP
35 diff --git a/dmenu.c b/dmenu.c
36 index e0c2f80..f079479 100644
37 --- a/dmenu.c
38 +++ b/dmenu.c
39 @@ -250,6 +250,13 @@ match(void)
40 matchend = substrend;
41 }
42 curr = sel = matches;
43 +
44 + if(instant && matches && matches==matchend && !lsubstr) {
45 + puts(matches->text);
46 + cleanup();
47 + exit(0);
48 + }
49 +
50 calcoffsets();
51 }
52
53 @@ -610,7 +617,7 @@ setup(void)
54 static void
55 usage(void)
56 {
57 - fputs("usage: dmenu [-b] [-f] [-i] [-l lines] [-p prompt] [-fn …
58 + fputs("usage: dmenu [-b] [-f] [-i] [-n] [-l lines] [-p prompt] …
59 " [-nb color] [-nf color] [-sb color] [-sf co…
60 exit(1);
61 }
62 @@ -632,7 +639,9 @@ main(int argc, char *argv[])
63 else if (!strcmp(argv[i], "-i")) { /* case-insensitive …
64 fstrncmp = strncasecmp;
65 fstrstr = cistrstr;
66 - } else if (i + 1 == argc)
67 + } else if (!strcmp(argv[i], "-n")) /* instant select only match */
68 + instant = 1;
69 + else if (i + 1 == argc)
70 usage();
71 /* these options take one argument */
72 else if (!strcmp(argv[i], "-l")) /* number of lines i…
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.