]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.el
notmuch.el: Redefine behavior of notmuch-show-previous-message
[notmuch] / notmuch.el
index 667fd6fd35c4193fa095f042c15c40405cac285a..5f394cdd39584b34474160fbf1e4e44a2f5ad570 100644 (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."