From: Carl Worth <cworth@cworth.org>
Date: Wed, 4 Nov 2009 19:19:50 +0000 (-0800)
Subject: notmuch.el: Move to first unread message on notmuch-show.
X-Git-Tag: 0.1~586
X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=88810b999a478b6af796eb98b0cf35020ee50901;p=notmuch-old

notmuch.el: Move to first unread message on notmuch-show.

This is important for when a new message is delivered to an existing
enormous thread.
---

diff --git a/notmuch.el b/notmuch.el
index 849654b7..9bf272be 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -172,6 +172,15 @@ message in the buffer."
       (notmuch-show-next-message)
       (point))))
 
+(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."
+  (while (and (not (eobp))
+	      (not (member "unread" (notmuch-show-get-tags))))
+    (notmuch-show-next-message)))
+
 (defun notmuch-show-previous-message ()
   "Backup to the beginning of the previous message in the buffer.
 
@@ -400,6 +409,7 @@ thread from that buffer can be show when done with this one)."
 	(call-process "notmuch" nil t nil "show" thread-id)
 	(notmuch-show-markup-messages)
 	)
+      (notmuch-show-next-unread-message)
       )))
 
 (defvar notmuch-search-mode-map