From 992753a6b578e33c5078ca44667e055f04e0bad4 Mon Sep 17 00:00:00 2001 From: Mark Edgar Date: Sun, 6 Oct 2013 13:38:24 +0200 Subject: [PATCH 3/3] Simplify matching logic in match() and kmap(). --- st.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/st.c b/st.c index c2859b6..422f4c9 100644 --- a/st.c +++ b/st.c @@ -3502,14 +3502,7 @@ focus(XEvent *ev) { static inline bool match(uint mask, uint state) { state &= ~ignoremod; - - if(mask == XK_NO_MOD && state) - return false; - if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state) - return false; - if(mask == XK_ANY_MOD) - return true; - return state == mask; + return mask == XK_ANY_MOD || state == mask; } void @@ -3528,25 +3521,18 @@ kmap(KeySym k, uint state) { if(!match(kp->mask, state)) continue; - if(kp->keypad > 0) { - if(!IS_SET(MODE_APPKEYPAD)) + if(kp->keypad) { + if(IS_SET(MODE_APPKEYPAD) != (kp->keypad > 0)) continue; if(term.numlock && kp->keypad == 2) continue; - } else if(kp->keypad < 0 && IS_SET(MODE_APPKEYPAD)) { - continue; } - if((kp->cursor < 0 && IS_SET(MODE_APPCURSOR)) || - (kp->cursor > 0 - && !IS_SET(MODE_APPCURSOR))) { + if(kp->cursor && IS_SET(MODE_APPCURSOR) != (kp->cursor > 0)) continue; - } - if((kp->crlf < 0 && IS_SET(MODE_CRLF)) || - (kp->crlf > 0 && !IS_SET(MODE_CRLF))) { + if(kp->crlf && IS_SET(MODE_CRLF) != (kp->crlf > 0)) continue; - } return kp->s; } -- 1.8.4