~gnkv/dmenu

6818e07291f3b2913e687c8ec3d3fe4711724050 — NRK 2 years ago b43ec05
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 files changed, 3 insertions(+), 2 deletions(-)

M dmenu.c
M dmenu.c => dmenu.c +3 -2
@@ 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: