# HG changeset patch
# User Richard M. Stallman <rms@gnu.org>
# Date 864408812 0
# Node ID 78a128b99e053cb15ccce3a3864e51f1a24cc40b
# Parent  7e6a7740802086acfd78536d4afa33e346e14b03
(access_keymap, store_in_keymap): Don't look in a char-table
for a character that has modifier bits.

diff -r 7e6a77408020 -r 78a128b99e05 src/keymap.c
--- a/src/keymap.c	Fri May 23 17:32:41 1997 +0000
+++ b/src/keymap.c	Fri May 23 17:33:32 1997 +0000
@@ -484,7 +484,13 @@
 	  }
 	else if (CHAR_TABLE_P (binding))
 	  {
-	    if (NATNUMP (idx))
+	    /* Character codes with modifiers
+	       are not included in a char-table.
+	       All character codes without modifiers are included.  */
+	    if (NATNUMP (idx)
+		&& ! (XFASTINT (idx)
+		      & (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
+			 | CHAR_SHIFT | CHAR_CTL | CHAR_META)))
 	      {
 		val = Faref (binding, idx);
 		if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap))
@@ -629,7 +635,13 @@
 	  }
 	else if (CHAR_TABLE_P (elt))
 	  {
-	    if (NATNUMP (idx))
+	    /* Character codes with modifiers
+	       are not included in a char-table.
+	       All character codes without modifiers are included.  */
+	    if (NATNUMP (idx)
+		&& ! (XFASTINT (idx)
+		      & (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
+			 | CHAR_SHIFT | CHAR_CTL | CHAR_META)))
 	      {
 		Faset (elt, idx, def);
 		return def;