Mercurial > hg > xemacs-beta
diff lisp/help.el @ 4695:fee33ab25966
Add arglist info for autoloaded functions and macros.
lisp/ChangeLog addition:
2009-09-20 Aidan Kehoe <kehoea@parhasard.net>
Add arglist information to docstrings for autoloaded functions and
macros.
* hyper-apropos.el (hyper-apropos-get-doc):
Treat autoload docstrings like subr docstrings; correct the regexp
used.
* help.el (describe-function-show-arglist):
This no longer treats autoloads specially.
(function-arglist): Treat autoload docstrings like subr docstrings.
(function-documentation): Treat documentation strings that are
zero-length after the arglist has been removed as indicating a
lack of documentation.
* cl-macs.el (case):
(ecase):
(typecase):
(etypecase):
(block):
(return):
(return-from):
(progv):
(lexical-let):
(lexical-let*):
(remf):
(callf):
(callf2):
(define-modify-macro):
(deftype):
(define-compiler-macro):
Rely on the autoload code to always show an arglist for these
functions, don't supply an ad-hoc one in the docstring.
These changes are for the most obvious functions; there are some
missed that would require changing argument names in the docstring
or in the function bodies.
* autoload.el (make-autoload):
Add arg list information to the doc string, using the same
approach as for subrs.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 20 Sep 2009 23:50:05 +0100 |
parents | 2ac296807b88 |
children | 755ae5b97edb |
line wrap: on
line diff
--- a/lisp/help.el Sun Sep 20 21:41:22 2009 +0100 +++ b/lisp/help.el Sun Sep 20 23:50:05 2009 +0100 @@ -1087,8 +1087,7 @@ ;; Default to nil for the non-hackers? Not until we find a way to ;; distinguish hackers from non-hackers automatically! (defcustom describe-function-show-arglist t - "*If non-nil, describe-function will show its arglist, -unless the function is autoloaded." + "*If non-nil, describe-function will show the function's arglist." :type 'boolean :group 'help-appearance) @@ -1188,7 +1187,7 @@ (compiled-function-arglist fndef)) ((eq (car-safe fndef) 'lambda) (nth 1 fndef)) - ((subrp fndef) + ((or (subrp fndef) (eq 'autoload (car-safe fndef))) (let* ((doc (documentation function)) (args (and doc (string-match @@ -1227,9 +1226,10 @@ (gettext "not documented")) (void-function "(alias for undefined function)") (error "(unexpected error from `documention')")))) - (if (and strip-arglist - (string-match "[\n\t ]*\narguments: ?(\\([^)]*\\))\n?\\'" doc)) - (setq doc (substring doc 0 (match-beginning 0)))) + (when (and strip-arglist + (string-match "[\n\t ]*\narguments: ?(\\([^)]*\\))\n?\\'" doc)) + (setq doc (substring doc 0 (match-beginning 0))) + (and (zerop (length doc)) (setq doc (gettext "not documented")))) doc)) ;; replacement for `princ' that puts the text in the specified face,