diff options
| author | Basil L. Contovounesios | 2023-01-11 16:34:07 +0000 |
|---|---|---|
| committer | Basil L. Contovounesios | 2023-01-17 10:38:22 +0000 |
| commit | bd094207c76c500f8a3bffe8231d8c6ae0fd0778 (patch) | |
| tree | 715c592a1fbd3f8f3f15672fb895d93668956b94 /src | |
| parent | 9e7a5d58eea664b55e11f2ea5dc7da9ba26d500f (diff) | |
| download | emacs-bd094207c76c500f8a3bffe8231d8c6ae0fd0778.tar.gz emacs-bd094207c76c500f8a3bffe8231d8c6ae0fd0778.zip | |
Fix buffer-list-update-hook for indirect buffers
Fmake_indirect_buffer can be told whether to run buffer hooks since
bug#49160, but until now it ran buffer-list-update-hook irrespective
of this.
* src/buffer.c (Fmake_indirect_buffer): Don't run
buffer-list-update-hook when called with a non-nil
INHIBIT-BUFFER-HOOKS argument.
(run_buffer_list_update_hook): Don't special-case NULL argument, as
no such callers remain.
* test/src/buffer-tests.el
(buffer-tests-inhibit-buffer-hooks-indirect): Test whether indirect
buffer hooks are run regardless of whether base buffer hooks are
inhibited. Check that all three buffer hooks, not just
kill-buffer-query-functions, are inhibited.
Diffstat (limited to 'src')
| -rw-r--r-- | src/buffer.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/buffer.c b/src/buffer.c index 100e42fc1f9..88ca69b0dd8 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -525,14 +525,14 @@ get_truename_buffer (register Lisp_Object filename) | |||
| 525 | return Qnil; | 525 | return Qnil; |
| 526 | } | 526 | } |
| 527 | 527 | ||
| 528 | /* Run buffer-list-update-hook if Vrun_hooks is non-nil, and BUF is NULL | 528 | /* Run buffer-list-update-hook if Vrun_hooks is non-nil and BUF does |
| 529 | or does not have buffer hooks inhibited. BUF is NULL when called by | 529 | not have buffer hooks inhibited. */ |
| 530 | make-indirect-buffer, since it does not inhibit buffer hooks. */ | ||
| 531 | 530 | ||
| 532 | static void | 531 | static void |
| 533 | run_buffer_list_update_hook (struct buffer *buf) | 532 | run_buffer_list_update_hook (struct buffer *buf) |
| 534 | { | 533 | { |
| 535 | if (! (NILP (Vrun_hooks) || (buf && buf->inhibit_buffer_hooks))) | 534 | eassert (buf); |
| 535 | if (! (NILP (Vrun_hooks) || buf->inhibit_buffer_hooks)) | ||
| 536 | call1 (Vrun_hooks, Qbuffer_list_update_hook); | 536 | call1 (Vrun_hooks, Qbuffer_list_update_hook); |
| 537 | } | 537 | } |
| 538 | 538 | ||
| @@ -907,7 +907,7 @@ does not run the hooks `kill-buffer-hook', | |||
| 907 | set_buffer_internal_1 (old_b); | 907 | set_buffer_internal_1 (old_b); |
| 908 | } | 908 | } |
| 909 | 909 | ||
| 910 | run_buffer_list_update_hook (NULL); | 910 | run_buffer_list_update_hook (b); |
| 911 | 911 | ||
| 912 | return buf; | 912 | return buf; |
| 913 | } | 913 | } |