From: Richard M. Stallman Date: Thu, 13 Jan 2005 19:49:53 +0000 (+0000) Subject: (Fcurrent_active_maps): Ignore Voverriding_local_map X-Git-Tag: ttn-vms-21-2-B4~2775 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d64cdc59724b7caca47913d5beb2b4a54f7b7c91;p=emacs.git (Fcurrent_active_maps): Ignore Voverriding_local_map if Voverriding_terminal_local_map is non-nil. --- diff --git a/src/keymap.c b/src/keymap.c index 99883415914..f5675d563ee 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -1486,10 +1486,13 @@ OLP if non-nil indicates that we should obey `overriding-local-map' and if (!NILP (olp)) { - if (!NILP (Voverriding_local_map)) - keymaps = Fcons (Voverriding_local_map, keymaps); if (!NILP (current_kboard->Voverriding_terminal_local_map)) keymaps = Fcons (current_kboard->Voverriding_terminal_local_map, keymaps); + /* The doc said that overriding-terminal-local-map should + override overriding-local-map. The code used them both, + but it seems clearer to use just one. rms, jan 2005. */ + else if (!NILP (Voverriding_local_map)) + keymaps = Fcons (Voverriding_local_map, keymaps); } if (NILP (XCDR (keymaps))) { @@ -1497,16 +1500,20 @@ OLP if non-nil indicates that we should obey `overriding-local-map' and Lisp_Object *maps; int nmaps, i; + /* This usually returns the buffer's local map, + but that can be overridden by a `local-map' property. */ local = get_local_map (PT, current_buffer, Qlocal_map); if (!NILP (local)) keymaps = Fcons (local, keymaps); + /* Now put all the minor mode keymaps on the list. */ nmaps = current_minor_maps (0, &maps); for (i = --nmaps; i >= 0; i--) if (!NILP (maps[i])) keymaps = Fcons (maps[i], keymaps); + /* This returns nil unless there is a `keymap' property. */ local = get_local_map (PT, current_buffer, Qkeymap); if (!NILP (local)) keymaps = Fcons (local, keymaps);