From: Carl Worth Date: Wed, 10 Mar 2010 19:07:58 +0000 (-0800) Subject: emacs: Fix search refresh when on the last line of a search buffer. X-Git-Tag: 0.1~46 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=bb61755afe0deddbb146222a4e42547b00a7fd76 emacs: Fix search refresh when on the last line of a search buffer. We currently allow the cursor to be positioned on the "End of search results" line after the last thread in a search buffer. When refreshing on this line, there's no thread ID to be used as the target. Previously, a refresh from this case would result in a nil thread target, but we were also using nil to indicate that the target thread had been found. This caused the position to be lost during refresh, (the cursor would move from the last line in the buffer to the first). We fix this by using a magic string of "found" rather than nil to clearly indicate whether the target thread has actually been found. --- diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 904272df..117a3658 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -1482,7 +1482,7 @@ This function advances the next thread when finished." (insert (format " (process returned %d)" exit-status))) (insert "\n") (if (and atbob - notmuch-search-target-thread) + (not (string= notmuch-search-target-thread "found"))) (set 'never-found-target-thread t)))))) (if (and never-found-target-thread notmuch-search-target-line) @@ -1515,11 +1515,10 @@ This function advances the next thread when finished." (put-text-property beg (point-marker) 'notmuch-search-thread-id thread-id) (put-text-property beg (point-marker) 'notmuch-search-authors authors) (put-text-property beg (point-marker) 'notmuch-search-subject subject) - (if (and notmuch-search-target-thread - (string= thread-id notmuch-search-target-thread)) + (if (string= thread-id notmuch-search-target-thread) (progn (set 'found-target beg) - (set 'notmuch-search-target-thread nil)))) + (set 'notmuch-search-target-thread "found")))) (set 'line (match-end 0))) (set 'more nil))))) (if found-target