Previously, much of the display of search lines was done in the same function that parsed the CLI's output. Now the parsing function only parses, and notmuch-search-show-result fully inserts the search result in the search buffer. --- emacs/notmuch.el | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index be217a2..dadc6d6 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -726,11 +726,19 @@ non-authors is found, assume that all of the authors match." (insert (format format (propertize tags 'font-lock-face 'notmuch-tag-face)))))) -(defun notmuch-search-show-result (date count authors subject tags) - (dolist (format notmuch-search-result-format) - (notmuch-search-insert-field (car format) (cdr format) - date count authors subject tags)) - (insert "\n")) +(defun notmuch-search-show-result (thread-id date count authors subject tags) + ;; Ignore excluded matches + (unless (eq (aref count 1) ?0) + (let ((beg (point)) + (tags-str (mapconcat 'identity tags " "))) + (dolist (format notmuch-search-result-format) + (notmuch-search-insert-field (car format) (cdr format) + date count authors subject tags-str)) + (insert "\n") + (notmuch-search-color-line beg (point) tags) + (put-text-property beg (point) 'notmuch-search-thread-id thread-id) + (put-text-property beg (point) 'notmuch-search-authors authors) + (put-text-property beg (point) 'notmuch-search-subject subject)))) (defun notmuch-search-process-filter (proc string) "Process and filter the output of \"notmuch search\"" @@ -758,17 +766,10 @@ non-authors is found, assume that all of the authors match." (goto-char (point-max)) (if (/= (match-beginning 1) line) (insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line (match-beginning 1)) "\n"))) - ;; We currently just throw away excluded matches. - (unless (eq (aref count 1) ?0) - (let ((beg (point))) - (notmuch-search-show-result date count authors subject tags) - (notmuch-search-color-line beg (point) tag-list) - (put-text-property beg (point) 'notmuch-search-thread-id thread-id) - (put-text-property beg (point) 'notmuch-search-authors authors) - (put-text-property beg (point) 'notmuch-search-subject subject) - (when (string= thread-id notmuch-search-target-thread) - (set 'found-target beg) - (set 'notmuch-search-target-thread "found")))) + (when (string= thread-id notmuch-search-target-thread) + (set 'found-target (point)) + (set 'notmuch-search-target-thread "found")) + (notmuch-search-show-result thread-id date count authors subject tag-list) (set 'line (match-end 0))) (set 'more nil) (while (and (< line (length string)) (= (elt string line) ?\n)) -- 1.7.10