# HG changeset patch # User Richard M. Stallman # Date 915666884 0 # Node ID 2b8d4cd758b75d82308f6b769232b5d21f6cd996 # Parent 0997bcfd88273a8044282e9b6a3e75c5e96e68b9 (read_key_sequence): Tell get_keyelt to look handle autoloads. Handle symbols defined as keymaps, and autoloaded keymaps. diff -r 0997bcfd8827 -r 2b8d4cd758b7 src/keyboard.c --- a/src/keyboard.c Wed Jan 06 22:46:20 1999 +0000 +++ b/src/keyboard.c Wed Jan 06 23:54:44 1999 +0000 @@ -7509,10 +7509,21 @@ keytran_next = keytran_map; keytran_next - = get_keyelt (access_keymap (keytran_next, key, 1, 0), 0); - + = get_keyelt (access_keymap (keytran_next, key, 1, 0), 1); + + if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next)) + && CONSP (XSYMBOL (keytran_next)->function) + && EQ (XCONS (XSYMBOL (keytran_next)->function)->car, Qautoload)) + do_autoload (XSYMBOL (keytran_next)->function, + keytran_next); + + /* Handle a symbol whose function definition is a keymap. */ + if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next)) + && !NILP (Fkeymapp (XSYMBOL (keytran_next)->function))) + keytran_next = XSYMBOL (keytran_next)->function; + /* If the key translation map gives a function, not an - array, then call the function with no args and use + array, then call the function with one arg and use its value instead. */ if (SYMBOLP (keytran_next) && ! NILP (Ffboundp (keytran_next)) && keytran_end == t)