Mercurial > emacs
diff src/doc.c @ 104918:cd8d62c35d57
* keymap.c (where_is_internal_data): Make noindirect a boolean.
(where_is_internal): Strip it down to only traverse the keymaps.
Move the cache handling from Fwhere_is_internal to here.
(Fwhere_is_internal): Move the handling of remapping and the choice of
the best binding from where_is_internal to here.
Unify the cached/noncached paths, so remapping is also handled
correctly when the cache is used, and so the cache can be used to
speed up remap-handling when applicable.
Give preference to non-remapped bindings.
* doc.c (Fsubstitute_command_keys): Let Fwhere_is_internal's prefer
non-remapped bindings.
* keyboard.c (parse_menu_item): Let Fwhere_is_internal handle
command remapping.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 10 Sep 2009 16:19:52 +0000 |
parents | 90578b9cc2d2 |
children | 68dd71358159 |
line wrap: on
line diff
--- a/src/doc.c Thu Sep 10 06:27:04 2009 +0000 +++ b/src/doc.c Thu Sep 10 16:19:52 2009 +0000 @@ -802,10 +802,7 @@ name = Fintern (make_string (start, length_byte), Qnil); do_remap: - /* Ignore remappings unless there are no ordinary bindings. */ - tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qt); - if (NILP (tem)) - tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qnil); + tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qnil); if (VECTORP (tem) && XVECTOR (tem)->size > 1 && EQ (AREF (tem, 0), Qremap) && SYMBOLP (AREF (tem, 1))