aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-08-24 08:17:25 -0700
committerDavid Bremner <david@tethera.net>2021-09-04 17:07:19 -0700
commit0ca4ad2670b22e975a018f9f662ea3a762840583 (patch)
treeaba2f3b5cc268d378819127d5d9c0c8e76ecbd46 /lib
parent011d06f4d6fec8083581676ba9f9448fe7bea1be (diff)
lib/parse-sexp: add '*' as syntactic sugar for '(starts-with "")'
Users that insist on using a literal '*' as a tag, can continue to do so by quoting it when searching.
Diffstat (limited to 'lib')
-rw-r--r--lib/parse-sexp.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/parse-sexp.cc b/lib/parse-sexp.cc
index 692b3849..ffb00148 100644
--- a/lib/parse-sexp.cc
+++ b/lib/parse-sexp.cc
@@ -176,6 +176,11 @@ _sexp_to_xapian_query (notmuch_database_t *notmuch, const _sexp_prefix_t *parent
std::string term = Xapian::Unicode::tolower (sx->val);
Xapian::Stem stem = *(notmuch->stemmer);
std::string term_prefix = parent ? _find_prefix (parent->name) : "";
+
+ if (sx->aty == SEXP_BASIC && strcmp (sx->val, "*") == 0) {
+ return _sexp_parse_wildcard (notmuch, parent, "", output);
+ }
+
if (parent && (parent->flags & SEXP_FLAG_BOOLEAN)) {
output = Xapian::Query (term_prefix + sx->val);
return NOTMUCH_STATUS_SUCCESS;