Mercurial > emacs
changeset 5551:2b8f405f5103
(describe_map_tree): New arg NOMENU.
(describe_buffer_bindings): Pass new arg.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 10 Jan 1994 21:30:25 +0000 |
parents | 9e8bbed9a9b6 |
children | e8d95be8bc19 |
files | src/keymap.c |
diffstat | 1 files changed, 28 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keymap.c Mon Jan 10 21:30:04 1994 +0000 +++ b/src/keymap.c Mon Jan 10 21:30:25 1994 +0000 @@ -938,7 +938,7 @@ Non-ASCII characters with codes above 127 (such as ISO Latin-1)\n\ can be included if you use a vector.\n\ The binding goes in the current buffer's local map,\n\ -which is shared with other buffers in the same major mode.") +which in most cases is shared with all other buffers in the same major mode.") (keys, function) Lisp_Object keys, function; { @@ -1761,7 +1761,7 @@ p += sizeof (" Minor Mode Bindings"); *p = 0; - describe_map_tree (maps[i], 0, shadow, prefix, title); + describe_map_tree (maps[i], 0, shadow, prefix, title, 0); shadow = Fcons (maps[i], shadow); } } @@ -1771,12 +1771,12 @@ if (!NILP (start1)) { describe_map_tree (start1, 0, shadow, prefix, - "Major Mode Bindings"); + "Major Mode Bindings", 0); shadow = Fcons (start1, shadow); } describe_map_tree (current_global_map, 0, shadow, prefix, - "Global Bindings"); + "Global Bindings", 0); Fset_buffer (descbuf); return Qnil; @@ -1790,13 +1790,15 @@ don't mention keys which would be shadowed by any of them. PREFIX, if non-nil, says mention only keys that start with PREFIX. TITLE, if not 0, is a string to insert at the beginning. - TITLE should not end with a colon or a newline; we supply that. */ + TITLE should not end with a colon or a newline; we supply that. + If NOMENU is not 0, then omit menu-bar commands. */ void -describe_map_tree (startmap, partial, shadow, prefix, title) +describe_map_tree (startmap, partial, shadow, prefix, title, nomenu) Lisp_Object startmap, shadow, prefix; int partial; char *title; + int nomenu; { Lisp_Object maps; struct gcpro gcpro1; @@ -1809,6 +1811,26 @@ maps = Faccessible_keymaps (startmap, prefix); GCPRO1 (maps); + if (nomenu) + { + Lisp_Object list; + + /* Delete from MAPS each element that is for the menu bar. */ + for (list = maps; !NILP (list); list = XCONS (list)->cdr) + { + Lisp_Object elt, prefix, tem; + + elt = Fcar (list); + prefix = Fcar (elt); + if (XVECTOR (prefix)->size >= 1) + { + tem = Faref (prefix, make_number (0)); + if (EQ (tem, Qmenu_bar)) + maps = Fdelq (elt, maps); + } + } + } + if (!NILP (maps)) { if (title)