mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
cli/search: print total number of files matched in summary output.
The structured output formats already have all of the filenames. This is an easy bit of UI change to make the multiple files visible.
This commit is contained in:
parent
50340bcb78
commit
ed4a9082c0
9 changed files with 39 additions and 13 deletions
|
@ -42,7 +42,9 @@ Supported options for **search** include
|
||||||
the search terms. The summary includes the thread ID, date,
|
the search terms. The summary includes the thread ID, date,
|
||||||
the number of messages in the thread (both the number
|
the number of messages in the thread (both the number
|
||||||
matched and the total number), the authors of the thread and
|
matched and the total number), the authors of the thread and
|
||||||
the subject.
|
the subject. In the case where a thread contains multiple files for
|
||||||
|
some messages, the total number of files is printed in parentheses
|
||||||
|
(see below for an example).
|
||||||
|
|
||||||
**threads**
|
**threads**
|
||||||
Output the thread IDs of all threads with any message
|
Output the thread IDs of all threads with any message
|
||||||
|
@ -135,6 +137,19 @@ Supported options for **search** include
|
||||||
prefix. The prefix matches messages based on filenames. This
|
prefix. The prefix matches messages based on filenames. This
|
||||||
option filters filenames of the matching messages.
|
option filters filenames of the matching messages.
|
||||||
|
|
||||||
|
EXAMPLE
|
||||||
|
=======
|
||||||
|
|
||||||
|
The following shows an example of the summary output format, with one
|
||||||
|
message having multiple filenames.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
% notmuch search date:today.. and tag:bad-news
|
||||||
|
thread:0000000000063c10 Today [1/1] Some Persun; To the bone (inbox unread)
|
||||||
|
thread:0000000000063c25 Today [1/1(2)] Ann Other; Bears (inbox unread)
|
||||||
|
thread:0000000000063c00 Today [1/1] A Thurd; Bites, stings, sad feelings (inbox unread)
|
||||||
|
|
||||||
EXIT STATUS
|
EXIT STATUS
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
|
|
@ -160,6 +160,7 @@ do_search_threads (search_context_t *ctx)
|
||||||
const char *subject = notmuch_thread_get_subject (thread);
|
const char *subject = notmuch_thread_get_subject (thread);
|
||||||
const char *thread_id = notmuch_thread_get_thread_id (thread);
|
const char *thread_id = notmuch_thread_get_thread_id (thread);
|
||||||
int matched = notmuch_thread_get_matched_messages (thread);
|
int matched = notmuch_thread_get_matched_messages (thread);
|
||||||
|
int files = notmuch_thread_get_total_files (thread);
|
||||||
int total = notmuch_thread_get_total_messages (thread);
|
int total = notmuch_thread_get_total_messages (thread);
|
||||||
const char *relative_date = NULL;
|
const char *relative_date = NULL;
|
||||||
notmuch_bool_t first_tag = TRUE;
|
notmuch_bool_t first_tag = TRUE;
|
||||||
|
@ -175,13 +176,23 @@ do_search_threads (search_context_t *ctx)
|
||||||
|
|
||||||
if (format->is_text_printer) {
|
if (format->is_text_printer) {
|
||||||
/* Special case for the text formatter */
|
/* Special case for the text formatter */
|
||||||
printf ("thread:%s %12s [%d/%d] %s; %s (",
|
printf ("thread:%s %12s ",
|
||||||
thread_id,
|
thread_id,
|
||||||
relative_date,
|
relative_date);
|
||||||
|
if (total == files)
|
||||||
|
printf ("[%d/%d] %s; %s (",
|
||||||
matched,
|
matched,
|
||||||
total,
|
total,
|
||||||
sanitize_string (ctx_quote, authors),
|
sanitize_string (ctx_quote, authors),
|
||||||
sanitize_string (ctx_quote, subject));
|
sanitize_string (ctx_quote, subject));
|
||||||
|
else
|
||||||
|
printf ("[%d/%d(%d)] %s; %s (",
|
||||||
|
matched,
|
||||||
|
total,
|
||||||
|
files,
|
||||||
|
sanitize_string (ctx_quote, authors),
|
||||||
|
sanitize_string (ctx_quote, subject));
|
||||||
|
|
||||||
} else { /* Structured Output */
|
} else { /* Structured Output */
|
||||||
format->map_key (format, "thread");
|
format->map_key (format, "thread");
|
||||||
format->string (format, thread_id);
|
format->string (format, thread_id);
|
||||||
|
|
|
@ -111,7 +111,7 @@ thread:XXX 2009-11-18 [3/3] Adrian Perez de Castro, Keith Packard, Carl Worth;
|
||||||
thread:XXX 2009-11-18 [3/3] Israel Herraiz, Keith Packard, Carl Worth; [notmuch] New to the list (inbox unread)
|
thread:XXX 2009-11-18 [3/3] Israel Herraiz, Keith Packard, Carl Worth; [notmuch] New to the list (inbox unread)
|
||||||
thread:XXX 2009-11-18 [3/3] Jan Janak, Carl Worth; [notmuch] What a great idea! (inbox unread)
|
thread:XXX 2009-11-18 [3/3] Jan Janak, Carl Worth; [notmuch] What a great idea! (inbox unread)
|
||||||
thread:XXX 2009-11-18 [2/2] Jan Janak, Carl Worth; [notmuch] [PATCH] Older versions of install do not support -C. (inbox unread)
|
thread:XXX 2009-11-18 [2/2] Jan Janak, Carl Worth; [notmuch] [PATCH] Older versions of install do not support -C. (inbox unread)
|
||||||
thread:XXX 2009-11-18 [3/3] Aron Griffis, Keith Packard, Carl Worth; [notmuch] archive (inbox unread)
|
thread:XXX 2009-11-18 [3/3(4)] Aron Griffis, Keith Packard, Carl Worth; [notmuch] archive (inbox unread)
|
||||||
thread:XXX 2009-11-18 [2/2] Keith Packard, Carl Worth; [notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (inbox unread)
|
thread:XXX 2009-11-18 [2/2] Keith Packard, Carl Worth; [notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (inbox unread)
|
||||||
thread:XXX 2009-11-18 [7/7] Lars Kellogg-Stedman, Mikhail Gusarov, Keith Packard, Carl Worth; [notmuch] Working with Maildir storage? (inbox signed unread)
|
thread:XXX 2009-11-18 [7/7] Lars Kellogg-Stedman, Mikhail Gusarov, Keith Packard, Carl Worth; [notmuch] Working with Maildir storage? (inbox signed unread)
|
||||||
thread:XXX 2009-11-18 [5/5] Mikhail Gusarov, Carl Worth, Keith Packard; [notmuch] [PATCH 1/2] Close message file after parsing message headers (inbox unread)
|
thread:XXX 2009-11-18 [5/5] Mikhail Gusarov, Carl Worth, Keith Packard; [notmuch] [PATCH 1/2] Close message file after parsing message headers (inbox unread)
|
||||||
|
|
|
@ -15,7 +15,7 @@ add_message '[dir]=things/bad' '[subject]="Bites, stings, sad feelings"'
|
||||||
test_begin_subtest "Single-world folder: specification (multiple results)"
|
test_begin_subtest "Single-world folder: specification (multiple results)"
|
||||||
output=$(notmuch search folder:bad folder:bad/news folder:things/bad | notmuch_search_sanitize)
|
output=$(notmuch search folder:bad folder:bad/news folder:things/bad | notmuch_search_sanitize)
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; To the bone (inbox unread)
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; To the bone (inbox unread)
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bears (inbox unread)
|
thread:XXX 2001-01-05 [1/1(2)] Notmuch Test Suite; Bears (inbox unread)
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bites, stings, sad feelings (inbox unread)"
|
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bites, stings, sad feelings (inbox unread)"
|
||||||
|
|
||||||
test_begin_subtest "Top level folder"
|
test_begin_subtest "Top level folder"
|
||||||
|
@ -24,7 +24,7 @@ test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; T
|
||||||
|
|
||||||
test_begin_subtest "Two-word path to narrow results to one"
|
test_begin_subtest "Two-word path to narrow results to one"
|
||||||
output=$(notmuch search folder:bad/news | notmuch_search_sanitize)
|
output=$(notmuch search folder:bad/news | notmuch_search_sanitize)
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bears (inbox unread)"
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1(2)] Notmuch Test Suite; Bears (inbox unread)"
|
||||||
|
|
||||||
test_begin_subtest "Folder search with --output=files"
|
test_begin_subtest "Folder search with --output=files"
|
||||||
output=$(notmuch search --output=files folder:bad/news | notmuch_search_files_sanitize)
|
output=$(notmuch search --output=files folder:bad/news | notmuch_search_files_sanitize)
|
||||||
|
|
|
@ -153,14 +153,14 @@ cp "$MAIL_DIR/cur/duplicated-message:2," "$MAIL_DIR/cur/duplicated-message-copy:
|
||||||
NOTMUCH_NEW > output
|
NOTMUCH_NEW > output
|
||||||
notmuch search subject:"Duplicated message" | notmuch_search_sanitize >> output
|
notmuch search subject:"Duplicated message" | notmuch_search_sanitize >> output
|
||||||
test_expect_equal "$(< output)" "No new mail.
|
test_expect_equal "$(< output)" "No new mail.
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Duplicated message (inbox replied)"
|
thread:XXX 2001-01-05 [1/1(2)] Notmuch Test Suite; Duplicated message (inbox replied)"
|
||||||
|
|
||||||
test_begin_subtest "Adding duplicate message without flags does not remove tags"
|
test_begin_subtest "Adding duplicate message without flags does not remove tags"
|
||||||
cp "$MAIL_DIR/cur/duplicated-message-copy:2,RS" "$MAIL_DIR/cur/duplicated-message-another-copy:2,"
|
cp "$MAIL_DIR/cur/duplicated-message-copy:2,RS" "$MAIL_DIR/cur/duplicated-message-another-copy:2,"
|
||||||
NOTMUCH_NEW > output
|
NOTMUCH_NEW > output
|
||||||
notmuch search subject:"Duplicated message" | notmuch_search_sanitize >> output
|
notmuch search subject:"Duplicated message" | notmuch_search_sanitize >> output
|
||||||
test_expect_equal "$(< output)" "No new mail.
|
test_expect_equal "$(< output)" "No new mail.
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Duplicated message (inbox replied)"
|
thread:XXX 2001-01-05 [1/1(3)] Notmuch Test Suite; Duplicated message (inbox replied)"
|
||||||
|
|
||||||
test_begin_subtest "Tag changes modify flags of multiple files"
|
test_begin_subtest "Tag changes modify flags of multiple files"
|
||||||
notmuch tag -replied subject:"Duplicated message"
|
notmuch tag -replied subject:"Duplicated message"
|
||||||
|
|
|
@ -32,7 +32,7 @@ test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
test_begin_subtest "Test matches folder:spam"
|
test_begin_subtest "Test matches folder:spam"
|
||||||
output=$(notmuch search folder:spam)
|
output=$(notmuch search folder:spam)
|
||||||
test_expect_equal "$output" "thread:0000000000000001 2001-01-05 [1/1] Notmuch Test Suite; Single new message (inbox unread)"
|
test_expect_equal "$output" "thread:0000000000000001 2001-01-05 [1/1(2)] Notmuch Test Suite; Single new message (inbox unread)"
|
||||||
|
|
||||||
test_begin_subtest "Remove folder:spam copy of email"
|
test_begin_subtest "Remove folder:spam copy of email"
|
||||||
rm $dir/spam/$(basename $file_x)
|
rm $dir/spam/$(basename $file_x)
|
||||||
|
|
|
@ -23,7 +23,7 @@ notmuch search date:18-Nov-2009_02:19:26-0800..2009-11-18_04:49:52-06:00 | notmu
|
||||||
cat <<EOF >EXPECTED
|
cat <<EOF >EXPECTED
|
||||||
thread:XXX 2009-11-18 [1/3] Carl Worth| Jan Janak; [notmuch] What a great idea! (inbox unread)
|
thread:XXX 2009-11-18 [1/3] Carl Worth| Jan Janak; [notmuch] What a great idea! (inbox unread)
|
||||||
thread:XXX 2009-11-18 [1/2] Carl Worth| Jan Janak; [notmuch] [PATCH] Older versions of install do not support -C. (inbox unread)
|
thread:XXX 2009-11-18 [1/2] Carl Worth| Jan Janak; [notmuch] [PATCH] Older versions of install do not support -C. (inbox unread)
|
||||||
thread:XXX 2009-11-18 [1/3] Carl Worth| Aron Griffis, Keith Packard; [notmuch] archive (inbox unread)
|
thread:XXX 2009-11-18 [1/3(4)] Carl Worth| Aron Griffis, Keith Packard; [notmuch] archive (inbox unread)
|
||||||
thread:XXX 2009-11-18 [1/2] Carl Worth| Keith Packard; [notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (inbox unread)
|
thread:XXX 2009-11-18 [1/2] Carl Worth| Keith Packard; [notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (inbox unread)
|
||||||
EOF
|
EOF
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
|
@ -29,7 +29,7 @@ test_expect_equal_file EXPECTED OUTPUT
|
||||||
test_begin_subtest "unanchored folder:// specification"
|
test_begin_subtest "unanchored folder:// specification"
|
||||||
output=$(notmuch search folder:/bad/ | notmuch_search_sanitize)
|
output=$(notmuch search folder:/bad/ | notmuch_search_sanitize)
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; To the bone (inbox unread)
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; To the bone (inbox unread)
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bears (inbox unread)
|
thread:XXX 2001-01-05 [1/1(2)] Notmuch Test Suite; Bears (inbox unread)
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bites, stings, sad feelings (inbox unread)"
|
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bites, stings, sad feelings (inbox unread)"
|
||||||
|
|
||||||
test_begin_subtest "anchored folder:// search"
|
test_begin_subtest "anchored folder:// search"
|
||||||
|
@ -39,7 +39,7 @@ test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; T
|
||||||
test_begin_subtest "unanchored path:// specification"
|
test_begin_subtest "unanchored path:// specification"
|
||||||
output=$(notmuch search path:/bad/ | notmuch_search_sanitize)
|
output=$(notmuch search path:/bad/ | notmuch_search_sanitize)
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; To the bone (inbox unread)
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; To the bone (inbox unread)
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bears (inbox unread)
|
thread:XXX 2001-01-05 [1/1(2)] Notmuch Test Suite; Bears (inbox unread)
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bites, stings, sad feelings (inbox unread)"
|
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Bites, stings, sad feelings (inbox unread)"
|
||||||
|
|
||||||
test_begin_subtest "anchored path:// search"
|
test_begin_subtest "anchored path:// search"
|
||||||
|
|
|
@ -7,7 +7,7 @@ add_message '[id]="duplicate"' '[subject]="message 2" [filename]=copy2'
|
||||||
|
|
||||||
test_begin_subtest 'First subject preserved'
|
test_begin_subtest 'First subject preserved'
|
||||||
cat <<EOF > EXPECTED
|
cat <<EOF > EXPECTED
|
||||||
thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; message 1 (inbox unread)
|
thread:XXX 2001-01-05 [1/1(2)] Notmuch Test Suite; message 1 (inbox unread)
|
||||||
EOF
|
EOF
|
||||||
notmuch search id:duplicate | notmuch_search_sanitize > OUTPUT
|
notmuch search id:duplicate | notmuch_search_sanitize > OUTPUT
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
Loading…
Reference in a new issue