diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-20 23:32:49 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-20 23:32:49 -0500 |
| commit | c2f0f3ee16fe98393e1badaa09d2d24f5fb2179a (patch) | |
| tree | c5a200f4b44e50a058283ec5fbf402ab19c04737 /tests | |
| parent | 22006b0eaf357ec9ef1538492f497e4f0b8fb4bf (diff) | |
| download | dotemacs-c2f0f3ee16fe98393e1badaa09d2d24f5fb2179a.tar.gz dotemacs-c2f0f3ee16fe98393e1badaa09d2d24f5fb2179a.zip | |
fix(undead-buffers): keep C-u on wrapper commands from spamming the undead list
The delegated cj/kill-buffer-or-bury-alive reads current-prefix-arg, so a prefixed wrapper call took the add-to-undead-list branch for every buffer: nothing killed, list spammed. The four wrappers now bind the prefix to nil around the delegate.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test-undead-buffers-kill-all-other-buffers-and-windows.el | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test-undead-buffers-kill-all-other-buffers-and-windows.el b/tests/test-undead-buffers-kill-all-other-buffers-and-windows.el index 36d82add..bcb9f833 100644 --- a/tests/test-undead-buffers-kill-all-other-buffers-and-windows.el +++ b/tests/test-undead-buffers-kill-all-other-buffers-and-windows.el @@ -158,5 +158,22 @@ (kill-buffer buf)))))) (test-kill-all-other-buffers-and-windows-teardown))) +(ert-deftest test-kill-all-other-buffers-and-windows-with-prefix-still-kills () + "Boundary: C-u on the wrapper must still kill, not spam the undead list. +The delegated cj/kill-buffer-or-bury-alive reads current-prefix-arg, so a +prefixed wrapper call used to take the add-to-undead-list branch for every +buffer -- nothing killed, list spammed." + (test-kill-all-other-buffers-and-windows-setup) + (unwind-protect + (let ((cj/undead-buffer-list cj/undead-buffer-list) + (buf (generate-new-buffer "*test-prefix-kill*"))) + (unwind-protect + (let ((current-prefix-arg '(4))) + (cj/kill-all-other-buffers-and-windows) + (should-not (buffer-live-p buf)) + (should-not (member "*test-prefix-kill*" cj/undead-buffer-list))) + (when (buffer-live-p buf) (kill-buffer buf)))) + (test-kill-all-other-buffers-and-windows-teardown))) + (provide 'test-undead-buffers-kill-all-other-buffers-and-windows) ;;; test-undead-buffers-kill-all-other-buffers-and-windows.el ends here |
