[PATCH] cli/show: list all filenames of a message in the formatted output

Jani Nikula jani at nikula.org
Sat Jan 28 05:40:31 PST 2017


On Wed, 25 Jan 2017, Tomi Ollila <tomi.ollila at iki.fi> wrote:
> On Tue, Jan 10 2017, Jani Nikula <jani at nikula.org> wrote:
>
>> Instead of just having the first filename for the message, list all
>> duplicate filenames of the message as a list in the formatted
>> outputs. This bumps the format version to 3.
>
> Great stuff -- just now quite a few (~33) tests fail ;)

I'll fix that up iff we decide this is the way to go.

BR,
Jani.


>
>>
>> ---
>>
>> I presume the UI could do fancy things with this to highlight messages
>> with dupes better. I haven't quite figured out yet what that could be,
>> but this seems like the right thing to do regardless.
>> ---
>>  devel/schemata   |  5 ++++-
>>  notmuch-client.h |  2 +-
>>  notmuch-show.c   | 16 +++++++++++++++-
>>  3 files changed, 20 insertions(+), 3 deletions(-)
>>
>> diff --git a/devel/schemata b/devel/schemata
>> index 41dc4a60fff3..6dede7a453d7 100644
>> --- a/devel/schemata
>> +++ b/devel/schemata
>> @@ -26,6 +26,9 @@ v1
>>  v2
>>  - Added the thread_summary.query field.
>>  
>> +v3
>> +- Replaced message.filename string with a list of filenames.
>> +
>>  Common non-terminals
>>  --------------------
>>  
>> @@ -59,7 +62,7 @@ message = {
>>      # (format_message_sprinter)
>>      id:             messageid,
>>      match:          bool,
>> -    filename:	    string,
>> +    filename:	    [string*],
>>      timestamp:      unix_time, # date header as unix time
>>      date_relative:  string,   # user-friendly timestamp
>>      tags:           [string*],
>> diff --git a/notmuch-client.h b/notmuch-client.h
>> index d026e6004239..21b087980a17 100644
>> --- a/notmuch-client.h
>> +++ b/notmuch-client.h
>> @@ -145,7 +145,7 @@ chomp_newline (char *str)
>>   * this.  New (required) map fields can be added without increasing
>>   * this.
>>   */
>> -#define NOTMUCH_FORMAT_CUR 2
>> +#define NOTMUCH_FORMAT_CUR 3
>>  /* The minimum supported structured output format version.  Requests
>>   * for format versions below this will return an error. */
>>  #define NOTMUCH_FORMAT_MIN 1
>> diff --git a/notmuch-show.c b/notmuch-show.c
>> index 22fa655ad20d..3b9e31247f2c 100644
>> --- a/notmuch-show.c
>> +++ b/notmuch-show.c
>> @@ -133,7 +133,21 @@ format_message_sprinter (sprinter_t *sp, notmuch_message_t *message)
>>      sp->boolean (sp, notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_EXCLUDED));
>>  
>>      sp->map_key (sp, "filename");
>> -    sp->string (sp, notmuch_message_get_filename (message));
>> +    if (notmuch_format_version >= 3) {
>> +	notmuch_filenames_t *filenames;
>> +
>> +	sp->begin_list (sp);
>> +	for (filenames = notmuch_message_get_filenames (message);
>> +	     notmuch_filenames_valid (filenames);
>> +	     notmuch_filenames_move_to_next (filenames)) {
>> +	    sp->string (sp, notmuch_message_get_filename (message));
>> +	    sp->separator (sp);
>> +	}
>> +	notmuch_filenames_destroy (filenames);
>> +	sp->end (sp);
>> +    } else {
>> +	sp->string (sp, notmuch_message_get_filename (message));
>> +    }
>>  
>>      sp->map_key (sp, "timestamp");
>>      date = notmuch_message_get_date (message);
>> -- 
>> 2.11.0
>>
>> _______________________________________________
>> notmuch mailing list
>> notmuch at notmuchmail.org
>> https://notmuchmail.org/mailman/listinfo/notmuch
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list