aboutsummaryrefslogtreecommitdiff
path: root/lib/prefix.cc
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2022-04-09 16:45:48 -0300
committerDavid Bremner <david@tethera.net>2022-04-15 08:25:46 -0300
commita1d139de4d92ae2cdee14d78bd2d66dc2c548714 (patch)
tree582a0ed9787b4b05f8ae480ba40629768a6af442 /lib/prefix.cc
parentfc3bb11808d8e7d02265ddd08cbffa4ab9d712a2 (diff)
lib: add sexp: prefix to Xapian (infix) query parser.
This is analogous to the "infix" prefix provided by the s-expression based query parser.
Diffstat (limited to 'lib/prefix.cc')
-rw-r--r--lib/prefix.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/prefix.cc b/lib/prefix.cc
index 857c05b9..06e2333a 100644
--- a/lib/prefix.cc
+++ b/lib/prefix.cc
@@ -3,6 +3,7 @@
#include "thread-fp.h"
#include "regexp-fields.h"
#include "parse-time-vrp.h"
+#include "sexp-fp.h"
typedef struct {
const char *name;
@@ -60,6 +61,8 @@ prefix_t prefix_table[] = {
NOTMUCH_FIELD_PROCESSOR },
{ "query", NULL, NOTMUCH_FIELD_EXTERNAL |
NOTMUCH_FIELD_PROCESSOR },
+ { "sexp", NULL, NOTMUCH_FIELD_EXTERNAL |
+ NOTMUCH_FIELD_PROCESSOR },
{ "from", "XFROM", NOTMUCH_FIELD_EXTERNAL |
NOTMUCH_FIELD_PROBABILISTIC |
NOTMUCH_FIELD_PROCESSOR },
@@ -138,6 +141,8 @@ _setup_query_field (const prefix_t *prefix, notmuch_database_t *notmuch)
fp = (new QueryFieldProcessor (*notmuch->query_parser, notmuch))->release ();
else if (STRNCMP_LITERAL (prefix->name, "thread") == 0)
fp = (new ThreadFieldProcessor (*notmuch->query_parser, notmuch))->release ();
+ else if (STRNCMP_LITERAL (prefix->name, "sexp") == 0)
+ fp = (new SexpFieldProcessor (notmuch))->release ();
else
fp = (new RegexpFieldProcessor (prefix->name, prefix->flags,
*notmuch->query_parser, notmuch))->release ();