Make it obvious how the --exclude command-line option affects the
omit_excluded field in notmuch_query_t objects, with an explicit and
exhaustive switch.  Do not expect the reader to know the default value
of omit_excluded.
---
This can be inserted after patch 2.

 notmuch-search.c | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/notmuch-search.c b/notmuch-search.c
index 4323201..893df10 100644
--- a/notmuch-search.c
+++ b/notmuch-search.c
@@ -290,6 +290,24 @@ enum {
     EXCLUDE_ALL
 };
 
+static int
+exclude_option_to_omit_excluded (int exclude)
+{
+    switch (exclude) {
+    case EXCLUDE_TRUE:
+       return NOTMUCH_EXCLUDE_TRUE;
+    case EXCLUDE_FALSE:
+       return NOTMUCH_EXCLUDE_FALSE;
+    case EXCLUDE_FLAG:
+       return NOTMUCH_EXCLUDE_FALSE;
+    case EXCLUDE_ALL:
+       return NOTMUCH_EXCLUDE_ALL;
+    default:
+       INTERNAL_ERROR ("unhandled exclude option %d", exclude);
+       /*UNREACHED*/
+    }
+}
+
 int
 notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
 {
@@ -410,11 +428,8 @@ notmuch_search_command (notmuch_config_t *config, int 
argc, char *argv[])
            (config, &search_exclude_tags_length);
        for (i = 0; i < search_exclude_tags_length; i++)
            notmuch_query_add_tag_exclude (query, search_exclude_tags[i]);
-       if (exclude == EXCLUDE_FLAG)
-           notmuch_query_set_omit_excluded (query, NOTMUCH_EXCLUDE_FALSE);
-       if (exclude == EXCLUDE_ALL)
-           notmuch_query_set_omit_excluded (query, NOTMUCH_EXCLUDE_ALL);
     }
+    notmuch_query_set_omit_excluded (query, exclude_option_to_omit_excluded 
(exclude));
 
     switch (output) {
     default:
-- 
1.7.12.1

_______________________________________________
notmuch mailing list
[email protected]
http://notmuchmail.org/mailman/listinfo/notmuch

Reply via email to