# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit f4a6c20f464df79a9b15b4a2a11daaa7a06c60a0
    parent e0ec2cf984ff8006b99cf4ca8590ceec7113daac
    Author: Christoph Lohmann <20h@r-36.net>
    Date:   Sat, 16 Feb 2013 13:57:12 +0100

    Adding a way to ignore bits in the state.

    Diffstat:
    Mconfig.def.h | 6++++++
    Mst.c | 3+++

    2 files changed, 9 insertions(+), 0 deletions(-)
    diff --git a/config.def.h b/config.def.h
    @@ -104,6 +104,12 @@ static Shortcut shortcuts[] = {
      */
     static KeySym mappedkeys[] = { -1 };

    +/*
    + * Which bits of the state should be ignored. By default the state bit for the
    + * keyboard layout (XK_SWITCH_MOD) is ignored.
    + */
    +uint ignoremod = XK_SWITCH_MOD;
    +
     /* key, mask, output, keypad, cursor, crlf */
     static Key key[] = {
     	/* keysym             mask         string         keypad cursor crlf */
    diff --git a/st.c b/st.c
    @@ -61,6 +61,7 @@
     #define DRAW_BUF_SIZ  20*1024
     #define XK_ANY_MOD    UINT_MAX
     #define XK_NO_MOD     0
    +#define XK_SWITCH_MOD (1<<13)

     #define REDRAW_TIMEOUT (80*1000) /* 80 ms */

    @@ -3008,6 +3009,8 @@ focus(XEvent *ev) {

     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)