Fixing the tab key, when no mask is wanted. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 461aac159cf3dbb8514e645df6387e03e7c26084
 (DIR) parent 7474a2fc3785eb1aad00f8cf2b50711bbe1fff0b
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Wed, 14 Nov 2012 06:37:24 +0100
       
       Fixing the tab key, when no mask is wanted.
       
       Diffstat:
         M st.c                                |       7 ++++++-
       
       1 file changed, 6 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -2699,18 +2699,22 @@ kmap(KeySym k, uint state) {
        
                        if(kp->k != k)
                                continue;
       -                if((state & mask) != mask &&
       +
       +                if((state & mask) != mask ||
                                        (mask == XK_NO_MOD && state)) {
                                continue;
                        }
       +
                        if((kp->appkey < 0 && IS_SET(MODE_APPKEYPAD)) ||
                                        (kp->appkey > 0 && !IS_SET(MODE_APPKEYPAD))) {
                                continue;
                        }
       +
                        if((kp->appcursor < 0 && IS_SET(MODE_APPCURSOR)) ||
                                        (kp->appcursor > 0 && !IS_SET(MODE_APPCURSOR))) {
                                continue;
                        }
       +
                        if((kp->crlf < 0 && IS_SET(MODE_CRLF)) ||
                                        (kp->crlf > 0 && !IS_SET(MODE_CRLF))) {
                                continue;
       @@ -2718,6 +2722,7 @@ kmap(KeySym k, uint state) {
        
                        return kp->s;
                }
       +
                return NULL;
        }