mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
cli: omit excluded messages in results where appropriate.
In all cases of notmuch count/search/show where the results returned cannot reflect the exclude flag return just the matched not-excluded results. If the caller wishes to have all the matched results (i.e., including the excluded ones) they should call with the --no-exclude option. The relevant cases are count: both threads and messages search: all cases except the summary view show: mbox format
This commit is contained in:
parent
99c318cae4
commit
7a1beb9e7c
3 changed files with 17 additions and 0 deletions
|
@ -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_add_tag_exclude (query, search_exclude_tags[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notmuch_query_set_omit_excluded_messages (query, TRUE);
|
||||||
|
|
||||||
switch (output) {
|
switch (output) {
|
||||||
case OUTPUT_MESSAGES:
|
case OUTPUT_MESSAGES:
|
||||||
printf ("%u\n", notmuch_query_count_messages (query));
|
printf ("%u\n", notmuch_query_count_messages (query));
|
||||||
|
|
|
@ -210,6 +210,9 @@ do_search_threads (const search_format_t *format,
|
||||||
int first_thread = 1;
|
int first_thread = 1;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (output == OUTPUT_THREADS)
|
||||||
|
notmuch_query_set_omit_excluded_messages (query, TRUE);
|
||||||
|
|
||||||
if (offset < 0) {
|
if (offset < 0) {
|
||||||
offset += notmuch_query_count_threads (query);
|
offset += notmuch_query_count_threads (query);
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
|
@ -300,6 +303,8 @@ do_search_messages (const search_format_t *format,
|
||||||
int first_message = 1;
|
int first_message = 1;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
notmuch_query_set_omit_excluded_messages (query, TRUE);
|
||||||
|
|
||||||
if (offset < 0) {
|
if (offset < 0) {
|
||||||
offset += notmuch_query_count_messages (query);
|
offset += notmuch_query_count_messages (query);
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
|
@ -371,6 +376,10 @@ do_search_tags (notmuch_database_t *notmuch,
|
||||||
const char *tag;
|
const char *tag;
|
||||||
int first_tag = 1;
|
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. */
|
/* Special-case query of "*" for better performance. */
|
||||||
if (strcmp (notmuch_query_get_query_string (query), "*") == 0) {
|
if (strcmp (notmuch_query_get_query_string (query), "*") == 0) {
|
||||||
tags = notmuch_database_get_all_tags (notmuch);
|
tags = notmuch_database_get_all_tags (notmuch);
|
||||||
|
|
|
@ -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");
|
fprintf (stderr, "Error: specifying parts is incompatible with mbox output format.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
format = &format_mbox;
|
format = &format_mbox;
|
||||||
break;
|
break;
|
||||||
case NOTMUCH_FORMAT_RAW:
|
case NOTMUCH_FORMAT_RAW:
|
||||||
|
@ -1087,6 +1088,11 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
|
||||||
return 1;
|
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 a single message is requested we do not use search_excludes. */
|
||||||
if (params.part >= 0)
|
if (params.part >= 0)
|
||||||
ret = do_show_single (ctx, query, format, ¶ms);
|
ret = do_show_single (ctx, query, format, ¶ms);
|
||||||
|
|
Loading…
Reference in a new issue