[PATCH 2/4] lib/sexp: special case "" as an argument in lastmod ranges.

Subject: [PATCH 2/4] lib/sexp: special case "" as an argument in lastmod ranges.

Date: Sat, 4 Jun 2022 18:53:57 -0300

To: David Bremner, notmuch@notmuchmail.org

Cc:

From: David Bremner


Support this syntax for constincy with (data from to) ranges.
---
 lib/parse-sexp.cc         | 10 ++++++++--
 test/T081-sexpr-search.sh |  2 --
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/lib/parse-sexp.cc b/lib/parse-sexp.cc
index 08fd7037..6282a456 100644
--- a/lib/parse-sexp.cc
+++ b/lib/parse-sexp.cc
@@ -504,14 +504,20 @@ _sexp_parse_range (notmuch_database_t *notmuch,  const _sexp_prefix_t *prefix,
 	long from_idx, to_idx;
 
 	try {
-	    from_idx = std::stol (from);
+	    if (EMPTY_STRING (from))
+		from_idx = 0L;
+	    else
+		from_idx = std::stol (from);
 	} catch (std::logic_error &e) {
 	    _notmuch_database_log (notmuch, "bad 'from' revision: '%s'\n", from);
 	    return NOTMUCH_STATUS_BAD_QUERY_SYNTAX;
 	}
 
 	try {
-	    to_idx = std::stol (to);
+	    if (EMPTY_STRING (to))
+		to_idx = LONG_MAX;
+	    else
+		to_idx = std::stol (to);
 	} catch (std::logic_error &e) {
 	    _notmuch_database_log (notmuch, "bad 'to' revision: '%s'\n", to);
 	    return NOTMUCH_STATUS_BAD_QUERY_SYNTAX;
diff --git a/test/T081-sexpr-search.sh b/test/T081-sexpr-search.sh
index 31169fb5..896ffe5d 100755
--- a/test/T081-sexpr-search.sh
+++ b/test/T081-sexpr-search.sh
@@ -932,13 +932,11 @@ notmuch search --query=sexp  "(and (lastmod $revision $revision2))" | notmuch_se
 test_expect_equal_file EXPECTED OUTPUT
 
 test_begin_subtest "lastmod query, lower bound only"
-test_subtest_known_broken
 notmuch search lastmod:$revision.. | notmuch_search_sanitize > EXPECTED
 notmuch search --query=sexp  "(lastmod $revision \"\")" | notmuch_search_sanitize > OUTPUT
 test_expect_equal_file_nonempty EXPECTED OUTPUT
 
 test_begin_subtest "lastmod query, upper bound only"
-test_subtest_known_broken
 notmuch search lastmod:..$revision2 | notmuch_search_sanitize > EXPECTED
 notmuch search --query=sexp  "(lastmod \"\" $revision2)" | notmuch_search_sanitize > OUTPUT
 test_expect_equal_file_nonempty EXPECTED OUTPUT
-- 
2.35.2

_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: