Introduction
Introduction Statistics Contact Development Disclaimer Help
dmenu-printindex-5.0.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dmenu-printindex-5.0.diff (2374B)
---
1 From e5a1ce7fca66c1d991f41df421bb7f1a4a3a8c45 Mon Sep 17 00:00:00 2001
2 From: Jackson Abascal <[email protected]>
3 Date: Mon, 26 Apr 2021 15:39:29 -0400
4 Subject: [PATCH] gives dmenu the ability to print the index of matched t…
5 instead of the text itself
6
7 ---
8 dmenu.1 | 3 +++
9 dmenu.c | 13 +++++++++++--
10 2 files changed, 14 insertions(+), 2 deletions(-)
11
12 diff --git a/dmenu.1 b/dmenu.1
13 index 323f93c..b3c5f13 100644
14 --- a/dmenu.1
15 +++ b/dmenu.1
16 @@ -47,6 +47,9 @@ is faster, but will lock up X until stdin reaches end\…
17 .B \-i
18 dmenu matches menu items case insensitively.
19 .TP
20 +.B \-ix
21 +dmenu prints the index of matched text instead of the text itself.
22 +.TP
23 .BI \-l " lines"
24 dmenu lists items vertically, with the given number of lines.
25 .TP
26 diff --git a/dmenu.c b/dmenu.c
27 index 65f25ce..172a2b4 100644
28 --- a/dmenu.c
29 +++ b/dmenu.c
30 @@ -32,6 +32,7 @@ struct item {
31 char *text;
32 struct item *left, *right;
33 int out;
34 + int index;
35 };
36
37 static char text[BUFSIZ] = "";
38 @@ -44,6 +45,7 @@ static struct item *items = NULL;
39 static struct item *matches, *matchend;
40 static struct item *prev, *curr, *next, *sel;
41 static int mon = -1, screen;
42 +static int print_index = 0;
43
44 static Atom clip, utf8;
45 static Display *dpy;
46 @@ -464,7 +466,11 @@ insert:
47 break;
48 case XK_Return:
49 case XK_KP_Enter:
50 - puts((sel && !(ev->state & ShiftMask)) ? sel->text : te…
51 + if (print_index)
52 + printf("%d\n", (sel && !(ev->state & ShiftMask)…
53 + else
54 + puts((sel && !(ev->state & ShiftMask)) ? sel->t…
55 +
56 if (!(ev->state & ControlMask)) {
57 cleanup();
58 exit(0);
59 @@ -535,6 +541,7 @@ readstdin(void)
60 if (!(items[i].text = strdup(buf)))
61 die("cannot strdup %u bytes:", strlen(buf) + 1);
62 items[i].out = 0;
63 + items[i].index = i;
64 drw_font_getexts(drw->fonts, buf, strlen(buf), &tmpmax,…
65 if (tmpmax > inputw) {
66 inputw = tmpmax;
67 @@ -712,7 +719,9 @@ main(int argc, char *argv[])
68 else if (!strcmp(argv[i], "-i")) { /* case-insensitive …
69 fstrncmp = strncasecmp;
70 fstrstr = cistrstr;
71 - } else if (i + 1 == argc)
72 + } else if (!strcmp(argv[i], "-ix")) /* adds ability to…
73 + print_index = 1;
74 + else if (i + 1 == argc)
75 usage();
76 /* these options take one argument */
77 else if (!strcmp(argv[i], "-l")) /* number of lines i…
78 --
79 2.31.1
80
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.