From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 4CB406DE0355 for ; Tue, 10 Jan 2017 12:19:35 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: 0.074 X-Spam-Level: X-Spam-Status: No, score=0.074 tagged_above=-999 required=5 tests=[AWL=0.794, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oRJtwSCbVKLv for ; Tue, 10 Jan 2017 12:19:34 -0800 (PST) Received: from mail-lf0-f48.google.com (mail-lf0-f48.google.com [209.85.215.48]) by arlo.cworth.org (Postfix) with ESMTPS id 970F56DE01EA for ; Tue, 10 Jan 2017 12:19:33 -0800 (PST) Received: by mail-lf0-f48.google.com with SMTP id v186so68975847lfa.1 for ; Tue, 10 Jan 2017 12:19:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nikula-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=B5x1D7VbEJErX+9SU+Vmfgh/CnoNvXiYogCIfXUf+tc=; b=GhcYzbGzOyvQdIVnNjW4PZWO8neq9fE9+d6Z+iwKgqUySwcDvybdOVM6yAlurTTxjd wRkOle/HYzSuhAX4n8o4S29iX5f5HE+pIBEvc6Ar1WJCvTgNhjxiRjdoOTYKdTd2ezJZ 76nIenGlHGWGiZRBzKrbd/Vn+173XhXQk55/ApDfYNp7GF+zvczVV97O0Q1AbPhFaMBE NqC8ZmD/xgGtNXVdiWWx1qgFj1RtAiUrXp009k89xUu/nB9+eO1C3TsZDJ/mnLC+zA6h /hfDHURiyhkSIAxReLX3QpSdgBwdHXDV/QEmwnJC1tTJTlMhWLP8x2h4O5IloNVyCk0O /EnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=B5x1D7VbEJErX+9SU+Vmfgh/CnoNvXiYogCIfXUf+tc=; b=FpyFCKf/cs303UH/1S4gIWMXiFf+ZU9a0sMI1MRGf7Y6T/dyzbmzhvBzz/bi77WaEB plrbgyR/d1SGN0rA43gJdr4ZmNRekPygAEE8OheeP7sMcB/8aUZXN3u0AG6E/b3WHKXc 3zh9YoxL3IezZ8OLaqySxxMeVJwghJywhsrF02eOmmPOlijfOa0//IM/iKezyPLzwlS9 iUEFCum215LoOQTHkKeCLxJaEwzGoZGIikzsdTTtPd1lRuKlYLT71/PhizEwRj8v134Z EUNg51JWLcBnHmg/fvDpB2+78dnK+Y1vSFGT1NtLhY+K0AQSbx/C1m+obcj6rkJG4N+w NUiA== X-Gm-Message-State: AIkVDXLgjjuvzsjs3dxA0B98BWSW03jSJqRtT0VMfHHFcOjTzb6XjgB4SRAxwYgI96SuQw== X-Received: by 10.25.13.18 with SMTP id 18mr1569987lfn.43.1484079571510; Tue, 10 Jan 2017 12:19:31 -0800 (PST) Received: from localhost (mobile-access-5d6a79-214.dhcp.inet.fi. [93.106.121.214]) by smtp.gmail.com with ESMTPSA id e23sm728910lji.29.2017.01.10.12.19.30 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 10 Jan 2017 12:19:30 -0800 (PST) From: Jani Nikula To: notmuch@notmuchmail.org Subject: [PATCH] cli/show: list all filenames of a message in the formatted output Date: Tue, 10 Jan 2017 22:19:29 +0200 Message-Id: <20170110201929.21875-1-jani@nikula.org> X-Mailer: git-send-email 2.11.0 X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2017 20:19:35 -0000 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. --- 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