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.
This commit is contained in:
NRK 2022-03-25 22:51:45 +01:00 committed by Hiltjo Posthuma
parent b43ec0577f
commit 6818e07291

View file

@ -415,7 +415,8 @@ keypress(XKeyEvent *ev)
switch(ksym) { switch(ksym) {
default: default:
insert: insert:
if (!iscntrl(*buf)) if (iscntrl((unsigned char)*buf))
return;
insert(buf, len); insert(buf, len);
break; break;
case XK_Delete: case XK_Delete: