aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--notmuch-count.c2
-rw-r--r--notmuch-search.c9
-rw-r--r--notmuch-show.c6
3 files changed, 17 insertions, 0 deletions
diff --git a/notmuch-count.c b/notmuch-count.c
index 53645070..46b76ae1 100644
--- a/notmuch-count.c
+++ b/notmuch-count.c
@@ -88,6 +88,8 @@ notmuch_count_command (void *ctx, int argc, char *argv[])
notmuch_query_add_tag_exclude (query, search_exclude_tags[i]);
}
+ notmuch_query_set_omit_excluded_messages (query, TRUE);
+
switch (output) {
case OUTPUT_MESSAGES:
printf ("%u\n", notmuch_query_count_messages (query));
diff --git a/notmuch-search.c b/notmuch-search.c
index 6d6c0e60..f6061e4e 100644
--- a/notmuch-search.c
+++ b/notmuch-search.c
@@ -210,6 +210,9 @@ do_search_threads (const search_format_t *format,
int first_thread = 1;
int i;
+ if (output == OUTPUT_THREADS)
+ notmuch_query_set_omit_excluded_messages (query, TRUE);
+
if (offset < 0) {
offset += notmuch_query_count_threads (query);
if (offset < 0)
@@ -300,6 +303,8 @@ do_search_messages (const search_format_t *format,
int first_message = 1;
int i;
+ notmuch_query_set_omit_excluded_messages (query, TRUE);
+
if (offset < 0) {
offset += notmuch_query_count_messages (query);
if (offset < 0)
@@ -371,6 +376,10 @@ do_search_tags (notmuch_database_t *notmuch,
const char *tag;
int first_tag = 1;
+ notmuch_query_set_omit_excluded_messages (query, TRUE);
+ /* should the following only special case if no excluded terms
+ * specified? */
+
/* Special-case query of "*" for better performance. */
if (strcmp (notmuch_query_get_query_string (query), "*") == 0) {
tags = notmuch_database_get_all_tags (notmuch);
diff --git a/notmuch-show.c b/notmuch-show.c
index 8c0b925e..05d51b27 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -1030,6 +1030,7 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
fprintf (stderr, "Error: specifying parts is incompatible with mbox output format.\n");
return 1;
}
+
format = &format_mbox;
break;
case NOTMUCH_FORMAT_RAW:
@@ -1087,6 +1088,11 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
return 1;
}
+ /* if format=mbox then we can not output excluded messages as
+ * there is no way to make the exclude flag available */
+ if (format_sel == NOTMUCH_FORMAT_MBOX)
+ notmuch_query_set_omit_excluded_messages (query, TRUE);
+
/* If a single message is requested we do not use search_excludes. */
if (params.part >= 0)
ret = do_show_single (ctx, query, format, &params);