summaryrefslogtreecommitdiff
path: root/src/doc.c
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-11-18 02:10:19 +0000
committerKarl Heuer <kwzh@gnu.org>1994-11-18 02:10:19 +0000
commit6edab5c606589070446bbb2c83002f3c46e61285 (patch)
treedfab617ca338cc0c09ba59c438dea440e3f8eaec /src/doc.c
parent560e663f1f85fec05a8491f073b9741d1fe3ea1c (diff)
downloademacs-6edab5c606589070446bbb2c83002f3c46e61285.tar.gz
(Fdocumentation): Use type test macros.
Diffstat (limited to 'src/doc.c')
-rw-r--r--src/doc.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/doc.c b/src/doc.c
index a22034ae9d2..d6c76592e78 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -150,17 +150,16 @@ string is passed through `substitute-command-keys'.")
fun = Findirect_function (function);
- switch (XTYPE (fun))
+ if (SUBRP (fun))
{
- case Lisp_Subr:
if (XSUBR (fun)->doc == 0) return Qnil;
if ((EMACS_INT) XSUBR (fun)->doc >= 0)
doc = build_string (XSUBR (fun)->doc);
else
doc = get_doc_string (- (EMACS_INT) XSUBR (fun)->doc);
- break;
-
- case Lisp_Compiled:
+ }
+ else if (COMPILEDP (fun))
+ {
if (XVECTOR (fun)->size <= COMPILED_DOC_STRING)
return Qnil;
tem = XVECTOR (fun)->contents[COMPILED_DOC_STRING];
@@ -170,13 +169,13 @@ string is passed through `substitute-command-keys'.")
doc = get_doc_string (XFASTINT (tem));
else
return Qnil;
- break;
-
- case Lisp_String:
- case Lisp_Vector:
+ }
+ else if (STRINGP (fun) || VECTORP (fun))
+ {
return build_string ("Keyboard macro.");
-
- case Lisp_Cons:
+ }
+ else if (CONSP (fun))
+ {
funcar = Fcar (fun);
if (!SYMBOLP (funcar))
return Fsignal (Qinvalid_function, Fcons (fun, Qnil));
@@ -193,18 +192,18 @@ subcommands.)");
doc = get_doc_string (XFASTINT (tem));
else
return Qnil;
-
- break;
}
else if (EQ (funcar, Qmocklisp))
return Qnil;
else if (EQ (funcar, Qmacro))
return Fdocumentation (Fcdr (fun), raw);
-
- /* Fall through to the default to report an error. */
-
- default:
- return Fsignal (Qinvalid_function, Fcons (fun, Qnil));
+ else
+ goto oops;
+ }
+ else
+ {
+ oops:
+ Fsignal (Qinvalid_function, Fcons (fun, Qnil));
}
if (NILP (raw))