]> git.notmuchmail.org Git - notmuch/commitdiff
Allow lone "not" search operators
authorAdrian Perez <aperez@igalia.com>
Thu, 19 Nov 2009 00:07:22 +0000 (01:07 +0100)
committerCarl Worth <cworth@cworth.org>
Thu, 19 Nov 2009 00:42:31 +0000 (01:42 +0100)
As suggested by Keith in FLAG_PURE_NOT allows for expressions like:

  notmuch search NOT tag:inbox

Note that this way a search like:

  notmuch search foobar NOT tag:inbox

should not be written instead:

  notmuch search foobar AND NOT tag:inbox

In my opinion, the latter feels more natural and is somewhat more explicit.
It gives a better clue of what the search is about instead of assuming that
an implicit AND operator is there.

lib/query.cc

index a869f3e60d1e0aeace3526c90d8a1e6bde4ae9ff..75f22b30f145b7ad148c7d77a9d925e215a37b83 100644 (file)
@@ -97,7 +97,8 @@ notmuch_query_search_messages (notmuch_query_t *query,
                              Xapian::QueryParser::FLAG_PHRASE |
                              Xapian::QueryParser::FLAG_LOVEHATE |
                              Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE |
                              Xapian::QueryParser::FLAG_PHRASE |
                              Xapian::QueryParser::FLAG_LOVEHATE |
                              Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE |
-                             Xapian::QueryParser::FLAG_WILDCARD);
+                             Xapian::QueryParser::FLAG_WILDCARD |
+                             Xapian::QueryParser::FLAG_PURE_NOT);
 
        if (strcmp (query_string, "") == 0) {
            final_query = mail_query;
 
        if (strcmp (query_string, "") == 0) {
            final_query = mail_query;