bug#2438: Unable to find location of adviced function

Juri Linkov <[email protected]>
Newsgroups gmane.emacs.bugs,gmane.emacs.pretest.bugs
Organization JURTA
Message-ID <[email protected]>
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/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.