From 2732bdbbbfca21280f00fb9344323c152b138885 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 6 Jun 1993 06:45:22 +0000 Subject: [PATCH] (access_keymap, store_in_keymap): Discard meaningless high bits of a character event. --- src/keymap.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/keymap.c b/src/keymap.c index 7831c293316..107c2ec3b87 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -272,6 +272,10 @@ access_keymap (map, idx, t_ok) be put in the canonical order. */ if (XTYPE (idx) == Lisp_Symbol) idx = reorder_modifiers (idx); + else if (INTEGERP (idx)) + /* Clobber the high bits that can be present on a machine + with more than 24 bits of integer. */ + XFASTINT (idx) = XINT (idx) & ((1 << 24) - 1); { Lisp_Object tail; @@ -368,7 +372,10 @@ store_in_keymap (keymap, idx, def) be put in the canonical order. */ if (XTYPE (idx) == Lisp_Symbol) idx = reorder_modifiers (idx); - + else if (INTEGERP (idx)) + /* Clobber the high bits that can be present on a machine + with more than 24 bits of integer. */ + XFASTINT (idx) = XINT (idx) & ((1 << 24) - 1); /* Scan the keymap for a binding of idx. */ {