`notmuch-search-find-stable-query-region' is expected to examine the region between `beg' and `end' to generate a query that can be used to include all threads in that region. If the region contains no threads, it should throw an error rather than generating an empty query. --- Whilst logging calls to 'notmuch' from the UI, I noticed that it would generate notmuch tag -inbox -- () if I hit 'a' at the very end of a search buffer. That seems at least useless and possibly bad, so flag an error in this case instead. Oh, the first bit is just cleanup. emacs/notmuch.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 8aa0104..74103a6 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -429,12 +429,15 @@ matched and unmatched messages in the current thread." If ONLY-MATCHED is non-nil, include only matched messages. If it is nil, include both matched and unmatched messages." - (let ((query-list nil) (all (not only-matched))) + (let ((all (not only-matched)) + query-list) (dolist (queries (notmuch-search-properties-in-region :query beg end)) (when (first queries) (push (first queries) query-list)) (when (and all (second queries)) (push (second queries) query-list))) + (unless query-list + (error "No threads in region.")) (concat "(" (mapconcat 'identity query-list ") or (") ")"))) (defun notmuch-search-find-authors () -- 2.0.0.rc0