From 0cd615e522ca0242e337999fbf4841d4c6560361 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 31 Mar 1993 21:11:33 +0000 Subject: (describe-function): For Lisp functions, write a prototype call before the docstring, instead of an argument description after it. --- lisp/help.el | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'lisp/help.el') diff --git a/lisp/help.el b/lisp/help.el index a067e23e0f6..8bcdd350792 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -281,7 +281,9 @@ C-w print information on absence of warranty for GNU Emacs." (princ ": ") (let* ((def (symbol-function function)) (beg (if (commandp def) "an interactive " "a "))) - (princ (cond ((stringp def) "a keyboard macro.") + (princ (cond ((or (stringp def) + (vectorp def)) + "a keyboard macro.") ((subrp def) (concat beg "built-in function.")) ((byte-code-function-p def) @@ -303,24 +305,25 @@ C-w print information on absence of warranty for GNU Emacs." )) (t ""))) (terpri) + (let ((arglist (cond ((byte-code-function-p def) + (car (append def nil))) + ((eq (car-safe def) 'lambda) + (nth 1 def)) + (t t)))) + (if (listp arglist) + (progn + (princ (cons function + (mapcar (lambda (arg) + (if (memq arg '(&optional &rest)) + arg + (intern (upcase (symbol-name arg))))) + arglist))) + (terpri)))) (if (documentation function) (progn (terpri) (princ (documentation function))) (princ "not documented")) - (cond ((byte-code-function-p def) - (save-excursion - (set-buffer standard-output) - (or (eq (char-after (1- (point-max))) ?\n) - (terpri))) - (terpri) - (princ (car (append def nil)))) - ((eq (car-safe def) 'lambda) - (save-excursion - (set-buffer standard-output) - (or (eq (char-after (1- (point-max))) ?\n) - (terpri))) - (terpri) - (princ (nth 1 def))))) + ) (print-help-return-message) ;; Return the text we displayed. (save-excursion (set-buffer standard-output) (buffer-string)))) -- cgit v1.2.1