Commit 72a20032 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

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

parent 15975e35
2007-10-14 Richard Stallman <>
* 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 <>
* 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 <>
* play/gamegrid.el (gamegrid-setup-default-font): Use face-spec-set.
2007-10-09 Juanma Barranquero <>
* follow.el: Require easymenu.
......@@ -251,8 +251,15 @@ face (according to `face-differs-from-default-p')."
(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.
(if advised (cdr (assq 'origname advised))
;; Get the real definition.
(def (if (symbolp real-function)
(symbol-function real-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
(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 ".")
(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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment