changeset 17932:78a128b99e05

(access_keymap, store_in_keymap): Don't look in a char-table for a character that has modifier bits.
author Richard M. Stallman <rms@gnu.org>
date Fri, 23 May 1997 17:33:32 +0000
parents 7e6a77408020
children a7579056d62e
files src/keymap.c
diffstat 1 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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;