summaryrefslogtreecommitdiff
path: root/src/doc.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1993-12-23 01:56:43 +0000
committerRichard M. Stallman <rms@gnu.org>1993-12-23 01:56:43 +0000
commit09b2be51538cf4a832aec95d633b663c662569cb (patch)
tree872a7aaaebe2358a52cabc4d41eee62e955d2fc5 /src/doc.c
parentd5bef91e08ef94b29f007d0001e1d2e5eb85d37f (diff)
downloademacs-09b2be51538cf4a832aec95d633b663c662569cb.tar.gz
(Fsubstitute_command_keys): Ignore menu bar bindings.
(Fdocumentation_property): 3 args is maximum.
Diffstat (limited to 'src/doc.c')
-rw-r--r--src/doc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/doc.c b/src/doc.c
index 499033c5f4a..aee321c3420 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -183,7 +183,7 @@ subcommands.)");
return doc;
}
-DEFUN ("documentation-property", Fdocumentation_property, Sdocumentation_property, 2, 2, 0,
+DEFUN ("documentation-property", Fdocumentation_property, Sdocumentation_property, 2, 3, 0,
"Return the documentation string that is SYMBOL's PROP property.\n\
This is like `get', but it can refer to strings stored in the\n\
`etc/DOC' file; and if the value is a string, it is passed through\n\
@@ -409,6 +409,8 @@ thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ int
}
else if (strp[0] == '\\' && strp[1] == '[')
{
+ Lisp_Object firstkey;
+
changed = 1;
strp += 2; /* skip \[ */
start = strp;
@@ -425,6 +427,13 @@ thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ int
tem = Fintern (make_string (start, length), Qnil);
tem = Fwhere_is_internal (tem, keymap, Qnil, Qt, Qnil);
+ /* Disregard menu bar bindings; it is positively annoying to
+ mention them when there's no menu bar, and it isn't terribly
+ useful even when there is a menu bar. */
+ firstkey = Faref (tem, make_number (0));
+ if (EQ (firstkey, Qmenu_bar))
+ tem = Qnil;
+
if (NILP (tem)) /* but not on any keys */
{
new = (unsigned char *) xrealloc (buf, bsize += 4);