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

From: Eli Zaretskii <[email-masked]>
Date: Wed, 22 May 2019 10:21:32 +0300

> From: "Basil L. Contovounesios" <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked],  [email-masked],  [email-masked]
> Date: Tue, 21 May 2019 08:58:17 +0100
> 
> The possibilities for the buffer creation subroutine are either to act
> specially on certain buffer name prefixes, or to accept an extra
> argument indicating what to do, no?  Are there any others?  There was
> mention of exposing a buffer-local variable to Elisp, but IIRC setting
> that after creating the buffer would already be too late.
> 
> Buffer names starting with spaces are already special in some contexts,
> so extending that idea for inhibiting buffer hooks doesn't sound too
> bad, but the extra flag seems equally elegant and more
> backward-compatible.  Am I missing something?

The flag in the C structure has the advantage that it can be easily
set and reset from C without the need to temporarily bind Lisp
variables, which then involves unwind-protect forms etc., and as a
side effect makes the entire operation slower.  Also, a flag can be
set/reset regardless of whether the buffer already finished being
created, whereas buffer-local variables must have a live buffer.