(access_keymap, store_in_keymap): Discard meaningless
authorRichard M. Stallman <rms@gnu.org>
Sun, 6 Jun 1993 06:45:22 +0000 (06:45 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 6 Jun 1993 06:45:22 +0000 (06:45 +0000)
high bits of a character event.

src/keymap.c

index 7831c29..107c2ec 100644 (file)
@@ -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.  */
   {