X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=st.c;h=16803ec388228153eb8a841b85ec11babc92deb0;hb=8b602a37a65a3c001bd9334d8b1cfc17fc5dd45c;hp=28095927c6e9d5a7ec227c6c3496a92fb9c3686e;hpb=90c6f055b637a58da0381a21b4a290ce26f56d8f;p=st.git diff --git a/st.c b/st.c index 2809592..16803ec 100644 --- a/st.c +++ b/st.c @@ -3355,17 +3355,17 @@ focus(XEvent *ev) { } } -inline bool +static inline bool match(uint mask, uint state) { - state &= ~(ignoremod); + state &= ~ignoremod; if(mask == XK_NO_MOD && state) return false; if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state) return false; - if((state & mask) != state) - return false; - return true; + if(mask == XK_ANY_MOD) + return true; + return state == mask; } void @@ -3375,7 +3375,6 @@ numlock(const Arg *dummy) { char* kmap(KeySym k, uint state) { - uint mask; Key *kp; int i; @@ -3390,12 +3389,10 @@ kmap(KeySym k, uint state) { } for(kp = key; kp < key + LEN(key); kp++) { - mask = kp->mask; - if(kp->k != k) continue; - if(!match(mask, state)) + if(!match(kp->mask, state)) continue; if(kp->appkey > 0) {