<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/modules/mu4e-attachments.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-05-12T05:45:36+00:00</updated>
<entry>
<title>fix(mail): clear the marks after saving from the attachment selector</title>
<updated>2026-05-12T05:45:36+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-12T05:45:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=18ba99fda928769adb235bd85b485c8be94c3ddd'/>
<id>urn:sha1:18ba99fda928769adb235bd85b485c8be94c3ddd</id>
<content type='text'>
`cj/mu4e-attachment-selection-save-marked' left the `[x]' marks set after a successful save, so a second `s' silently re-saved the same files. It now unmarks every row and re-renders once the save returns, so the buffer stays open for another batch (and `q'/RET still exit). The save-marked test asserts the marks are cleared.
</content>
</entry>
<entry>
<title>refactor(mail): fail fast on an attachment part with no MIME handle</title>
<updated>2026-05-12T05:35:20+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-12T05:35:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=203560396ea67bac7a7375cd2fbfa99433b672a9'/>
<id>urn:sha1:203560396ea67bac7a7375cd2fbfa99433b672a9</id>
<content type='text'>
`cj/mu4e--save-attachment-part' called `cj/mu4e--ensure-attachment-save-functions' first, so a part with no MIME handle triggered the `mu4e-mime-parts' load before the handle check could fail. The handle check now runs first, so the malformed input is caught right away and the user-error fires the same way whether or not mu4e's MIME support is loadable. The test for that case drops the mu4e stubs it only needed because the load used to come first.
</content>
</entry>
<entry>
<title>refactor(mail): extract the mu4e attachment workflow into its own module</title>
<updated>2026-05-12T05:34:03+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-12T05:34:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=22232fc39598ffc065ee134889c3143566be5faa'/>
<id>urn:sha1:22232fc39598ffc065ee134889c3143566be5faa</id>
<content type='text'>
The attachment-save UI (the MIME-part filters, the three save commands, and the `special-mode'-derived selection buffer) was ~230 lines in `mail-config.el' and depended on nothing else there. It moves to `modules/mu4e-attachments.el', which `mail-config' now requires. `cj/email-map' and its C-; e bindings stay put. The keymap just points at commands that now live next door.

The unit tests move with it: `test-mail-config-attachments.el' becomes `test-mu4e-attachments.el' and requires the new module directly instead of pulling in the whole mu4e and org-msg use-package stack. The two tests that check `cj/email-map' wiring move to a new `test-mail-config.el', since that map belongs to `mail-config'. One of the moved tests quietly relied on a real mu4e install (it loaded `mu4e-mime-parts' through a load-path entry that loading `mail-config' happens to add), so it now stubs that path itself.
</content>
</entry>
</feed>
