const char *query_string;
notmuch_sort_t sort;
notmuch_string_list_t *exclude_terms;
- notmuch_bool_t omit_excluded;
+ notmuch_exclude_t omit_excluded;
};
typedef struct _notmuch_mset_messages {
if (_debug_query ())
fprintf (stderr, "Query string is:\n%s\n", query_string);
- query = talloc (NULL, notmuch_query_t);
+ query = talloc (notmuch, notmuch_query_t);
if (unlikely (query == NULL))
return NULL;
query->exclude_terms = _notmuch_string_list_create (query);
- query->omit_excluded = TRUE;
+ query->omit_excluded = NOTMUCH_EXCLUDE_TRUE;
return query;
}
}
void
-notmuch_query_set_omit_excluded (notmuch_query_t *query, notmuch_bool_t omit_excluded)
+notmuch_query_set_omit_excluded (notmuch_query_t *query,
+ notmuch_exclude_t omit_excluded)
{
query->omit_excluded = omit_excluded;
}
}
messages->base.excluded_doc_ids = NULL;
- if (query->exclude_terms) {
+ if ((query->omit_excluded != NOTMUCH_EXCLUDE_FALSE) && (query->exclude_terms)) {
exclude_query = _notmuch_exclude_tags (query, final_query);
- if (query->omit_excluded)
+ if (query->omit_excluded == NOTMUCH_EXCLUDE_TRUE ||
+ query->omit_excluded == NOTMUCH_EXCLUDE_ALL)
+ {
final_query = Xapian::Query (Xapian::Query::OP_AND_NOT,
final_query, exclude_query);
- else {
+ } else { /* NOTMUCH_EXCLUDE_FLAG */
exclude_query = Xapian::Query (Xapian::Query::OP_AND,
exclude_query, final_query);
doc_id,
&threads->match_set,
threads->query->exclude_terms,
+ threads->query->omit_excluded,
threads->query->sort);
}