aboutsummaryrefslogtreecommitdiffstats
path: root/src/xmenu.c
diff options
context:
space:
mode:
authorStefan Monnier2000-10-27 22:20:19 +0000
committerStefan Monnier2000-10-27 22:20:19 +0000
commit020676925cfa3fee6a016bcbee89635dc647036f (patch)
treea4e3a50558adeba85798f52dd015cd24c076aa3e /src/xmenu.c
parentb01c997e2b7319b27bf1a57c65bc484178f6772e (diff)
downloademacs-020676925cfa3fee6a016bcbee89635dc647036f.tar.gz
emacs-020676925cfa3fee6a016bcbee89635dc647036f.zip
* lisp.h (KEYMAPP): New macro.
(get_keymap): Remove. (get_keymap_1): Rename get_keymap. * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype. * xterm.c (note_mode_line_highlight): Use KEYMAPP. * xmenu.c (single_submenu): Use KEYMAPP. (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp. Use KEYMAPP rather than Fkeymapp. * w32term.c (note_mode_line_highlight): Use KEYMAPP. * w32menu.c (True, False): Remove (use TRUE and FALSE instead). (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp. Use KEYMAPP rather than Fkeymapp. (single_submenu): Use KEYMAPP. (w32_menu_show, w32_dialog_show): Use TRUE. * minibuf.c (Fread_from_minibuffer): Update call to get_keymap. * keymap.c (KEYMAPP): Remove (moved to lisp.h). (Fkeymapp): Use KEYMAPP. (get_keymap): Rename from get_keymap_1. Remove old def. Return t when autoload=0 and error=0 and the keymap needs autoloading. (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp. (Fminor_mode_key_binding): Don't raise an error if the binding is not a keymap. (Fuse_global_map, Fuse_local_map): Allow autoloading. (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp. * keyboard.c (read_char): get_keymap_1 -> get_keymap. Allow Vspecial_event_map to be autoloaded. (menu_bar_items): Fetch the keymap rather than using keymapp. (menu_bar_one_keymap): No need to follow func-indirect any more. (parse_menu_item): get_keymap_1 -> get_keymap. (tool_bar_items): Fetch the keymap rather than using keymapp. (read_key_sequence): Use KEYMAPP. * intervals.c (get_local_map): Use get_keymap rather than following function-indirections explicitly. * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
Diffstat (limited to 'src/xmenu.c')
-rw-r--r--src/xmenu.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/xmenu.c b/src/xmenu.c
index db20b6b0b61..6511185bad7 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -38,9 +38,9 @@ Boston, MA 02111-1307, USA. */
38#include <stdio.h> 38#include <stdio.h>
39#include "lisp.h" 39#include "lisp.h"
40#include "termhooks.h" 40#include "termhooks.h"
41#include "keyboard.h"
41#include "frame.h" 42#include "frame.h"
42#include "window.h" 43#include "window.h"
43#include "keyboard.h"
44#include "blockinput.h" 44#include "blockinput.h"
45#include "buffer.h" 45#include "buffer.h"
46 46
@@ -788,15 +788,11 @@ cached information about equivalent key sequences.")
788 788
789 /* Decode the menu items from what was specified. */ 789 /* Decode the menu items from what was specified. */
790 790
791 keymap = Fkeymapp (menu); 791 keymap = get_keymap (menu, 0, 0);
792 tem = Qnil; 792 if (CONSP (keymap))
793 if (CONSP (menu))
794 tem = Fkeymapp (Fcar (menu));
795 if (!NILP (keymap))
796 { 793 {
797 /* We were given a keymap. Extract menu info from the keymap. */ 794 /* We were given a keymap. Extract menu info from the keymap. */
798 Lisp_Object prompt; 795 Lisp_Object prompt;
799 keymap = get_keymap (menu);
800 796
801 /* Extract the detailed info to make one pane. */ 797 /* Extract the detailed info to make one pane. */
802 keymap_panes (&menu, 1, NILP (position)); 798 keymap_panes (&menu, 1, NILP (position));
@@ -813,7 +809,7 @@ cached information about equivalent key sequences.")
813 809
814 keymaps = 1; 810 keymaps = 1;
815 } 811 }
816 else if (!NILP (tem)) 812 else if (CONSP (menu) && KEYMAPP (XCAR (menu)))
817 { 813 {
818 /* We were given a list of keymaps. */ 814 /* We were given a list of keymaps. */
819 int nmaps = XFASTINT (Flength (menu)); 815 int nmaps = XFASTINT (Flength (menu));
@@ -829,7 +825,7 @@ cached information about equivalent key sequences.")
829 { 825 {
830 Lisp_Object prompt; 826 Lisp_Object prompt;
831 827
832 maps[i++] = keymap = get_keymap (Fcar (tem)); 828 maps[i++] = keymap = get_keymap (Fcar (tem), 1, 0);
833 829
834 prompt = map_prompt (keymap); 830 prompt = map_prompt (keymap);
835 if (NILP (title) && !NILP (prompt)) 831 if (NILP (title) && !NILP (prompt))
@@ -1396,8 +1392,7 @@ single_submenu (item_key, item_name, maps)
1396 for (i = 0; i < len; i++) 1392 for (i = 0; i < len; i++)
1397 { 1393 {
1398 if (SYMBOLP (mapvec[i]) 1394 if (SYMBOLP (mapvec[i])
1399 || (CONSP (mapvec[i]) 1395 || (CONSP (mapvec[i]) && !KEYMAPP (mapvec[i])))
1400 && NILP (Fkeymapp (mapvec[i]))))
1401 { 1396 {
1402 /* Here we have a command at top level in the menu bar 1397 /* Here we have a command at top level in the menu bar
1403 as opposed to a submenu. */ 1398 as opposed to a submenu. */