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))