From 3cb2790a391e708e9db63dbcd469cfa10afce98e Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 30 Jun 2026 15:42:56 -0400 Subject: 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. --- modules/undead-buffers.el | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'modules') 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)))) -- cgit v1.2.3