[PATCH v3 2/9] emacs: Separate search line parsing and display
Austin Clements
amdragon at MIT.EDU
Mon Jul 9 14:42:35 PDT 2012
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 8ad0b68..746d0cb 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -727,11 +727,19 @@ non-authors is found, assume that all of the authors match."
;; depends on the format of this
(insert (concat "(" (propertize tags 'font-lock-face 'notmuch-tag-face) ")")))))
-(defun notmuch-search-show-result (date count authors subject tags)
- (dolist (spec notmuch-search-result-format)
- (notmuch-search-insert-field (car spec) (cdr spec)
- 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 (spec notmuch-search-result-format)
+ (notmuch-search-insert-field (car spec) (cdr spec)
+ 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\""
@@ -759,17 +767,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
More information about the notmuch
mailing list