aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index a8a620a4e53..899f83b50f1 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -7401,7 +7401,21 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
7401 fkey_next = fkey_map; 7401 fkey_next = fkey_map;
7402 7402
7403 fkey_next 7403 fkey_next
7404 = get_keyelt (access_keymap (fkey_next, key, 1, 0), 0); 7404 = get_keyelt (access_keymap (fkey_next, key, 1, 0), 1);
7405
7406 /* Handle symbol with autoload definition. */
7407 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next))
7408 && CONSP (XSYMBOL (keytran_next)->function)
7409 && EQ (XCONS (XSYMBOL (keytran_next)->function)->car, Qautoload))
7410 do_autoload (XSYMBOL (keytran_next)->function,
7411 keytran_next);
7412
7413 /* Handle a symbol whose function definition is a keymap
7414 or an array. */
7415 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next))
7416 && (!NILP (Farrayp (XSYMBOL (keytran_next)->function))
7417 || !NILP (Fkeymapp (XSYMBOL (keytran_next)->function))))
7418 keytran_next = XSYMBOL (keytran_next)->function;
7405 7419
7406#if 0 /* I didn't turn this on, because it might cause trouble 7420#if 0 /* I didn't turn this on, because it might cause trouble
7407 for the mapping of return into C-m and tab into C-i. */ 7421 for the mapping of return into C-m and tab into C-i. */
@@ -7511,15 +7525,18 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
7511 keytran_next 7525 keytran_next
7512 = get_keyelt (access_keymap (keytran_next, key, 1, 0), 1); 7526 = get_keyelt (access_keymap (keytran_next, key, 1, 0), 1);
7513 7527
7528 /* Handle symbol with autoload definition. */
7514 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next)) 7529 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next))
7515 && CONSP (XSYMBOL (keytran_next)->function) 7530 && CONSP (XSYMBOL (keytran_next)->function)
7516 && EQ (XCONS (XSYMBOL (keytran_next)->function)->car, Qautoload)) 7531 && EQ (XCONS (XSYMBOL (keytran_next)->function)->car, Qautoload))
7517 do_autoload (XSYMBOL (keytran_next)->function, 7532 do_autoload (XSYMBOL (keytran_next)->function,
7518 keytran_next); 7533 keytran_next);
7519 7534
7520 /* Handle a symbol whose function definition is a keymap. */ 7535 /* Handle a symbol whose function definition is a keymap
7536 or an array. */
7521 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next)) 7537 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next))
7522 && !NILP (Fkeymapp (XSYMBOL (keytran_next)->function))) 7538 && (!NILP (Farrayp (XSYMBOL (keytran_next)->function))
7539 || !NILP (Fkeymapp (XSYMBOL (keytran_next)->function))))
7523 keytran_next = XSYMBOL (keytran_next)->function; 7540 keytran_next = XSYMBOL (keytran_next)->function;
7524 7541
7525 /* If the key translation map gives a function, not an 7542 /* If the key translation map gives a function, not an