changeset 29370:399be97ac189

(describe-function-1): Distinguish special form from builtin function. Sanity-check presence of arglist for builtins.
author Dave Love <fx@gnu.org>
date Thu, 01 Jun 2000 18:27:31 +0000
parents 48dc52f114f3
children 3cb01e10ef3e
files lisp/help.el
diffstat 1 files changed, 21 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help.el	Thu Jun 01 18:26:34 2000 +0000
+++ b/lisp/help.el	Thu Jun 01 18:27:31 2000 +0000
@@ -621,7 +621,9 @@
 		     (vectorp def))
 		 "a keyboard macro")
 		((subrp def)
-		 (concat beg "built-in function"))
+		 (if (eq 'unevalled (cdr (subr-arity def)))
+		     (concat beg "special form")
+		   (concat beg "built-in function")))
 		((byte-code-function-p def)
 		 (concat beg "compiled Lisp function"))
 		((symbolp def)
@@ -716,19 +718,24 @@
       (if doc
 	  (progn (terpri)
 		 (princ doc)
-		 (with-current-buffer standard-output
-		   (beginning-of-line)
-		   ;; Builtins get the calling sequence at the end of
-		   ;; the doc string.  Move it to the same place as
-		   ;; for other functions.
-		   (when (looking-at (format "(%S[ )]" function))
-		     (let ((start (point-marker)))
-		       (goto-char (point-min))
-		       (forward-paragraph)
-		       (insert-buffer-substring (current-buffer) start)
-		       (insert ?\n)
-		       (delete-region (1- start) (point-max))
-		       (goto-char (point-max)))))
+		 (if (subrp (symbol-function function))
+		     (with-current-buffer standard-output
+		       (beginning-of-line)
+		       ;; Builtins get the calling sequence at the end of
+		       ;; the doc string.  Move it to the same place as
+		       ;; for other functions.
+		       (if (looking-at (format "(%S[ )]" function))
+			   (let ((start (point-marker)))
+			     (goto-char (point-min))
+			     (forward-paragraph)
+			     (insert-buffer-substring (current-buffer) start)
+			     (insert ?\n)
+			     (delete-region (1- start) (point-max)))
+			 (goto-char (point-min))
+			 (forward-paragraph)
+			 (insert
+			  "[Missing arglist.  Please make a bug report.]\n"))
+		       (goto-char (point-max))))
 		 (help-setup-xref (list #'describe-function function)
 				  interactive-p))
 	(princ "not documented")))))