summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1997-10-16 18:13:44 +0000
committerKarl Heuer <kwzh@gnu.org>1997-10-16 18:13:44 +0000
commit15245591a3fc871a3691e7df419c719f91031a5d (patch)
tree81336e1c35e6124288250c29a62963601c5cf191
parent806b3d1a90e9315ff7dda883756f7ffe39d5e0dd (diff)
downloademacs-15245591a3fc871a3691e7df419c719f91031a5d.tar.gz
(Fwhere_is_internal): some minor mode bindings weren't
being found.
-rw-r--r--src/keymap.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/keymap.c b/src/keymap.c
index e6053c695c9..84acd616bed 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1883,22 +1883,28 @@ indirect definition itself.")
{
Lisp_Object maps;
Lisp_Object found, sequences;
+ Lisp_Object keymap1;
int keymap_specified = !NILP (keymap);
struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
/* 1 means ignore all menu bindings entirely. */
int nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii);
+ /* Find keymaps accessible from `keymap' or the current
+ context. But don't muck with the value of `keymap',
+ because `where_is_internal_1' uses it to check for
+ shadowed bindings. */
+ keymap1 = keymap;
if (! keymap_specified)
{
#ifdef USE_TEXT_PROPERTIES
- keymap = get_local_map (PT, current_buffer);
+ keymap1 = get_local_map (PT, current_buffer);
#else
- keymap = current_buffer->keymap;
+ keymap1 = current_buffer->keymap;
#endif
}
-
- if (!NILP (keymap))
- maps = nconc2 (Faccessible_keymaps (get_keymap (keymap), Qnil),
+
+ if (!NILP (keymap1))
+ maps = nconc2 (Faccessible_keymaps (get_keymap (keymap1), Qnil),
Faccessible_keymaps (get_keymap (current_global_map),
Qnil));
else