Author: NRK <firstname.lastname@example.org>
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.
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dmenu.c b/dmenu.c
@@ -415,8 +415,9 @@ keypress(XKeyEvent *ev)
- if (!iscntrl(*buf))
- insert(buf, len);
+ if (iscntrl((unsigned char)*buf))
+ insert(buf, len);