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

Tomi Ollila tomi.ollila at iki.fi
Sat May 7 12:24:18 PDT 2016


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).
---
 notmuch-reply.c  | 2 +-
 notmuch-show.c   | 2 +-
 test/T210-raw.sh | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/notmuch-reply.c b/notmuch-reply.c
index 3c6d685cbd60..a74194a31e4f 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -664,7 +664,7 @@ notmuch_reply_format_sprinter(void *ctx,
 	return 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;
     }
 
diff --git a/notmuch-show.c b/notmuch-show.c
index 87e52bbc0e81..3d5033d644b3 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -904,7 +904,7 @@ do_show_single (void *ctx,
 	return 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;
     }
 
diff --git a/test/T210-raw.sh b/test/T210-raw.sh
index dfea2d19caa9..832a4ad311b7 100755
--- a/test/T210-raw.sh
+++ b/test/T210-raw.sh
@@ -8,7 +8,7 @@ add_message
 
 test_begin_subtest "Attempt to show multiple raw messages"
 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"
 output=$(notmuch show --format=raw id:msg-001 at notmuch-test-suite | notmuch_date_sanitize)
-- 
2.6.4



More information about the notmuch mailing list