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

From: "Basil L. Contovounesios" <[email-masked]>
Date: Tue, 21 May 2019 08:58:17 +0100

martin rudalics <[email-masked]> writes:

>>> It would be nice to get rid of the entire
>>>
>>>    b->inhibit_buffer_hooks
>>>      = (STRINGP (Vcode_conversion_workbuf_name)
>>>         && strncmp (SSDATA (name), SSDATA (Vcode_conversion_workbuf_name),
>>> 		   SBYTES (Vcode_conversion_workbuf_name)) == 0);
>>>
>>> form in 'get-buffer-create'.  Any ideas?
>>
>> Doesn't your patch in https://debbugs.gnu.org/34765#86 already eliminate
>> the need for it?
>
> FWIW no, it leaves that form in place.

I know, my emphasis was on eliminating the *need* for it.

> And 'get-buffer-create' should not have to worry about delving any
> deeper into the name than down to its first character to check for ' '
> or '*'.
>
> But I'm not happy with my patch anyway.  Something more elegant is
> needed.

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?

Thanks,

-- 
Basil