+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
(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>
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.
;; 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)
(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)