Mercurial > emacs
diff src/doc.c @ 647:529171c8b71c
entered into RCS
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Mon, 18 May 1992 08:13:37 +0000 |
parents | 63a8e7b3c547 |
children | e95ecc378efa |
line wrap: on
line diff
--- a/src/doc.c Fri May 15 21:56:59 1992 +0000 +++ b/src/doc.c Mon May 18 08:13:37 1992 +0000 @@ -105,19 +105,14 @@ "Return the documentation string of FUNCTION.\n\ Unless a non-nil second argument is given, the\n\ string is passed through `substitute-command-keys'.") - (fun1, raw) - Lisp_Object fun1, raw; + (function, raw) + Lisp_Object function, raw; { Lisp_Object fun; Lisp_Object funcar; Lisp_Object tem, doc; - fun = fun1; - while (XTYPE (fun) == Lisp_Symbol) - { - QUIT; - fun = Fsymbol_function (fun); - } + fun = Findirect_function (function); switch (XTYPE (fun)) { @@ -149,11 +144,11 @@ funcar = Fcar (fun); if (XTYPE (funcar) != Lisp_Symbol) return Fsignal (Qinvalid_function, Fcons (fun, Qnil)); - if (XSYMBOL (funcar) == XSYMBOL (Qkeymap)) + else if (EQ (funcar, Qkeymap)) return build_string ("Prefix command (definition is a keymap associating keystrokes with\n\ subcommands.)"); - if (XSYMBOL (funcar) == XSYMBOL (Qlambda) - || XSYMBOL (funcar) == XSYMBOL (Qautoload)) + else if (EQ (funcar, Qlambda) + || EQ (funcar, Qautoload)) { tem = Fcar (Fcdr (Fcdr (fun))); if (XTYPE (tem) == Lisp_String) @@ -162,10 +157,12 @@ doc = get_doc_string (XFASTINT (tem)); else return Qnil; + + break; } - if (XSYMBOL (funcar) == XSYMBOL (Qmocklisp)) + else if (EQ (funcar, Qmocklisp)) return Qnil; - if (XSYMBOL (funcar) == XSYMBOL (Qmacro)) + else if (EQ (funcar, Qmacro)) return Fdocumentation (Fcdr (fun), raw); /* Fall through to the default to report an error. */