cli: notmuch address option defaults update

When no --output option were given, change default to display senders
only.

When only --count option is given, display senders (in contrary to not
displaying anything).

Document that --count with --sort=**order** is not supported option
combination.

Clean up some whitespace in the documentation.

One test updated to have --output=count without sender nor recipient
output option.
This commit is contained in:
Tomi Ollila 2014-11-07 20:31:50 +02:00 committed by David Bremner
parent 8e3ee13abc
commit 0d8251dbe2
3 changed files with 25 additions and 25 deletions

View file

@ -32,28 +32,28 @@ Supported options for **address** include
``--output=(sender|recipients|count)`` ``--output=(sender|recipients|count)``
Controls which information appears in the output. This option Controls which information appears in the output. This option
can be given multiple times to combine different outputs. can be given multiple times to combine different outputs.
Omitting this option is equivalent to When neither --output=sender nor --output=recipients is
--output=sender --output=recipients. given, --output=sender is implied.
**sender** **sender**
Output all addresses from the *From* header. Output all addresses from the *From* header.
Note: Searching for **sender** should be much faster than Note: Searching for **sender** should be much faster than
searching for **recipients**, because sender addresses are searching for **recipients**, because sender addresses are
cached directly in the database whereas other addresses cached directly in the database whereas other addresses
need to be fetched from message files. need to be fetched from message files.
**recipients** **recipients**
Output all addresses from the *To*, *Cc* and *Bcc* Output all addresses from the *To*, *Cc* and *Bcc*
headers. headers.
**count** **count**
Print the count of how many times was the address Print the count of how many times was the address
encountered during search. encountered during search.
Note: With this option, addresses are printed only after Note: With this option, addresses are printed only after
the whole search is finished. This may take long time. the whole search is finished. This may take long time.
``--sort=``\ (**newest-first**\ \|\ **oldest-first**) ``--sort=``\ (**newest-first**\ \|\ **oldest-first**)
This option can be used to present results in either This option can be used to present results in either
@ -63,7 +63,7 @@ Supported options for **address** include
By default, results will be displayed in reverse chronological By default, results will be displayed in reverse chronological
order, (that is, the newest results will be displayed first). order, (that is, the newest results will be displayed first).
This option has no effect when used with --output=count. This option is not supported with --output=count.
``--exclude=(true|false)`` ``--exclude=(true|false)``
A message is called "excluded" if it matches at least one tag in A message is called "excluded" if it matches at least one tag in
@ -95,4 +95,4 @@ SEE ALSO
**notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**, **notmuch-dump(1)**, **notmuch-hooks(5)**, **notmuch-insert(1)**,
**notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-restore(1)**, **notmuch-new(1)**, **notmuch-reply(1)**, **notmuch-restore(1)**,
**notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**, **notmuch-search-terms(7)**, **notmuch-show(1)**, **notmuch-tag(1)**,
***notmuch-search(1)** **notmuch-search(1)**

View file

@ -735,8 +735,8 @@ notmuch_address_command (notmuch_config_t *config, int argc, char *argv[])
if (opt_index < 0) if (opt_index < 0)
return EXIT_FAILURE; return EXIT_FAILURE;
if (! ctx->output) if (! (ctx->output & (OUTPUT_SENDER | OUTPUT_RECIPIENTS)))
ctx->output = OUTPUT_SENDER | OUTPUT_RECIPIENTS; ctx->output |= OUTPUT_SENDER;
if (_notmuch_search_prepare (ctx, config, if (_notmuch_search_prepare (ctx, config,
argc - opt_index, argv + opt_index)) argc - opt_index, argv + opt_index))

View file

@ -27,6 +27,11 @@ Mikhail Gusarov <dottedmag@dottedmag.net>
EOF EOF
test_expect_equal_file OUTPUT EXPECTED 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" test_begin_subtest "--output=sender --format=json"
notmuch address --output=sender --format=json '*' >OUTPUT notmuch address --output=sender --format=json '*' >OUTPUT
cat <<EOF >EXPECTED cat <<EOF >EXPECTED
@ -91,11 +96,6 @@ Mikhail Gusarov <dottedmag@dottedmag.net>
EOF EOF
test_expect_equal_file OUTPUT EXPECTED 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" test_begin_subtest "--output=sender --output=count"
notmuch address --output=sender --output=count '*' | sort -n >OUTPUT notmuch address --output=sender --output=count '*' | sort -n >OUTPUT
cat <<EOF >EXPECTED cat <<EOF >EXPECTED
@ -119,10 +119,10 @@ cat <<EOF >EXPECTED
EOF EOF
test_expect_equal_file OUTPUT EXPECTED 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 # Since the iteration order of GHashTable is not specified, we
# preprocess and sort the results to keep the order stable here. # 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 sed -e 's/^\[//' -e 's/]$//' -e 's/,$//' | sort >OUTPUT
cat <<EOF >EXPECTED cat <<EOF >EXPECTED
{"name": "Adrian Perez de Castro", "address": "aperez@igalia.com", "name-addr": "Adrian Perez de Castro <aperez@igalia.com>", "count": 1} {"name": "Adrian Perez de Castro", "address": "aperez@igalia.com", "name-addr": "Adrian Perez de Castro <aperez@igalia.com>", "count": 1}