On Wed, 18 Jan 2012 00:47:11 -0800, Jameson Graef Rollins wrote: > > > (while (and (setq r (notmuch-show-goto-message-next)) > > > (not (notmuch-show-message-visible-p)))) > > > (if r > > > (progn > > > (notmuch-show-mark-read) > > > (notmuch-show-message-adjust)) > > > - (goto-char (point-max))))) > > > + (if (and parent-buffer pop-at-end) > > > + (progn > > > + (kill-this-buffer) > > > + (switch-to-buffer parent-buffer) > > > + (forward-line 1)) > > > + (goto-char (point-max)))))) > > > > Can you explain in words how this is expected to behave please? > > Do you see a problem? Not a problem, just trying to understand the behaviour (I have to revive my advance/rewind patches at some point). > If there is not another message, but there is a parent buffer and the > pop-at-end variable is set, kill this buffer, go the parent, and move to > the next thread. Otherwise, go to the max point in the buffer. I'm used to the cursor going to the bottom of the thread to let me know that I reached the end, then I hit 'space' and move on to the next thread. Will that behaviour be retained with this patch? (Well, including your other patch which seemed to set `pop-at-end'.) It's one of those things that I have to try out to understand properly I expect.