]> git.notmuchmail.org Git - notmuch/blobdiff - lib/query.cc
build: build parse-time-string as part of the notmuch lib and static cli
[notmuch] / lib / query.cc
index 1e5e99a52bd08f06cfd223c55bf857f78a575f19..e9c1a2d158e5d613ab129026ecf98976d1077265 100644 (file)
@@ -28,7 +28,7 @@ struct _notmuch_query {
     const char *query_string;
     notmuch_sort_t sort;
     notmuch_string_list_t *exclude_terms;
-    notmuch_bool_t omit_excluded_messages;
+    notmuch_bool_t omit_excluded;
 };
 
 typedef struct _notmuch_mset_messages {
@@ -92,7 +92,7 @@ notmuch_query_create (notmuch_database_t *notmuch,
 
     query->exclude_terms = _notmuch_string_list_create (query);
 
-    query->omit_excluded_messages = FALSE;
+    query->omit_excluded = TRUE;
 
     return query;
 }
@@ -104,9 +104,9 @@ notmuch_query_get_query_string (notmuch_query_t *query)
 }
 
 void
-notmuch_query_set_omit_excluded_messages (notmuch_query_t *query, notmuch_bool_t omit)
+notmuch_query_set_omit_excluded (notmuch_query_t *query, notmuch_bool_t omit_excluded)
 {
-    query->omit_excluded_messages = omit;
+    query->omit_excluded = omit_excluded;
 }
 
 void
@@ -219,13 +219,14 @@ notmuch_query_search_messages (notmuch_query_t *query)
 
        if (query->exclude_terms) {
            exclude_query = _notmuch_exclude_tags (query, final_query);
-           exclude_query = Xapian::Query (Xapian::Query::OP_AND,
-                                          exclude_query, final_query);
 
-           if (query->omit_excluded_messages)
+           if (query->omit_excluded)
                final_query = Xapian::Query (Xapian::Query::OP_AND_NOT,
                                             final_query, exclude_query);
            else {
+               exclude_query = Xapian::Query (Xapian::Query::OP_AND,
+                                          exclude_query, final_query);
+
                enquire.set_weighting_scheme (Xapian::BoolWeight());
                enquire.set_query (exclude_query);
 
@@ -261,9 +262,12 @@ notmuch_query_search_messages (notmuch_query_t *query)
            break;
        }
 
-       if (_debug_query ())
+       if (_debug_query ()) {
+           fprintf (stderr, "Exclude query is:\n%s\n",
+                    exclude_query.get_description ().c_str ());
            fprintf (stderr, "Final query is:\n%s\n",
                     final_query.get_description ().c_str ());
+       }
 
        enquire.set_query (final_query);
 
@@ -537,9 +541,12 @@ notmuch_query_count_messages (notmuch_query_t *query)
        enquire.set_weighting_scheme(Xapian::BoolWeight());
        enquire.set_docid_order(Xapian::Enquire::ASCENDING);
 
-       if (_debug_query ())
+       if (_debug_query ()) {
+           fprintf (stderr, "Exclude query is:\n%s\n",
+                    exclude_query.get_description ().c_str ());
            fprintf (stderr, "Final query is:\n%s\n",
                     final_query.get_description ().c_str ());
+       }
 
        enquire.set_query (final_query);