# HG changeset patch # User Richard M. Stallman # Date 758237425 0 # Node ID 2b8f405f5103686a076edfa422f2314a3f72889c # Parent 9e8bbed9a9b6f493afd02576e770f9d0412cb56d (describe_map_tree): New arg NOMENU. (describe_buffer_bindings): Pass new arg. diff -r 9e8bbed9a9b6 -r 2b8f405f5103 src/keymap.c --- 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)