Mercurial > emacs
changeset 22973:c3bbca1b6f3a
(describe-function-1): Handle macros properly.
Handle multiple levels of aliases.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 10 Aug 1998 02:02:56 +0000 |
parents | 043c6a4da2df |
children | 6e0af7097929 |
files | lisp/help.el |
diffstat | 1 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/help.el Mon Aug 10 01:44:59 1998 +0000 +++ b/lisp/help.el Mon Aug 10 02:02:56 1998 +0000 @@ -585,6 +585,8 @@ ((byte-code-function-p def) (concat beg "compiled Lisp function")) ((symbolp def) + (while (symbolp (symbol-function def)) + (setq def (symbol-function def))) (format "alias for `%s'" def)) ((eq (car-safe def) 'lambda) (concat beg "Lisp function")) @@ -625,14 +627,16 @@ (if need-close (princ ")")) (princ ".") (terpri) - (let* ((inner-function (if (and (listp def) 'macro) - (cdr def) - def)) - (arglist (cond ((byte-code-function-p inner-function) - (car (append inner-function nil))) - ((eq (car-safe inner-function) 'lambda) - (nth 1 inner-function)) - (t t)))) + ;; Handle symbols aliased to other symbols. + (setq def (indirect-function def)) + ;; If definition is a macro, find the function inside it. + (if (eq (car-safe def) 'macro) + (setq def (cdr def))) + (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