X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=devel%2Fschemata;h=01e3a3df03305244b1c206040c5d9c85ef3b8ac1;hb=731697d671749a13634a2a4b843ce62f2927f64f;hp=72feb7b767df254a84a20cf1c0bb7fa06a955cf7;hpb=4cb789aa090fb6ba3c7897584ecbcc0a547b2f81;p=notmuch diff --git a/devel/schemata b/devel/schemata index 72feb7b7..01e3a3df 100644 --- a/devel/schemata +++ b/devel/schemata @@ -4,9 +4,9 @@ format (currently JSON and S-Expressions). []'s indicate lists. List items can be marked with a '?', meaning they are optional; or a '*', meaning there can be zero or more of that item. {}'s indicate an object that maps from field identifiers to -values. An object field marked '?' is optional. |'s indicate -alternates (e.g., int|string means something can be an int or a -string). +values. An object field marked '?' is optional; one marked with '*' +can repeat (with a different name). |'s indicate alternates (e.g., +int|string means something can be an int or a string). For S-Expression output, lists are printed delimited by () instead of []. Objects are printed as p-lists, i.e. lists where the keys and values @@ -14,7 +14,7 @@ are interleaved. Keys are printed as keywords (symbols preceded by a colon), e.g. (:id "123" :time 54321 :from "foobar"). Null is printed as nil, true as t and false as nil. -This is version 4 of the structured output format. +This is version 5 of the structured output format. Version history --------------- @@ -36,6 +36,10 @@ v4 - (notmuch 0.29) added message.crypto to identify overall message cryptographic state +v5 +- sorting support for notmuch show (no change to actual schema, + just new command line argument) + Common non-terminals -------------------- @@ -48,6 +52,9 @@ threadid = string # Message ID, sans "id:" messageid = string +# E-mail header name, sans trailing colon, like "Subject" or "In-Reply-To" +header_name = string + notmuch show schema ------------------- @@ -88,9 +95,15 @@ crypto = { status: sigstatus, # was the set of signatures described under encrypted cover? encrypted: bool, + # which of the headers is covered by sigstatus? + headers: [header_name*] }, decrypted?: { status: msgdecstatus, + # map encrypted headers that differed from the outside headers. + # the value of each item in the map is what that field showed externally + # (maybe null if it was not present in the external headers). + header-mask: { header_name*: string|null } } } @@ -149,6 +162,7 @@ signature = { created?: unix_time, expires?: unix_time, userid?: string + email?: string # if status is not "good": keyid?: string errors?: sig_errors