Mercurial > emacs
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; |