1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-04 11:40:22 +00:00

(describe-function-1): Find source of advised functions.

This commit is contained in:
Richard M. Stallman 2007-10-14 22:49:39 +00:00
parent 15975e3514
commit 72a2003200
2 changed files with 31 additions and 5 deletions

View File

@ -1,3 +1,17 @@
2007-10-14 Richard Stallman <rms@gnu.org>
* emacs-lisp/advice.el (documentation): Advice deleted.
Doc for advised functions is now handled at C level.
This is now handled at C level.
(ad-stop-advice, ad-start-advice): Don't enable or disable
advice for `documentation'.
(ad-advised-definition-docstring-regexp): Var deleted.
(ad-make-advised-definition-docstring): Store orig name
as text property of string.
(ad-advised-definition-p): Check for text property of docstring.
* help-fns.el (describe-function-1): Find source of advised functions.
2007-10-14 Juri Linkov <juri@jurta.org>
* faces.el (describe-face): Allow handling a string as the face name.
@ -371,6 +385,10 @@
* net/trampver.el: Update release number.
2007-10-09 Richard Stallman <rms@gnu.org>
* play/gamegrid.el (gamegrid-setup-default-font): Use face-spec-set.
2007-10-09 Juanma Barranquero <lekktu@gmail.com>
* follow.el: Require easymenu.

View File

@ -251,8 +251,15 @@ face (according to `face-differs-from-default-p')."
;;;###autoload
(defun describe-function-1 (function)
(let* ((def (if (symbolp function)
(symbol-function function)
(let* ((advised (and (featurep 'advice) (ad-get-advice-info function)))
;; If the function is advised, get the symbol that has the
;; real definition.
(real-function
(if advised (cdr (assq 'origname advised))
function))
;; Get the real definition.
(def (if (symbolp real-function)
(symbol-function real-function)
function))
file-name string
(beg (if (commandp def) "an interactive " "a ")))
@ -334,7 +341,7 @@ face (according to `face-differs-from-default-p')."
(with-current-buffer standard-output
(save-excursion
(re-search-backward "`\\([^`']+\\)'" nil t)
(help-xref-button 1 'help-function-def function file-name))))
(help-xref-button 1 'help-function-def real-function file-name))))
(princ ".")
(terpri)
(when (commandp function)
@ -383,8 +390,9 @@ face (according to `face-differs-from-default-p')."
((listp arglist)
(format "%S" (help-make-usage function arglist)))
((stringp arglist) arglist)
;; Maybe the arglist is in the docstring of the alias.
((let ((fun function))
;; Maybe the arglist is in the docstring of a symbol
;; this one is aliased to.
((let ((fun real-function))
(while (and (symbolp fun)
(setq fun (symbol-function fun))
(not (setq usage (help-split-fundoc