mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
emacs: notmuch search bugfix
The recent change to use json for notmuch-search.el introduced a bug in the code for keeping position on refresh. The problem is a comparison between (plist-get result :thread) and a thread-id returned by notmuch-search-find-thread-id: the latter is prefixed with "thread:" We fix this by adding an option to notmuch-search-find-thread-id to return the bare thread-id. It appears that notmuch-search-refresh-view is the only caller of notmuch-search that supplies a thread-id so this change should be safe (but could theoretically break users .emacs functions).
This commit is contained in:
parent
94c3b40d41
commit
5811550cdd
2 changed files with 10 additions and 5 deletions
3
NEWS
3
NEWS
|
@ -55,6 +55,9 @@ user-specified formatting
|
||||||
you've customized this variable, you may have to change your date
|
you've customized this variable, you may have to change your date
|
||||||
format from `"%s "` to `"%12s "`.
|
format from `"%s "` to `"%12s "`.
|
||||||
|
|
||||||
|
The thread-id for the `target-thread` argument for `notmuch-search` should
|
||||||
|
now be supplied without the "thread:" prefix.
|
||||||
|
|
||||||
Notmuch 0.13.2 (2012-06-02)
|
Notmuch 0.13.2 (2012-06-02)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
|
|
@ -475,10 +475,12 @@ BEG."
|
||||||
(push (plist-get (notmuch-search-get-result pos) property) output)))
|
(push (plist-get (notmuch-search-get-result pos) property) output)))
|
||||||
output))
|
output))
|
||||||
|
|
||||||
(defun notmuch-search-find-thread-id ()
|
(defun notmuch-search-find-thread-id (&optional bare)
|
||||||
"Return the thread for the current thread"
|
"Return the thread for the current thread
|
||||||
|
|
||||||
|
If BARE is set then do not prefix with \"thread:\""
|
||||||
(let ((thread (plist-get (notmuch-search-get-result) :thread)))
|
(let ((thread (plist-get (notmuch-search-get-result) :thread)))
|
||||||
(when thread (concat "thread:" thread))))
|
(when thread (concat (unless bare "thread:") thread))))
|
||||||
|
|
||||||
(defun notmuch-search-find-thread-id-region (beg end)
|
(defun notmuch-search-find-thread-id-region (beg end)
|
||||||
"Return a list of threads for the current region"
|
"Return a list of threads for the current region"
|
||||||
|
@ -936,7 +938,7 @@ If `query' is nil, it is read interactively from the minibuffer.
|
||||||
Other optional parameters are used as follows:
|
Other optional parameters are used as follows:
|
||||||
|
|
||||||
oldest-first: A Boolean controlling the sort order of returned threads
|
oldest-first: A Boolean controlling the sort order of returned threads
|
||||||
target-thread: A thread ID (with the thread: prefix) that will be made
|
target-thread: A thread ID (without the thread: prefix) that will be made
|
||||||
current if it appears in the search results.
|
current if it appears in the search results.
|
||||||
target-line: The line number to move to if the target thread does not
|
target-line: The line number to move to if the target thread does not
|
||||||
appear in the search results."
|
appear in the search results."
|
||||||
|
@ -993,7 +995,7 @@ same relative position within the new buffer."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((target-line (line-number-at-pos))
|
(let ((target-line (line-number-at-pos))
|
||||||
(oldest-first notmuch-search-oldest-first)
|
(oldest-first notmuch-search-oldest-first)
|
||||||
(target-thread (notmuch-search-find-thread-id))
|
(target-thread (notmuch-search-find-thread-id 'bare))
|
||||||
(query notmuch-search-query-string)
|
(query notmuch-search-query-string)
|
||||||
(continuation notmuch-search-continuation))
|
(continuation notmuch-search-continuation))
|
||||||
(notmuch-kill-this-buffer)
|
(notmuch-kill-this-buffer)
|
||||||
|
|
Loading…
Reference in a new issue