]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-search.c
cli: add --no-exclude option to count and search.
[notmuch] / notmuch-search.c
index 4baab5612efefafdacab08fe8a74eb72e8352cda..6d6c0e609490e842910b78a481a8f39a3c5c47d7 100644 (file)
@@ -90,6 +90,9 @@ format_thread_json (const void *ctx,
                    const int total,
                    const char *authors,
                    const char *subject);
+
+/* Any changes to the JSON format should be reflected in the file
+ * devel/schemata. */
 static const search_format_t format_json = {
     "[",
        "{",
@@ -423,6 +426,8 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
     output_t output = OUTPUT_SUMMARY;
     int offset = 0;
     int limit = -1; /* unlimited */
+    notmuch_bool_t no_exclude = FALSE;
+    unsigned int i;
 
     enum { NOTMUCH_FORMAT_JSON, NOTMUCH_FORMAT_TEXT }
        format_sel = NOTMUCH_FORMAT_TEXT;
@@ -443,6 +448,7 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
                                  { "files", OUTPUT_FILES },
                                  { "tags", OUTPUT_TAGS },
                                  { 0, 0 } } },
+       { NOTMUCH_OPT_BOOLEAN, &no_exclude, "no-exclude", 'd', 0 },
        { NOTMUCH_OPT_INT, &offset, "offset", 'O', 0 },
        { NOTMUCH_OPT_INT, &limit, "limit", 'L', 0  },
        { 0, 0, 0, 0, 0 }
@@ -490,6 +496,16 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
 
     notmuch_query_set_sort (query, sort);
 
+    if (!no_exclude) {
+       const char **search_exclude_tags;
+       size_t search_exclude_tags_length;
+
+       search_exclude_tags = notmuch_config_get_search_exclude_tags
+           (config, &search_exclude_tags_length);
+       for (i = 0; i < search_exclude_tags_length; i++)
+           notmuch_query_add_tag_exclude (query, search_exclude_tags[i]);
+    }
+
     switch (output) {
     default:
     case OUTPUT_SUMMARY: