Subject: Re: bug#17685: 24.3.91.1; help-C-file-name failes to create temp buffer " *DOC*"

From: Stefan Guath <[email-masked]>
Date: Thu, 5 Jun 2014 08:46:57 +0200

I understand. But it seems an unsatisfactory solution to demand callers of find-lisp-object-file-name to pre-evaluate (get-buffer-create " *DOC*") in order to activate its c-source search ability (i.e. convoluted code, code breaks when buffer name changes etc). Maybe just add an optional argument in find-lisp-object-file-name? Something like enable-c-search with the explanation "Please note that this will be memory consuming."?

/Stefan Guath

On 4 jun 2014, at 15:15, Stefan Monnier <[email-masked]> wrote:

>> emacs -Q
>> (find-lisp-object-file-name 'visible-bell 'defvar) ;visible-bell is just an
>> example and can be replaced with any variable.
> 
>> RESULT:
>> C-source
> 
>> EXPECTED RESULT:
>> "src/dispnew.c"
> 
> Here's the reason for the behavior:
> the DOC file is moderately large, so we don't want to load it into
> memory just because the user did C-h v visible-bell RET.
> 
> So we only populate the *DOC* buffer when the user actually clicks on
> the "C-source" link to jump to the source code.  And once the buffer is
> populated, then there's no reason not to use it, so if *DOC* exists then
> we do use it.
> 
> We could probably change it so that we always populate the *DOC* buffer
> in the case where the C sources are available (so the behavior would
> stay unchanged for users running pre-compiled Emacs, while it would
> work better for those users who compile it themselves and keep the
> source in place).  But I'm not sure it'd really be an improvement.
> 
> 
>        Stefan