]> git.notmuchmail.org Git - notmuch-wiki/blobdiff - faq.mdwn
update faq entry about searching for messages without tags
[notmuch-wiki] / faq.mdwn
index 4646ef1a4cface205448bc4607127a2c5a2d1994..2e7fa10a03424e80f43493122931f9c295e8c0b9 100644 (file)
--- a/faq.mdwn
+++ b/faq.mdwn
@@ -27,11 +27,26 @@ See [[excluding]].
 
 See help for `message-citation-line-format` for details.
 
+## What are sexp queries
+
+For the syntax of sexp queries, see [the manual
+page](https://notmuchmail.org/doc/latest/man7/notmuch-sexp-queries.html).
+
+To see if your version of notmuch supports them, run
+
+        $ notmuch config get built_with.sexp_queries
+
 ## How do I search for messages that have no tags?
 
-Unfortunately, there is no way to do this directly.
+To do this directly, you need a recent notmuch compiled with sexp
+queries (see above). You can then run
 
-However, it's possible to accomplish this using two searches in shell. First,
+        $ notmuch search --query=sexp --output=messages '(not (tag *))'
+
+The same style of query should work for any prefix, even user defined
+prefixes like `List` (see below).
+
+Otherwise, it's possible to accomplish this using two searches in shell. First,
 you need to query all tags in the database, and transform the result into a
 query that matches messages that have none of those tags:
 
@@ -105,17 +120,17 @@ fixed in 1.4.7.  Try reverting Xapian commit
 `093999529acc2f86900d91fed0c7f7af301ab94a`, e.g. with the following
 patch.
 
-[[!format text """
-index 80e578b85..a47f14a68 100644
---- a/xapian-core/backends/glass/glass_postlist.cc
-+++ b/xapian-core/backends/glass/glass_postlist.cc
-@@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_,
-     (void)need_pos;
-     if (term_.empty())
-        RETURN(NULL);
--    if (!this_db.get() || this_db->postlist_table.is_modified())
-+    if (!this_db.get() || this_db->postlist_table.is_writable())
-        RETURN(NULL);
-     RETURN(new GlassPostList(this_db, term_, cursor->clone()));
- }
-"""]]
+
+    index 80e578b85..a47f14a68 100644
+    --- a/xapian-core/backends/glass/glass_postlist.cc
+    +++ b/xapian-core/backends/glass/glass_postlist.cc
+    @@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_,
+         (void)need_pos;
+         if (term_.empty())
+            RETURN(NULL);
+    -    if (!this_db.get() || this_db->postlist_table.is_modified())
+    +    if (!this_db.get() || this_db->postlist_table.is_writable())
+            RETURN(NULL);
+         RETURN(new GlassPostList(this_db, term_, cursor->clone()));
    }
+