sites

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

commit f44010b2dc1ab3505fc0fb061f01f401c0e758ac
parent bc2533ed5e965769358ee7db93ac380b69912529
Author: bit9tream <bit6tream@cock.li>
Date:   Fri, 12 Jun 2020 11:03:47 +0300

fix: fixed segfault on text output

Diffstat:
Mtools.suckless.org/dmenu/patches/multi-selection/dmenu-multi-selection-4.9.diff | 25+++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/tools.suckless.org/dmenu/patches/multi-selection/dmenu-multi-selection-4.9.diff b/tools.suckless.org/dmenu/patches/multi-selection/dmenu-multi-selection-4.9.diff @@ -1,5 +1,5 @@ diff --git a/dmenu.c b/dmenu.c -index 6b8f51b..c1e86b5 100644 +index 6b8f51b..af2fc99 100644 --- a/dmenu.c +++ b/dmenu.c @@ -31,7 +31,8 @@ enum { SchemeNorm, SchemeSel, SchemeOut, SchemeLast }; /* color schemes */ @@ -55,16 +55,15 @@ index 6b8f51b..c1e86b5 100644 drw_setscheme(drw, scheme[SchemeOut]); else drw_setscheme(drw, scheme[SchemeNorm]); -@@ -367,6 +381,21 @@ keypress(XKeyEvent *ev) +@@ -367,6 +381,20 @@ keypress(XKeyEvent *ev) goto draw; case XK_Return: case XK_KP_Enter: -+ if (issel(sel->id)) -+ for (int i = 0;i < selidsize;i++) { ++ if (issel(sel->id)) { ++ for (int i = 0;i < selidsize;i++) + if (selid[i] == sel->id) + selid[i] = -1; -+ } -+ else { ++ } else { + for (int i = 0;i < selidsize;i++) + if (selid[i] == -1) { + selid[i] = sel->id; @@ -77,7 +76,7 @@ index 6b8f51b..c1e86b5 100644 break; case XK_bracketleft: cleanup(); -@@ -464,13 +493,19 @@ insert: +@@ -464,13 +492,17 @@ insert: break; case XK_Return: case XK_KP_Enter: @@ -86,12 +85,10 @@ index 6b8f51b..c1e86b5 100644 + for (int i = 0;i < selidsize;i++) + if (selid[i] != -1) + puts(items[selid[i]].text); -+ if (!issel(sel->id)) { -+ if (sel && !(ev->state & ShiftMask)) -+ puts(sel->text); -+ else -+ puts(text); -+ } ++ if (sel && !(ev->state & ShiftMask)) ++ puts(sel->text); ++ else ++ puts(text); cleanup(); exit(0); } @@ -100,7 +97,7 @@ index 6b8f51b..c1e86b5 100644 break; case XK_Right: if (text[cursor] != '\0') { -@@ -534,7 +569,7 @@ readstdin(void) +@@ -534,7 +566,7 @@ readstdin(void) *p = '\0'; if (!(items[i].text = strdup(buf))) die("cannot strdup %u bytes:", strlen(buf) + 1);