notmuch.el: Redefine behavior of notmuch-show-previous-message

Now, if the user has manually moved point to somewhere within a
message, executing the previous-message command onece will rewind
point only to the beginning of the current message. Previously this
would go back to the previous message, (which the user can now do
easily and naturally by simply executing the command one more time).
This commit is contained in:
Carl Worth 2009-11-04 08:48:57 -08:00
parent 253c11b675
commit 446459a5ea

View file

@ -147,15 +147,19 @@ last message in the buffer."
(defun notmuch-show-previous-message ()
"Backup to the beginning of the previous message in the buffer.
Moves to the beginning of the current message if already on the
first message in the buffer."
If within a message rather than at the beginning of it, then
simply move to the beginning of the current message."
(interactive)
(notmuch-show-move-to-current-message-summary-line)
; Go backward twice to skip the current message's marker
(re-search-backward notmuch-show-message-begin-regexp nil t)
(re-search-backward notmuch-show-message-begin-regexp nil t)
(notmuch-show-move-to-current-message-summary-line)
(recenter 0))
(let ((start (point)))
(notmuch-show-move-to-current-message-summary-line)
(if (not (< (point) start))
; Go backward twice to skip the current message's marker
(progn
(re-search-backward notmuch-show-message-begin-regexp nil t)
(re-search-backward notmuch-show-message-begin-regexp nil t)
(notmuch-show-move-to-current-message-summary-line)
))
(recenter 0)))
(defun notmuch-show-mark-read-then-next-message ()
"Remove uread tag from current message, then advance to next message."