From b6203aba443c754f980a7ef3d57b4fe271c7df92 Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Thu, 6 Nov 2014 20:11:56 +0200 Subject: [PATCH] [PATCH] cli: notmuch address option defaults update --- 0b/d2685e4e2a9163c2b87115f83c6801c58ca863 | 190 ++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 0b/d2685e4e2a9163c2b87115f83c6801c58ca863 diff --git a/0b/d2685e4e2a9163c2b87115f83c6801c58ca863 b/0b/d2685e4e2a9163c2b87115f83c6801c58ca863 new file mode 100644 index 000000000..ea0b96872 --- /dev/null +++ b/0b/d2685e4e2a9163c2b87115f83c6801c58ca863 @@ -0,0 +1,190 @@ +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 + -- 2.26.2