CLI/config support saving s-expression queries

This commit does not enable using saved s-expression queries, only
saving and retrieving them from the config file or the database. Use
in queries will be enabled in a following commit.
This commit is contained in:
David Bremner 2021-08-24 08:17:38 -07:00
parent 6ab2d9b1a2
commit 81b9dbd110
3 changed files with 19 additions and 0 deletions

View file

@ -251,6 +251,11 @@ paths are presumed relative to `$HOME` for items in section
:any:`notmuch-search-terms(7)` for more information about named :any:`notmuch-search-terms(7)` for more information about named
queries. queries.
**squery.<name>**
Expansion for named query called <name>, using s-expression syntax. See
:any:`notmuch-sexp-queries(7)` for more information about s-expression
queries.
FILES FILES
===== =====

View file

@ -517,6 +517,7 @@ static const struct config_key
{ "index.decrypt", false, NULL }, { "index.decrypt", false, NULL },
{ "index.header.", true, validate_field_name }, { "index.header.", true, validate_field_name },
{ "query.", true, NULL }, { "query.", true, NULL },
{ "squery.", true, validate_field_name },
}; };
static const config_key_info_t * static const config_key_info_t *

View file

@ -812,4 +812,17 @@ notmuch search 'List:"notmuch notmuchmail org"' | notmuch_search_sanitize > EXPE
notmuch search --query=sexp '(List notmuch notmuchmail org)' | notmuch_search_sanitize > OUTPUT notmuch search --query=sexp '(List notmuch notmuchmail org)' | notmuch_search_sanitize > OUTPUT
test_expect_equal_file EXPECTED OUTPUT test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "check saved query name"
test_expect_code 1 "notmuch config set squery.test '(subject utf8-sübjéct)'"
test_begin_subtest "roundtrip saved query (database)"
notmuch config set --database squery.Test '(subject utf8-sübjéct)'
output=$(notmuch config get squery.Test)
test_expect_equal "$output" '(subject utf8-sübjéct)'
test_begin_subtest "roundtrip saved query"
notmuch config set squery.Test '(subject override subject)'
output=$(notmuch config get squery.Test)
test_expect_equal "$output" '(subject override subject)'
test_done test_done