aboutsummaryrefslogtreecommitdiffstats
path: root/src/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/keymap.c b/src/keymap.c
index 6a08a86ef47..32c4afb322d 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -484,7 +484,13 @@ access_keymap (map, idx, t_ok, noinherit)
484 } 484 }
485 else if (CHAR_TABLE_P (binding)) 485 else if (CHAR_TABLE_P (binding))
486 { 486 {
487 if (NATNUMP (idx)) 487 /* Character codes with modifiers
488 are not included in a char-table.
489 All character codes without modifiers are included. */
490 if (NATNUMP (idx)
491 && ! (XFASTINT (idx)
492 & (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
493 | CHAR_SHIFT | CHAR_CTL | CHAR_META)))
488 { 494 {
489 val = Faref (binding, idx); 495 val = Faref (binding, idx);
490 if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap)) 496 if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap))
@@ -629,7 +635,13 @@ store_in_keymap (keymap, idx, def)
629 } 635 }
630 else if (CHAR_TABLE_P (elt)) 636 else if (CHAR_TABLE_P (elt))
631 { 637 {
632 if (NATNUMP (idx)) 638 /* Character codes with modifiers
639 are not included in a char-table.
640 All character codes without modifiers are included. */
641 if (NATNUMP (idx)
642 && ! (XFASTINT (idx)
643 & (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
644 | CHAR_SHIFT | CHAR_CTL | CHAR_META)))
633 { 645 {
634 Faset (elt, idx, def); 646 Faset (elt, idx, def);
635 return def; 647 return def;