diff options
| author | David Bremner <david@tethera.net> | 2021-08-24 08:17:25 -0700 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2021-09-04 17:07:19 -0700 |
| commit | 0ca4ad2670b22e975a018f9f662ea3a762840583 (patch) | |
| tree | aba2f3b5cc268d378819127d5d9c0c8e76ecbd46 /lib | |
| parent | 011d06f4d6fec8083581676ba9f9448fe7bea1be (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.cc | 5 |
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; |
