cli: tell how many messages were precisely matched when expected 1 match

In case of notmuch reply and notmuch show --part=N it is required that
search terms match to one message. If match count was != 1, error
message "Error: search term did not match precisely one message"
was too vague to explain what happened.

By appending (matched <num> messages) to the error message it
makes the problem more understandable (e.g when <num> is '0'
user reckons the query had a typo in it).
This commit is contained in:
Tomi Ollila 2016-05-07 22:24:18 +03:00 committed by David Bremner
parent 2ee9351224
commit eac2976389
3 changed files with 3 additions and 3 deletions

View file

@ -664,7 +664,7 @@ notmuch_reply_format_sprinter(void *ctx,
return 1; return 1;
if (count != 1) { if (count != 1) {
fprintf (stderr, "Error: search term did not match precisely one message.\n"); fprintf (stderr, "Error: search term did not match precisely one message (matched %d messages).\n", count);
return 1; return 1;
} }

View file

@ -904,7 +904,7 @@ do_show_single (void *ctx,
return 1; return 1;
if (count != 1) { if (count != 1) {
fprintf (stderr, "Error: search term did not match precisely one message.\n"); fprintf (stderr, "Error: search term did not match precisely one message (matched %d messages).\n", count);
return 1; return 1;
} }

View file

@ -8,7 +8,7 @@ add_message
test_begin_subtest "Attempt to show multiple raw messages" test_begin_subtest "Attempt to show multiple raw messages"
output=$(notmuch show --format=raw "*" 2>&1) output=$(notmuch show --format=raw "*" 2>&1)
test_expect_equal "$output" "Error: search term did not match precisely one message." test_expect_equal "$output" "Error: search term did not match precisely one message (matched 2 messages)."
test_begin_subtest "Show a raw message" test_begin_subtest "Show a raw message"
output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize) output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize)