]> git.eshelyaron.com Git - emacs.git/commitdiff
(describe-function-1): Find source of advised functions.
authorRichard M. Stallman <rms@gnu.org>
Sun, 14 Oct 2007 22:49:39 +0000 (22:49 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 14 Oct 2007 22:49:39 +0000 (22:49 +0000)
lisp/ChangeLog
lisp/help-fns.el

index 40e4732d0ccf116e9830b2d8eac6a0bcafa7871c..fa635a9385f3d03ec637d9049138ef150744f28a 100644 (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.
 
        * 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.
index eee0794b673a04bcf2b33f280d43f2e4f3fb39f7..bf8d5f9a209a6869dd27016a55fc4a809054420c 100644 (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