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.  */