diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-25 19:19:21 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-25 19:19:21 +0200 |
| commit | dd6e7a051c22e5145c1b23da0614179aef2e1379 (patch) | |
| tree | 5fd840216d5ae06715e7ca4116c6cea603a7a232 /assets/slackbuild/README | |
| parent | dfb36213c03e678178ec1abb2327266d23015bc0 (diff) | |
| download | qtmaildir-dd6e7a051c22e5145c1b23da0614179aef2e1379.tar.gz qtmaildir-dd6e7a051c22e5145c1b23da0614179aef2e1379.zip | |
fix: offer Delete and Restore only where they mean something
Item 168, found by the user while hand-testing 118: Delete could be
triggered on a message already in the trash. Not dangerous, which is how
it survived. moveMessages() finds the file already in the destination
and takes its early-return branch, so the message is reported as moved,
an unsynced change is counted, and nothing happened. Restore had the
mirror of the same problem, added unconditionally to both menus and so
offered on mail that was never deleted.
Each is now hidden where it has no meaning, which is the rule item 112
established for the unread entry. The question is about the PATH, never
the deleted tag: a message trashed by another client carries no such
tag, which is why the trash view is path-based, and asking the tag would
hide Delete on exactly the mail a trash view is full of.
Delete also removes unread now, at the user's request on the same
tangent. It travels inside the same sendMove() call rather than as a
second write, so one undo returns the folder and the tag together. This
rewrites the Maildir filename, because maildir.synchronize_flags is
true, and so reaches the server: the same mechanism the post-new hook
refuses to touch, and the difference is that the hook acts unattended on
arriving mail while this is an explicit gesture on a message in front of
the user.
A mutation survived the first round and found a real hole: comparing the
prefix without its trailing separator passed every test, because no
fixture had a folder whose name starts with the trash folder's. Under it
Delete silently vanished from mail in acct/trash-old, which is not the
trash. The fixture carries that row now and all three properties are
mutation-checked. The suite is 37 of 38, the failure being item 136 on
an unrelated path.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HFuRPtzFrSxCQjFk6tq7gD
Diffstat (limited to 'assets/slackbuild/README')
0 files changed, 0 insertions, 0 deletions
