emacs: Make notmuch-show-next-thread return nil on failure

Having notmuch-show-next-thread return non-nil on success and nil on
failure makes it easier for users to interact with notmuch via elisp.

This commit changes notmuch-search-show-thread too since the return
value of notmuch-show-next-thread depends on notmuch-search-show-thread.

Amended by db: fix whitespace in T450-emacs-show
This commit is contained in:
Leo Okawa Ericson 2022-06-09 17:18:22 +02:00 committed by David Bremner
parent a5504e8b1c
commit fb4a0967ca
3 changed files with 19 additions and 3 deletions

View file

@ -2227,7 +2227,9 @@ argument, hide all of the messages."
If SHOW is non-nil, open the next item in a show
buffer. Otherwise just highlight the next item in the search
buffer. If PREVIOUS is non-nil, move to the previous item in the
search results instead."
search results instead.
Return non-nil on success."
(interactive "P")
(let ((parent-buffer notmuch-show-parent-buffer))
(notmuch-bury-or-kill-this-buffer)

View file

@ -520,7 +520,9 @@ no messages in the region then return nil."
With a prefix argument, invert the default value of
`notmuch-show-only-matching-messages' when displaying the
thread."
thread.
Return non-nil on success."
(interactive "P")
(let ((thread-id (notmuch-search-find-thread-id)))
(if thread-id
@ -532,7 +534,8 @@ thread."
(format "*%s*" (truncate-string-to-width
(notmuch-search-find-subject)
30 nil nil t)))
(message "End of search results."))))
(message "End of search results.")
nil)))
(defun notmuch-tree-from-search-current-query ()
"Tree view of current query."

View file

@ -62,6 +62,17 @@ test_emacs '(let ((notmuch-crypto-process-mime nil))
(test-visible-output))'
test_expect_equal_file $EXPECTED/notmuch-show-process-crypto-mime-parts-on OUTPUT
test_begin_subtest "notmuch-search-show-thread returns non-nil on success"
test_emacs_expect_t '(notmuch-search "id:20091117203301.GV3165@dottiness.seas.harvard.edu")
(notmuch-test-wait)
(and (notmuch-search-show-thread)
(not (notmuch-show-next-thread)))'
test_begin_subtest "notmuch-search-show-thread returns nil when there are no messages"
test_emacs_expect_t '(notmuch-search "id:non-existing-id")
(notmuch-test-wait)
(not (notmuch-search-show-thread))'
test_begin_subtest "notmuch-show: don't elide non-matching messages"
test_emacs '(let ((notmuch-show-only-matching-messages nil))
(notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"")