comparison src/keyboard.c @ 24015:2b8d4cd758b7

(read_key_sequence): Tell get_keyelt to look handle autoloads. Handle symbols defined as keymaps, and autoloaded keymaps.
author Richard M. Stallman <rms@gnu.org>
date Wed, 06 Jan 1999 23:54:44 +0000
parents b0040d620df9
children 157787e56b41
comparison
equal deleted inserted replaced
24014:0997bcfd8827 24015:2b8d4cd758b7
7507 } 7507 }
7508 else 7508 else
7509 keytran_next = keytran_map; 7509 keytran_next = keytran_map;
7510 7510
7511 keytran_next 7511 keytran_next
7512 = get_keyelt (access_keymap (keytran_next, key, 1, 0), 0); 7512 = get_keyelt (access_keymap (keytran_next, key, 1, 0), 1);
7513 7513
7514 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next))
7515 && CONSP (XSYMBOL (keytran_next)->function)
7516 && EQ (XCONS (XSYMBOL (keytran_next)->function)->car, Qautoload))
7517 do_autoload (XSYMBOL (keytran_next)->function,
7518 keytran_next);
7519
7520 /* Handle a symbol whose function definition is a keymap. */
7521 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next))
7522 && !NILP (Fkeymapp (XSYMBOL (keytran_next)->function)))
7523 keytran_next = XSYMBOL (keytran_next)->function;
7524
7514 /* If the key translation map gives a function, not an 7525 /* If the key translation map gives a function, not an
7515 array, then call the function with no args and use 7526 array, then call the function with one arg and use
7516 its value instead. */ 7527 its value instead. */
7517 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next)) 7528 if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next))
7518 && keytran_end == t) 7529 && keytran_end == t)
7519 { 7530 {
7520 struct gcpro gcpro1, gcpro2, gcpro3; 7531 struct gcpro gcpro1, gcpro2, gcpro3;