With the recent change of showing the first unread message, we would
scroll down to the end of the buffer if all messages were already
read. This would confusingly show nothing visible in the window.
Instead, detect this case and move to the beginning of the buffer.
(defun notmuch-show-next-unread-message ()
"Advance to the beginning of the next unread message in the buffer.
(defun notmuch-show-next-unread-message ()
"Advance to the beginning of the next unread message in the buffer.
-Does nothing if there are no more unread messages past the
-current point."
+Moves to the end of the buffer if there are no more unread
+messages past the current point."
(while (and (not (eobp))
(not (member "unread" (notmuch-show-get-tags))))
(notmuch-show-next-message)))
(while (and (not (eobp))
(not (member "unread" (notmuch-show-get-tags))))
(notmuch-show-next-message)))
(defun notmuch-show-find-next-unread-message ()
"Returns the position of the next message in the buffer.
(defun notmuch-show-find-next-unread-message ()
"Returns the position of the next message in the buffer.
-Returns the current point if there are no more unread messages
+Or the end of the buffer if there are no more unread messages
past the current point."
; save-excursion doesn't save our window position
; save-window-excursion doesn't save point
past the current point."
; save-excursion doesn't save our window position
; save-window-excursion doesn't save point
(notmuch-show-markup-messages)
)
(notmuch-show-next-unread-message)
(notmuch-show-markup-messages)
)
(notmuch-show-next-unread-message)
+ (if (eobp)
+ (goto-char (point-min)))
)))
(defvar notmuch-search-mode-map
)))
(defvar notmuch-search-mode-map