Currently pick makes the tree box graphics part of the "subject". This is rather unsatisfactory: the tree graphics should be a field in their own right. However, there is no mechanism in the current setup for allowing 2 fields to have fixed combined width but variable individual width. Thus making the tree graphics a seperate field means that we cannot keep the current display which is date (12 characters) authors (20 characters) tree+subject (54 characters) tags We solve this by extending the format specifier. Previously this was a list of cons cells (field-name . format-string) We now allow the left-side (the field-name) itself to be a list of cons cells in which case we apply the formatting recursively. This means we can separate the tree box graphics into their own field while maintaining the current format. Note that this will mean that people who have customised the result-format will need to update their customisation. The patch is larger but relatively simple. Patch 1/4 is unrelated except I found it while doing this update: we consistency we should print () for messages with no tags. Patch 2/4 is large but trivial: it moves the insertion up a level in preparation for the recursive formatting. Patch 3/4 is also simple: it just allows the recursive formatting. Patch 4/4 separates out the tree field. This patch is large as it allows separate tree faces (matching and non-matching). The "genuine code" part of the patch is relatively small. Finally, this is the last series (apart from some extra tests and keeping up with mainline progress) that I think pick needs before it's ready for consideration in non-contrib mainline. Best wishes Mark Mark Walters (4): contrib: pick: print () for a message with no tags contrib: pick: move the insertion of fields up a level contrib: pick: allow recursive message field formats contrib: pick: make the tree graphics a proper part of the format contrib/notmuch-pick/notmuch-pick.el | 93 ++++++++++++++++++++++++--------- 1 files changed, 67 insertions(+), 26 deletions(-) -- 1.7.9.1