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

From: "Lennart Borgman (gmail)" <[email-masked]>
Date: Fri, 08 Aug 2008 13:09:10 +0200

martin rudalics wrote:
>  > 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.

I use the normal

   make install INSTALL_DIR=...

> 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.

Yes, I guess that is correct.

> 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)))

Thanks martin. I think a variable (or an option) for which elisp to go 
to would be the best. Is there any reason not to have that?