sites

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

commit dd227e25af73fbfccf9c15f88e9309b28f4239b2
parent 8182960402f136a8ae2bd7a12332495b22762d17
Author: Parker Ellertson <parker@cybertron.ninja>
Date:   Wed, 25 Sep 2019 12:58:53 -0600

Added documentation in dmenu-password-4.9.diff

Diffstat:
Mtools.suckless.org/dmenu/patches/password/dmenu-password-4.9.diff | 79+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 51 insertions(+), 28 deletions(-)

diff --git a/tools.suckless.org/dmenu/patches/password/dmenu-password-4.9.diff b/tools.suckless.org/dmenu/patches/password/dmenu-password-4.9.diff @@ -1,65 +1,88 @@ ---- dmenu-4.9_/dmenu.c 2019-07-17 11:17:08.471766245 -0400 -+++ dmenu-4.9/dmenu.c 2019-07-17 11:22:58.069750819 -0400 +diff -up dmenu-4.9/dmenu.1 dmenu-4.9-orig/dmenu.1 +--- dmenu-4.9/dmenu.1 2019-09-25 12:55:42.666319316 -0600 ++++ dmenu-4.9-orig/dmenu.1 2019-09-25 12:48:38.848249931 -0600 +@@ -3,7 +3,7 @@ + dmenu \- dynamic menu + .SH SYNOPSIS + .B dmenu +-.RB [ \-bfivP ] ++.RB [ \-bfiv ] + .RB [ \-l + .IR lines ] + .RB [ \-m +@@ -47,9 +47,6 @@ is faster, but will lock up X until stdi + .B \-i + dmenu matches menu items case insensitively. + .TP +-.B \-P +-dmenu will not directly display the keyboard input, but instead replace it with dots. All data from stdin will be ignored. +-.TP + .BI \-l " lines" + dmenu lists items vertically, with the given number of lines. + .TP +diff -up dmenu-4.9/dmenu.c dmenu-4.9-orig/dmenu.c +--- dmenu-4.9/dmenu.c 2019-09-25 12:48:55.756173240 -0600 ++++ dmenu-4.9-orig/dmenu.c 2019-09-25 12:48:38.848249931 -0600 @@ -37,7 +37,7 @@ struct item { static char text[BUFSIZ] = ""; static char *embed; static int bh, mw, mh; --static int inputw = 0, promptw; -+static int inputw = 0, promptw, passwd = 0; +-static int inputw = 0, promptw, passwd = 0; ++static int inputw = 0, promptw; static int lrpad; /* sum of left and right padding */ static size_t cursor; static struct item *items = NULL; -@@ -132,6 +132,7 @@ drawmenu(void) +@@ -132,7 +132,6 @@ drawmenu(void) unsigned int curpos; struct item *item; int x = 0, y = 0, w; -+ char *censort; +- char *censort; drw_setscheme(drw, scheme[SchemeNorm]); drw_rect(drw, 0, 0, mw, mh, 1, 1); -@@ -143,7 +144,12 @@ drawmenu(void) +@@ -144,12 +143,7 @@ drawmenu(void) /* draw input field */ w = (lines > 0 || !matches) ? mw - x : inputw; drw_setscheme(drw, scheme[SchemeNorm]); -- drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0); -+ if (passwd) { -+ censort = ecalloc(1, sizeof(text)); -+ memset(censort, '.', strlen(text)); -+ drw_text(drw, x, 0, w, bh, lrpad / 2, censort, 0); -+ free(censort); -+ } else drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0); +- if (passwd) { +- censort = ecalloc(1, sizeof(text)); +- memset(censort, '.', strlen(text)); +- drw_text(drw, x, 0, w, bh, lrpad / 2, censort, 0); +- free(censort); +- } else drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0); ++ drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0); curpos = TEXTW(text) - TEXTW(&text[cursor]); if ((curpos += lrpad / 2 - 1) < w) { -@@ -525,6 +531,11 @@ readstdin(void) +@@ -531,11 +525,6 @@ readstdin(void) size_t i, imax = 0, size = 0; unsigned int tmpmax = 0; -+ if(passwd){ -+ inputw = lines = 0; -+ return; -+ } -+ +- if(passwd){ +- inputw = lines = 0; +- return; +- } +- /* read each line from stdin and add it to the item list */ for (i = 0; fgets(buf, sizeof buf, stdin); i++) { if (i + 1 >= size / sizeof *items) -@@ -682,7 +693,7 @@ setup(void) +@@ -693,7 +682,7 @@ setup(void) static void usage(void) { -- fputs("usage: dmenu [-bfiv] [-l lines] [-p prompt] [-fn font] [-m monitor]\n" -+ fputs("usage: dmenu [-bfiPv] [-l lines] [-p prompt] [-fn font] [-m monitor]\n" +- fputs("usage: dmenu [-bfiPv] [-l lines] [-p prompt] [-fn font] [-m monitor]\n" ++ fputs("usage: dmenu [-bfiv] [-l lines] [-p prompt] [-fn font] [-m monitor]\n" " [-nb color] [-nf color] [-sb color] [-sf color] [-w windowid]\n", stderr); exit(1); } -@@ -705,7 +716,9 @@ main(int argc, char *argv[]) +@@ -716,9 +705,7 @@ main(int argc, char *argv[]) else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */ fstrncmp = strncasecmp; fstrstr = cistrstr; -- } else if (i + 1 == argc) -+ } else if (!strcmp(argv[i], "-P")) /* is the input a password */ -+ passwd = 1; -+ else if (i + 1 == argc) +- } else if (!strcmp(argv[i], "-P")) /* is the input a password */ +- passwd = 1; +- else if (i + 1 == argc) ++ } else if (i + 1 == argc) usage(); /* these options take one argument */ else if (!strcmp(argv[i], "-l")) /* number of lines in vertical list */