X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fkeymap.c;h=9cae3ab5ad556d50df457b3f5b6dcd6976622f0f;hb=59eec5f21669e81977b5b1fe9bf717cab49cf7fb;hp=afa9c089d03eef135923b6f2de230e64f686a7bd;hpb=032d062ebcb2344e6245cea4214bc09835da97ee;p=chise%2Fxemacs-chise.git diff --git a/src/keymap.c b/src/keymap.c index afa9c08..9cae3ab 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -463,8 +463,11 @@ keymap_lookup_directly (Lisp_Object keymap, { Lisp_Keymap *k; - if ((modifiers & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_META | XEMACS_MOD_SUPER | XEMACS_MOD_HYPER - | XEMACS_MOD_ALT | XEMACS_MOD_SHIFT)) != 0) + modifiers &= ~(XEMACS_MOD_BUTTON1 | XEMACS_MOD_BUTTON2 | XEMACS_MOD_BUTTON3 + | XEMACS_MOD_BUTTON4 | XEMACS_MOD_BUTTON5); + if ((modifiers & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_META | XEMACS_MOD_SUPER + | XEMACS_MOD_HYPER | XEMACS_MOD_ALT | XEMACS_MOD_SHIFT)) + != 0) abort (); k = XKEYMAP (keymap); @@ -641,6 +644,8 @@ keymap_store (Lisp_Object keymap, const struct key_data *key, int modifiers = key->modifiers; Lisp_Keymap *k = XKEYMAP (keymap); + modifiers &= ~(XEMACS_MOD_BUTTON1 | XEMACS_MOD_BUTTON2 | XEMACS_MOD_BUTTON3 + | XEMACS_MOD_BUTTON4 | XEMACS_MOD_BUTTON5); assert ((modifiers & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_META | XEMACS_MOD_SUPER | XEMACS_MOD_HYPER | XEMACS_MOD_ALT | XEMACS_MOD_SHIFT)) == 0); @@ -1702,7 +1707,10 @@ ensure_meta_prefix_char_keymapp (Lisp_Object keys, int indx, XVECTOR_DATA (new_keys) [i] = XVECTOR_DATA (keys) [i]; } else - abort (); + { + new_keys = Qnil; + abort (); + } if (EQ (keys, new_keys)) error_with_frob (mpc_binding, @@ -4123,12 +4131,18 @@ describe_map (Lisp_Object keymap, Lisp_Object elt_prefix, if (!NILP (elt_prefix)) buffer_insert_lisp_string (buf, elt_prefix); - if (modifiers & XEMACS_MOD_META) buffer_insert_c_string (buf, "M-"); - if (modifiers & XEMACS_MOD_CONTROL) buffer_insert_c_string (buf, "C-"); - if (modifiers & XEMACS_MOD_SUPER) buffer_insert_c_string (buf, "S-"); - if (modifiers & XEMACS_MOD_HYPER) buffer_insert_c_string (buf, "H-"); - if (modifiers & XEMACS_MOD_ALT) buffer_insert_c_string (buf, "Alt-"); - if (modifiers & XEMACS_MOD_SHIFT) buffer_insert_c_string (buf, "Sh-"); + if (modifiers & XEMACS_MOD_META) + buffer_insert_c_string (buf, "M-"); + if (modifiers & XEMACS_MOD_CONTROL) + buffer_insert_c_string (buf, "C-"); + if (modifiers & XEMACS_MOD_SUPER) + buffer_insert_c_string (buf, "S-"); + if (modifiers & XEMACS_MOD_HYPER) + buffer_insert_c_string (buf, "H-"); + if (modifiers & XEMACS_MOD_ALT) + buffer_insert_c_string (buf, "Alt-"); + if (modifiers & XEMACS_MOD_SHIFT) + buffer_insert_c_string (buf, "Sh-"); if (SYMBOLP (keysym)) { Lisp_Object code = Fget (keysym, Vcharacter_set_property, Qnil);