diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-29 17:08:56 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-29 17:08:56 +0200 |
| commit | 0402b5b683c7412daace2414f4b903b677b5405c (patch) | |
| tree | 897846e05de9e784fb2b9d584c82a3e67916c1f8 /src/messagebuilder.h | |
| parent | 0cf2c008d46ca2e935987ecfa51a3e712d40420e (diff) | |
| download | qtmaildir-0402b5b683c7412daace2414f4b903b677b5405c.tar.gz qtmaildir-0402b5b683c7412daace2414f4b903b677b5405c.zip | |
feat: resolve a Message-ID to its thread id
For --message (item 200), which knows an id and needs the conversation:
opening a message means opening its thread with that message selected, never
an id: query showing one card out of a conversation (item 91).
The id is quoted before it reaches notmuch, unlike every other id in this
class. Those came out of notmuch; this one comes off another program's command
line, and notmuch parses garbage happily while matching nothing, so an id
carrying query syntax would be read AS syntax with no error anywhere. The
quoting is local rather than SearchTerm::quote(): that escapes an embedded
quote with a backslash, which notmuch does not honour inside a phrase, so the
quote closed the phrase and the injected query matched a real thread (the new
test failed against it). notmuch escapes a quote by doubling it.
threadIdForTesting() keeps its name and gains a shared helper rather than being
promoted: it is documented as not being a slot, and the new entry point has to
answer asynchronously.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'src/messagebuilder.h')
0 files changed, 0 insertions, 0 deletions
