Mercurial > emacs
changeset 105386:f004275b4271
* help-fns.el (help-function-arglist): Don't check advertised-signature-table.
(describe-function-1): Do it here instead so it also applies to subrs.
* emacs-lisp/eldoc.el (eldoc-get-fnsym-args-string):
Obey advertised-signature-table.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 02 Oct 2009 14:36:54 +0000 |
parents | e0e4a0d9a3bc |
children | e9079a7fb794 |
files | lisp/ChangeLog lisp/emacs-lisp/eldoc.el lisp/help-fns.el |
diffstat | 3 files changed, 27 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Oct 02 13:37:38 2009 +0000 +++ b/lisp/ChangeLog Fri Oct 02 14:36:54 2009 +0000 @@ -1,3 +1,12 @@ +2009-10-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * emacs-lisp/eldoc.el (eldoc-get-fnsym-args-string): + Obey advertised-signature-table. + + * help-fns.el (help-function-arglist): Don't check + advertised-signature-table. + (describe-function-1): Do it here instead so it also applies to subrs. + 2009-10-02 Michael Albinus <michael.albinus@gmx.de> * simple.el (start-file-process): Say in the doc-string, that file @@ -9,8 +18,8 @@ (ange-ftp-delete-directory): Implement RECURSIVE case. Change to root directory ("device busy" error otherwise). - * net/tramp-smb.el (tramp-smb-handle-make-directory-internal): Flush - file properties of created directory. + * net/tramp-smb.el (tramp-smb-handle-make-directory-internal): + Flush file properties of created directory. 2009-10-02 Eli Zaretskii <eliz@gnu.org>
--- a/lisp/emacs-lisp/eldoc.el Fri Oct 02 13:37:38 2009 +0000 +++ b/lisp/emacs-lisp/eldoc.el Fri Oct 02 14:36:54 2009 +0000 @@ -290,11 +290,14 @@ former calls `eldoc-argument-case'; the latter gives the function name `font-lock-function-name-face', and optionally highlights argument number INDEX." - (let (args doc) + (let (args doc advertised) (cond ((not (and sym (symbolp sym) (fboundp sym)))) ((and (eq sym (aref eldoc-last-data 0)) (eq 'function (aref eldoc-last-data 2))) (setq doc (aref eldoc-last-data 1))) + ((listp (setq advertised (gethash (indirect-function sym) + advertised-signature-table t))) + (setq args advertised)) ((setq doc (help-split-fundoc (documentation sym t) sym)) (setq args (car doc)) ;; Remove any enclosing (), since e-function-argstring adds them.
--- a/lisp/help-fns.el Fri Oct 02 13:37:38 2009 +0000 +++ b/lisp/help-fns.el Fri Oct 02 14:36:54 2009 +0000 @@ -101,15 +101,13 @@ ;; Handle symbols aliased to other symbols. (if (and (symbolp def) (fboundp def)) (setq def (indirect-function def))) ;; If definition is a macro, find the function inside it. - (let ((advertised (gethash def advertised-signature-table t))) - (if (listp advertised) advertised - (if (eq (car-safe def) 'macro) (setq def (cdr def))) - (cond - ((byte-code-function-p def) (aref def 0)) - ((eq (car-safe def) 'lambda) (nth 1 def)) - ((and (eq (car-safe def) 'autoload) (not (eq (nth 4 def) 'keymap))) - "[Arg list not available until function definition is loaded.]") - (t t))))) + (if (eq (car-safe def) 'macro) (setq def (cdr def))) + (cond + ((byte-code-function-p def) (aref def 0)) + ((eq (car-safe def) 'lambda) (nth 1 def)) + ((and (eq (car-safe def) 'autoload) (not (eq (nth 4 def) 'keymap))) + "[Arg list not available until function definition is loaded.]") + (t t))) (defun help-make-usage (function arglist) (cons (if (symbolp function) function 'anonymous) @@ -469,14 +467,17 @@ (re-search-backward "`\\([^`']+\\)'" nil t) (help-xref-button 1 'help-function-cmacro function lib))))) (princ ".\n\n")) - (let* ((arglist (help-function-arglist def)) + (let* ((advertised (gethash def advertised-signature-table t)) + (arglist (if (listp advertised) + advertised (help-function-arglist def))) (doc (documentation function)) (usage (help-split-fundoc doc function))) (with-current-buffer standard-output ;; If definition is a keymap, skip arglist note. (unless (keymapp function) + (if usage (setq doc (cdr usage))) (let* ((use (cond - (usage (setq doc (cdr usage)) (car usage)) + ((and usage (not (listp advertised))) (car usage)) ((listp arglist) (format "%S" (help-make-usage function arglist))) ((stringp arglist) arglist)