mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
emacs: Fix notmuch-search-process-filter to handle incomplete lines
This fixes the recently-added emacs-large-search-buffer test. This is as simple as saving any trailing input and then pre-prepending it on the next call. MAny thanks to Thomas Schwinge <thomas@schwinge.name> for tracking down this problem and contributing a preliminary version of this fix.
This commit is contained in:
parent
44d3c57e2a
commit
8a534dc60d
1 changed files with 8 additions and 2 deletions
|
@ -736,6 +736,10 @@ non-authors is found, assume that all of the authors match."
|
|||
do (notmuch-search-insert-field field date count authors subject tags)))
|
||||
(insert "\n"))
|
||||
|
||||
(defvar notmuch-search-process-filter-data nil
|
||||
"Data that has not yet been processed.")
|
||||
(make-variable-buffer-local 'notmuch-search-process-filter-data)
|
||||
|
||||
(defun notmuch-search-process-filter (proc string)
|
||||
"Process and filter the output of \"notmuch search\""
|
||||
(let ((buffer (process-buffer proc))
|
||||
|
@ -745,7 +749,9 @@ non-authors is found, assume that all of the authors match."
|
|||
(save-excursion
|
||||
(let ((line 0)
|
||||
(more t)
|
||||
(inhibit-read-only t))
|
||||
(inhibit-read-only t)
|
||||
(string (concat notmuch-search-process-filter-data string)))
|
||||
(setq notmuch-search-process-filter-data nil)
|
||||
(while more
|
||||
(while (and (< line (length string)) (= (elt string line) ?\n))
|
||||
(setq line (1+ line)))
|
||||
|
@ -775,7 +781,7 @@ non-authors is found, assume that all of the authors match."
|
|||
(while (and (< line (length string)) (= (elt string line) ?\n))
|
||||
(setq line (1+ line)))
|
||||
(if (< line (length string))
|
||||
(insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line) "\n")))
|
||||
(setq notmuch-search-process-filter-data (substring string line)))
|
||||
))))
|
||||
(if found-target
|
||||
(goto-char found-target)))
|
||||
|
|
Loading…
Reference in a new issue