Subject: Re: bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook

From: Eli Zaretskii <[email-masked]>
Date: Sat, 19 Dec 2020 18:06:04 +0200

> From: "Basil L. Contovounesios" <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked],
>   [email-masked],  [email-masked]
> Date: Sat, 19 Dec 2020 14:15:30 +0000
> 
> >> +By default, undo information (@pxref{Undo}) is not recorded in the
> >> +buffer created by this macro (but @var{body} can enable that, if
> >> +needed).  The temporary buffer also does not run the hooks
> >> +@code{kill-buffer-hook}, @code{kill-buffer-query-functions}
> >> +(@pxref{Killing Buffers}), and @code{buffer-list-update-hook}
> >> +(@pxref{Buffer List}).
> >
> > It would be good to have here index entries about undo and those hooks
> > not being used by default in temporary buffers.
> 
> Something like this?
> 
>   @cindex undo in temporary buffers
>   @cindex @code{kill-buffer-hook} in temporary buffers
>   @cindex @code{kill-buffer-query-functions} in temporary buffers
>   @cindex @code{buffer-list-update-hook} in temporary buffers

Yes.

> >> +Like @code{with-temp-buffer} (@pxref{Definition of with-temp-buffer,,
> >                                         ^^^^^^^^^^
> > I think this word will look better if not capitalized.
> 
> The printed label "see Current Buffer" should be displayed instead of
> this word, which is part of the anchor.  Is that okay?

Sorry, I didn't see that this is an anchor.  So I think the anchor
should not start with a capital letter, as it reads more naturally
that way, I think.  And then the name should be used without
capitalization in the cross-references.  Obviously, this is a minor
nit.

> >> +static void
> >> +run_buffer_list_update_hook (struct buffer *buf)
> >> +{
> >> +  if (! (NILP (Vrun_hooks) || (buf && buf->inhibit_buffer_hooks)))
> >                                   ^^^
> > Why this test? is it possible for this function to be called with buf
> > a NULL pointer?
> 
> Yes, in Fmake_indirect_buffer, which doesn't check inhibit_buffer_hooks.
> 
> The alternatives would be for Fmake_indirect_buffer to not call
> run_buffer_list_update_hook, or to not bother adding
> run_buffer_list_update_hook at all.  Do you have a preference?

I think just having a comment there saying that make-indirect-buffer
calls this with NULL argument should be okay.

Thanks.