diff options
author | Mark Walters <markwalters1009@gmail.com> | 2013-05-13 16:10:51 +0100 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2013-06-24 22:53:16 -0700 |
commit | d29d7e1ee25059c657412d5b045650f1e3e1533f (patch) | |
tree | e5de7694c9dfe5684458c25564c65a9ef70a7a90 /lib/thread.cc | |
parent | 8d863c9e87677909491f9783b951b2f0f13130ab (diff) |
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.
Diffstat (limited to 'lib/thread.cc')
-rw-r--r-- | lib/thread.cc | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/thread.cc b/lib/thread.cc index bc078778..4dcf7053 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -238,20 +238,22 @@ _thread_add_message (notmuch_thread_t *thread, char *clean_author; notmuch_bool_t message_excluded = FALSE; - for (tags = notmuch_message_get_tags (message); - notmuch_tags_valid (tags); - notmuch_tags_move_to_next (tags)) - { - tag = notmuch_tags_get (tags); - /* Is message excluded? */ - for (notmuch_string_node_t *term = exclude_terms->head; - term != NULL; - term = term->next) + if (omit_exclude != NOTMUCH_EXCLUDE_FALSE) { + for (tags = notmuch_message_get_tags (message); + notmuch_tags_valid (tags); + notmuch_tags_move_to_next (tags)) { - /* We ignore initial 'K'. */ - if (strcmp(tag, (term->string + 1)) == 0) { - message_excluded = TRUE; - break; + tag = notmuch_tags_get (tags); + /* Is message excluded? */ + for (notmuch_string_node_t *term = exclude_terms->head; + term != NULL; + term = term->next) + { + /* We ignore initial 'K'. */ + if (strcmp(tag, (term->string + 1)) == 0) { + message_excluded = TRUE; + break; + } } } } |