Subject: bug#587: 23.0.60; To source or not to source (from help)

From: martin rudalics <[email-masked]>
Date: Fri, 08 Aug 2008 11:52:23 +0200

> If you do C-h v and look at a variable and click on the library link in
 > the help buffer you will go to the file in your current Emacs tree. If
 > you do C-h f to look at a function and do the same you will be taken to
 > the cvs checkout file instead.

I suspect you compiled Emacs in the checkout directory and then copied
the Emacs tree to another directory.  In this case the following might
happen: As for C-h f `describe-function-1' will execute

       ;; See if lisp files are present where they where installed from.
       (if (not (eq file-name 'C-source))
	  (setq file-name (find-source-lisp-file file-name)))

which sets `file-name' to the ".el" file from the checkout directory
(because you did compile it there) and installs the corresponding
reference in the hyperlink.

As for C-h v `describe-variable' does _not_ care whether you compiled in
another directory and simply goes to the file supplied by `symbol-file'.
You could try inserting the snipped above in `describe-variable'
immediately before the line

	      (if file-name

and see whether it now jumps to the checkout directory instead.

Personally, I'd prefer something like the following in both cases:

       (unless (or (eq file-name 'C-source)
		  (file-exists-p file-name))
	(setq file-name (find-source-lisp-file file-name)))

martin