diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-24 19:31:45 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-24 19:31:45 +0200 |
| commit | f00191bf8e0a20cb578aab08dfdf6a7de6c8f872 (patch) | |
| tree | a1529e8f26d8e4c662d1405cc7a7a8b21f70c699 /src/threadlistmodel.h | |
| parent | e972e9c721d15c13d2be76da9f5dbac7412f547e (diff) | |
| download | qtmaildir-f00191bf8e0a20cb578aab08dfdf6a7de6c8f872.tar.gz qtmaildir-f00191bf8e0a20cb578aab08dfdf6a7de6c8f872.zip | |
docs(specs): guard the signature splice against deleting the user's text
Finding a "-- " delimiter is not enough to authorise removing what
follows it. The block is replaced only when its text matches one of the
signatures on disk; otherwise the new signature is inserted and nothing
is removed.
"-- " can reach the buffer without the user ever choosing a signature,
most plausibly pasted in with quoted text from another client, and the
unguarded scan would have deleted everything after it silently. The
failure is now directional: a block that matches is replaced, and one
that does not produces a second signature, visible in the editor and one
undo away. A wrong guess adds text rather than losing it.
Two markers were considered for the same problem and refused, both
recorded with the reasons. A zero-width character ships in the sent
message, fingerprinting the client in outgoing mail, and has to survive
the draft round trip through GMime, quoted-printable and MimeParser,
which is the pipeline that normalises such characters away. A doubled
delimiter is not the RFC 3676 separator, so no receiving client would
recognise the signature, and it would not have caught the pasted-text
case that prompted it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KEcn3u19xPqv6ggD15PG4c
Diffstat (limited to 'src/threadlistmodel.h')
0 files changed, 0 insertions, 0 deletions
