commit 6818e07291f3b2913e687c8ec3d3fe4711724050 from: NRK via: Hiltjo Posthuma date: Fri Mar 25 21:53:50 2022 UTC 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. commit - b43ec0577f2ad8ad33a0b893fe5360d966036786 commit + 6818e07291f3b2913e687c8ec3d3fe4711724050 blob - 085dc292631e72778c05c31f4c4840d9ab0b0856 blob + 19f6385367133c72bccb2432f549b0a5466497aa --- dmenu.c +++ 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: