# HG changeset patch # User Dave Love # Date 959884051 0 # Node ID 399be97ac189c4ccd99c44403a79dc63de8957db # Parent 48dc52f114f399f2935d75f948b29b807744a90d (describe-function-1): Distinguish special form from builtin function. Sanity-check presence of arglist for builtins. diff -r 48dc52f114f3 -r 399be97ac189 lisp/help.el --- 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")))))