emacs: Fix navigation of multi-line search result formats

At this point, the only remaining functions that don't support
multi-line search result formats are the thread navigation functions.
This patch fixes that by rewriting them in terms of
notmuch-search-result-{beginning,end}.

This changes the behavior of notmuch-search-previous-thread slightly
so that if point isn't at the beginning of a result, it first moves
point to the beginning of the result.
This commit is contained in:
Austin Clements 2012-07-21 13:37:11 -04:00 committed by David Bremner
parent 90e741ef81
commit 5d0883ea1b

View file

@ -293,18 +293,25 @@ For a mouse binding, return nil."
(defun notmuch-search-next-thread () (defun notmuch-search-next-thread ()
"Select the next thread in the search results." "Select the next thread in the search results."
(interactive) (interactive)
(forward-line 1)) (when (notmuch-search-get-result (notmuch-search-result-end))
(goto-char (notmuch-search-result-end))))
(defun notmuch-search-previous-thread () (defun notmuch-search-previous-thread ()
"Select the previous thread in the search results." "Select the previous thread in the search results."
(interactive) (interactive)
(forward-line -1)) (if (notmuch-search-get-result)
(unless (bobp)
(goto-char (notmuch-search-result-beginning (- (point) 1))))
;; We must be past the end; jump to the last result
(notmuch-search-last-thread)))
(defun notmuch-search-last-thread () (defun notmuch-search-last-thread ()
"Select the last thread in the search results." "Select the last thread in the search results."
(interactive) (interactive)
(goto-char (point-max)) (goto-char (point-max))
(forward-line -2)) (forward-line -2)
(let ((beg (notmuch-search-result-beginning)))
(when beg (goto-char beg))))
(defun notmuch-search-first-thread () (defun notmuch-search-first-thread ()
"Select the first thread in the search results." "Select the first thread in the search results."