From d29d7e1ee25059c657412d5b045650f1e3e1533f Mon Sep 17 00:00:00 2001 From: Mark Walters Date: Mon, 13 May 2013 16:10:51 +0100 Subject: lib: add NOTMUCH_EXCLUDE_FLAG to notmuch_exclude_t Add NOTMUCH_EXCLUDE_FLAG to notmuch_exclude_t so that it can cover all four values of search --exclude in the cli. Previously the way to avoid any message being marked excluded was to pass in an empty list of excluded tags: since we now have an explicit option we might as well honour it. The enum is in a slightly strange order as the existing FALSE/TRUE options correspond to the new NOTMUCH_EXCLUDE_FLAG/NOTMUCH_EXCLUDE_TRUE options so this means we do not need to bump the version number. Indeed, an example of this is that the cli count and show still use FALSE/TRUE and still work. --- lib/notmuch.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'lib/notmuch.h') diff --git a/lib/notmuch.h b/lib/notmuch.h index 27b43ff6..73c85a41 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -500,10 +500,15 @@ typedef enum { const char * notmuch_query_get_query_string (notmuch_query_t *query); -/* Exclude values for notmuch_query_set_omit_excluded */ +/* Exclude values for notmuch_query_set_omit_excluded. The strange + * order is to maintain backward compatibility: the old FALSE/TRUE + * options correspond to the new + * NOTMUCH_EXCLUDE_FLAG/NOTMUCH_EXCLUDE_TRUE options. + */ typedef enum { - NOTMUCH_EXCLUDE_FALSE, + NOTMUCH_EXCLUDE_FLAG, NOTMUCH_EXCLUDE_TRUE, + NOTMUCH_EXCLUDE_FALSE, NOTMUCH_EXCLUDE_ALL } notmuch_exclude_t; @@ -517,6 +522,15 @@ typedef enum { * match in at least one non-excluded message. Otherwise, if set to ALL, * notmuch_query_search_threads will omit excluded messages from all threads. * + * If set to FALSE or FLAG then both notmuch_query_search_messages and + * notmuch_query_search_threads will return all matching + * messages/threads regardless of exclude status. If set to FLAG then + * the exclude flag will be set for any excluded message that is + * returned by notmuch_query_search_messages, and the thread counts + * for threads returned by notmuch_query_search_threads will be the + * number of non-excluded messages/matches. Otherwise, if set to + * FALSE, then the exclude status is completely ignored. + * * The performance difference when calling * notmuch_query_search_messages should be relatively small (and both * should be very fast). However, in some cases, -- cgit v1.2.3