Fix match function bugs
[st.git] / st.c
diff --git a/st.c b/st.c
index 96111a0..66aca2d 100644 (file)
--- a/st.c
+++ b/st.c
@@ -916,7 +916,6 @@ bpress(XEvent *e) {
                if(sel.snap != 0) {
                        sel.mode++;
                        tsetdirt(sel.nb.y, sel.ne.y);
-                       draw();
                }
                sel.tclick2 = sel.tclick1;
                sel.tclick1 = now;
@@ -3356,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