<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-undead-buffers--save-some-buffers-override-no-conflict.el, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-06-30T19:42:56+00:00</updated>
<entry>
<title>fix(undead-buffers): drop cj/save-some-buffers name collision</title>
<updated>2026-06-30T19:42:56+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-30T19:42:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=72b149227dcb44cc44a232138289bd6d7f7e3309'/>
<id>urn:sha1:72b149227dcb44cc44a232138289bd6d7f7e3309</id>
<content type='text'>
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.
</content>
</entry>
</feed>
