[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook
From: |
martin rudalics |
Subject: |
bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook |
Date: |
Thu, 25 Apr 2019 12:31:20 +0200 |
>> > I meant to suggest that get-buffer-create sets this flag when the name
>> > of the buffer fits the template of temporary buffers. Exactly like it
>> > does for code-conversion buffers now.
>>
>> We don't have a "template of temporary buffers".
>
> Of course we do: with-temp-buffer produces buffer names that follow
> such a template.
IIUC we'd need an expression similar to Vcode_conversion_workbuf_name
to use in 'get-buffer-create'
b->inhibit_buffer_hooks
= (STRINGP (Vcode_conversion_workbuf_name)
&& strncmp (SSDATA (name), SSDATA (Vcode_conversion_workbuf_name),
SBYTES (Vcode_conversion_workbuf_name)) == 0);
So we could specify, for example,
staticpro (&Vtemp_buffer_name);
Vtemp_buffer_name = build_pure_c_string (" *temp*");
and rewrite the above assignment as
b->inhibit_buffer_hooks
= ((STRINGP (Vcode_conversion_workbuf_name)
&& strncmp (SSDATA (name), SSDATA (Vcode_conversion_workbuf_name),
SBYTES (Vcode_conversion_workbuf_name)) == 0)
|| (STRINGP (Vtemp_buffer_name)
&& strncmp (SSDATA (name), SSDATA (Vtemp_buffer_name),
SBYTES (Vtemp_buffer_name)) == 0));
>> For example, a buffer specified by the BUFNAME arg of
>> 'with-output-to-temp-buffer' should not match such a template.
>
> Such buffers should not necessarily be exempt from running the hooks,
> AFAIU. In any case, one can always bind the hook locally to nil in
> the body of the macro, right?
Unless the body changes the buffer list in some signifcant way, for
example, by creating or deleting another buffer.
>> But I'd favor a solution that skips all buffers whose name starts
>> with a space as we do for 'other-buffer' or 'unbury-buffer'.
>
> I think this is too drastic a measure. We should only disable the
> hooks in buffers where no one in their right minds will ever want to
> run them.
Then what about the buffers created by 'with-temp-file' or
'with-output-to-string'?
martin
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, martin rudalics, 2019/04/23
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, Eli Zaretskii, 2019/04/23
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, martin rudalics, 2019/04/24
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, Eli Zaretskii, 2019/04/24
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, Stefan Monnier, 2019/04/24
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, martin rudalics, 2019/04/25
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, Eli Zaretskii, 2019/04/25
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook,
martin rudalics <=
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, Eli Zaretskii, 2019/04/25
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, martin rudalics, 2019/04/26
- bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, Eli Zaretskii, 2019/04/26
bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, Stefan Monnier, 2019/04/25
bug#34765: 26.1; with-temp-buffer should not run buffer-list-update-hook, martin rudalics, 2019/04/26