Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 16189431FC0 for ; Thu, 6 Nov 2014 10:13:10 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8KC06lWcnyAm for ; Thu, 6 Nov 2014 10:12:29 -0800 (PST) Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) by olra.theworths.org (Postfix) with ESMTP id 423FE431FBD for ; Thu, 6 Nov 2014 10:12:29 -0800 (PST) Received: by guru.guru-group.fi (Postfix, from userid 501) id 643B810008E; Thu, 6 Nov 2014 20:11:58 +0200 (EET) From: Tomi Ollila To: notmuch@notmuchmail.org Subject: [PATCH] cli: notmuch address option defaults update Date: Thu, 6 Nov 2014 20:11:56 +0200 Message-Id: <1415297516-29203-1-git-send-email-tomi.ollila@iki.fi> X-Mailer: git-send-email 2.0.0 Cc: tomi.ollila@iki.fi X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 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: Thu, 06 Nov 2014 18:13:10 -0000 When no --output option were given, change default to display senders only. This is faster and provides useful-enough list of addresses. When only --count option is given, display senders (in contrary to not displaying anything). Document how --count affects to "sort order" a bit more accurately. Clean up some whitespace in the documentation. One test updated to have --output=count without sender nor recipient output option. --- Some quick updates to the notmuch address interface which I hope will be considered to be included in 0.19 release. As we are in feature freeze I hope this gets quick feedback, in any way you desire. Tomi doc/man1/notmuch-address.rst | 34 ++++++++++++++++++---------------- notmuch-search.c | 4 ++-- test/T095-address.sh | 14 +++++++------- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/doc/man1/notmuch-address.rst b/doc/man1/notmuch-address.rst index 359616e0dc5f..034607c434d2 100644 --- a/doc/man1/notmuch-address.rst +++ b/doc/man1/notmuch-address.rst @@ -32,28 +32,28 @@ Supported options for **address** include ``--output=(sender|recipients|count)`` Controls which information appears in the output. This option - can be given multiple times to combine different outputs. - Omitting this option is equivalent to - --output=sender --output=recipients. + can be given multiple times to combine different outputs. + Omitting this option is equivalent to --output=sender. - **sender** + **sender** Output all addresses from the *From* header. - Note: Searching for **sender** should be much faster than - searching for **recipients**, because sender addresses are - cached directly in the database whereas other addresses - need to be fetched from message files. + Note: Searching for **sender** should be much faster than + searching for **recipients**, because sender addresses are + cached directly in the database whereas other addresses + need to be fetched from message files. - **recipients** + **recipients** Output all addresses from the *To*, *Cc* and *Bcc* headers. - **count** - Print the count of how many times was the address - encountered during search. + **count** + Print the count of how many times was the address + encountered during search. - Note: With this option, addresses are printed only after - the whole search is finished. This may take long time. + Note: With this option, addresses are printed only after + the whole search is finished (and in seemingly random + order). This may take long time. ``--sort=``\ (**newest-first**\ \|\ **oldest-first**) This option can be used to present results in either @@ -63,7 +63,9 @@ Supported options for **address** include By default, results will be displayed in reverse chronological order, (that is, the newest results will be displayed first). - This option has no effect when used with --output=count. + This option affects the seemingly random output order when + used with --output=count. + ``--exclude=(true|false)`` A message is called "excluded" if it matches at least one tag in @@ -95,4 +97,4 @@ SEE ALSO **notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**, -***notmuch-search(1)** +**notmuch-search(1)** diff --git a/notmuch-search.c b/notmuch-search.c index 5036d8e44005..14b9f01c5ad1 100644 --- a/notmuch-search.c +++ b/notmuch-search.c @@ -735,8 +735,8 @@ notmuch_address_command (notmuch_config_t *config, int argc, char *argv[]) if (opt_index < 0) return EXIT_FAILURE; - if (! ctx->output) - ctx->output = OUTPUT_SENDER | OUTPUT_RECIPIENTS; + if (! (ctx->output & (OUTPUT_SENDER | OUTPUT_RECIPIENTS))) + ctx->output |= OUTPUT_SENDER; if (_notmuch_search_prepare (ctx, config, argc - opt_index, argv + opt_index)) diff --git a/test/T095-address.sh b/test/T095-address.sh index 033d0f4fd68c..ed0cac7807ff 100755 --- a/test/T095-address.sh +++ b/test/T095-address.sh @@ -27,6 +27,11 @@ Mikhail Gusarov EOF test_expect_equal_file OUTPUT EXPECTED +test_begin_subtest "without --output" +notmuch address '*' >OUTPUT +# Use EXPECTED from previous subtest +test_expect_equal_file OUTPUT EXPECTED + test_begin_subtest "--output=sender --format=json" notmuch address --output=sender --format=json '*' >OUTPUT cat <EXPECTED @@ -91,11 +96,6 @@ Mikhail Gusarov EOF test_expect_equal_file OUTPUT EXPECTED -test_begin_subtest "without --output" -notmuch address '*' >OUTPUT -# Use EXPECTED from previous subtest -test_expect_equal_file OUTPUT EXPECTED - test_begin_subtest "--output=sender --output=count" notmuch address --output=sender --output=count '*' | sort -n >OUTPUT cat <EXPECTED @@ -119,10 +119,10 @@ cat <EXPECTED EOF test_expect_equal_file OUTPUT EXPECTED -test_begin_subtest "--output=sender --output=count --format=json" +test_begin_subtest "--output=count --format=json" # Since the iteration order of GHashTable is not specified, we # preprocess and sort the results to keep the order stable here. -notmuch address --output=sender --output=count --format=json '*' | \ +notmuch address --output=count --format=json '*' | \ sed -e 's/^\[//' -e 's/]$//' -e 's/,$//' | sort >OUTPUT cat <EXPECTED {"name": "Adrian Perez de Castro", "address": "aperez@igalia.com", "name-addr": "Adrian Perez de Castro ", "count": 1} -- 2.0.0