dynamic menu
git clone git://
Log | Files | Refs | README | LICENSE

commit 6818e07291f3b2913e687c8ec3d3fe4711724050
parent b43ec0577f2ad8ad33a0b893fe5360d966036786
Author: NRK <>
Date:   Fri, 25 Mar 2022 22:51:45 +0100

avoid redraw when there's no change

while i was timing the performance issue, i noticed that there was lots
of random redrawing going on.

turns out there were coming from here; if someone presses CTRL/ALT etc
without pressing anything else, nothing will be inserted, so nothing
will change. but the code will `break`, go down and do a needless redraw.

this patch changes it to simply return if the keypress iscntrl()

also avoid potential UB by casting *buf into an unsigned char.

Mdmenu.c | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/dmenu.c b/dmenu.c @@ -415,8 +415,9 @@ keypress(XKeyEvent *ev) switch(ksym) { default: insert: - if (!iscntrl(*buf)) - insert(buf, len); + if (iscntrl((unsigned char)*buf)) + return; + insert(buf, len); break; case XK_Delete: case XK_KP_Delete: