--- Begin Message ---
Subject: |
Unable to find location of adviced function |
Date: |
Sun, 22 Feb 2009 23:52:41 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.90 (x86_64-pc-linux-gnu) |
Test case:
1. Create a file test.el with:
(defun test1 ()
(interactive)
(message "Test1"))
(defadvice test1 (around my-test1 act)
(message "Test1 pre")
ad-do-it
(message "Test1 post"))
2. Load it.
3. Type `C-h f test1 RET'.
4. Follow the link `test.el' to the source code.
It fails with the error message:
"Unable to find location in file"
That's because `describe-function-1' uses the variable `real-function'
that holds the value "ad-Orig-test1" instead of the variable `function'
with the correct value "test1" referring to the original definition.
This can be fixed with the following patch:
Index: lisp/help-fns.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/help-fns.el,v
retrieving revision 1.131
diff -u -r1.131 help-fns.el
--- lisp/help-fns.el 5 Jan 2009 03:19:15 -0000 1.131
+++ lisp/help-fns.el 22 Feb 2009 21:51:25 -0000
@@ -406,7 +406,7 @@
(with-current-buffer standard-output
(save-excursion
(re-search-backward "`\\([^`']+\\)'" nil t)
- (help-xref-button 1 'help-function-def real-function file-name))))
+ (help-xref-button 1 'help-function-def function file-name))))
(princ ".")
(with-current-buffer (help-buffer)
(fill-region-as-paragraph (save-excursion (goto-char pt1) (forward-line
0) (point))
--
Juri Linkov
http://www.jurta.org/emacs/
--- End Message ---
--- Begin Message ---
Subject: |
Re: Unable to find location of adviced function |
Date: |
Sun, 28 Jun 2009 01:08:20 -0400 |
> "Unable to find location in file"
>
> That's because `describe-function-1' uses the variable `real-function'
> that holds the value "ad-Orig-test1" instead of the variable `function'
> with the correct value "test1" referring to the original definition.
>
> This can be fixed with the following patch:
I've checked your patch into CVS trunk. Thanks.
--- End Message ---