aboutsummaryrefslogtreecommitdiff
path: root/modules/undead-buffers.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-30 15:42:56 -0400
committerCraig Jennings <c@cjennings.net>2026-06-30 15:42:56 -0400
commit72b149227dcb44cc44a232138289bd6d7f7e3309 (patch)
treea1a1e32ec3c0087df0c22024c99a5fe97e02a3a6 /modules/undead-buffers.el
parentd5e9451022e9254655cc67e015f9d331414d2d76 (diff)
downloaddotemacs-72b149227dcb44cc44a232138289bd6d7f7e3309.tar.gz
dotemacs-72b149227dcb44cc44a232138289bd6d7f7e3309.zip
fix(undead-buffers): drop cj/save-some-buffers name collision
Emacs crashed at launch with wrong-number-of-arguments on cj/save-some-buffers, down the startup path (dashboard-only to kill-all-other-buffers to save). Two modules defined a function by that name: custom-buffer-file.el's legible save prompt (arg + pred), installed as an override on save-some-buffers, and undead-buffers.el's older one-arg wrapper that called save-some-buffers internally. custom-buffer-file loads first, undead-buffers second. The one-arg version won the shared symbol, so the override re-entered it with two args. I removed undead-buffers.el's wrapper. cj/kill-all-other-buffers-and-windows now calls the standard save-some-buffers with the undead predicate, which routes through the override when loaded and the built-in otherwise, so undead-buffers no longer depends on custom-buffer-file. The legible override keeps the cj/save-some-buffers name. A regression test loads both modules in launch order and guards the call and the arity so a one-arg shadow can't return.
Diffstat (limited to 'modules/undead-buffers.el')
-rw-r--r--modules/undead-buffers.el8
1 files changed, 1 insertions, 7 deletions
diff --git a/modules/undead-buffers.el b/modules/undead-buffers.el
index 4780ef22..cbd2c0d7 100644
--- a/modules/undead-buffers.el
+++ b/modules/undead-buffers.el
@@ -87,12 +87,6 @@ Undead-buffers are buffers in `cj/undead-buffer-list'."
(buffer-file-name buf)
(buffer-modified-p buf))))
-(defun cj/save-some-buffers (&optional arg)
- "Save some buffers, omitting those in `cj/undead-buffer-list'.
-ARG is passed to `save-some-buffers'."
- (interactive "P")
- (save-some-buffers arg #'cj/undead-buffer-p))
-
(defun cj/kill-buffer-and-window ()
"Delete window and kill or bury its buffer."
(interactive)
@@ -129,7 +123,7 @@ split is preserved. Buffers in `cj/undead-buffer-list' are buried."
(defun cj/kill-all-other-buffers-and-windows ()
"Kill or bury all other buffers, then delete other windows."
(interactive)
- (cj/save-some-buffers)
+ (save-some-buffers nil #'cj/undead-buffer-p)
(delete-other-windows)
(mapc #'cj/kill-buffer-or-bury-alive
(delq (current-buffer) (buffer-list))))