+(defun notmuch-search-insert-field (field date count authors subject tags)
+ (cond
+ ((string-equal field "date")
+ (insert (format (cdr (assoc field notmuch-search-result-format)) date)))
+ ((string-equal field "count")
+ (insert (format (cdr (assoc field notmuch-search-result-format)) count)))
+ ((string-equal field "authors")
+ (insert (let* ((format-string (cdr (assoc field notmuch-search-result-format)))
+ (formatted-sample (format format-string ""))
+ (formatted-authors (format format-string authors)))
+ (if (> (length formatted-authors)
+ (length formatted-sample))
+ (concat (substring authors 0 (- (length formatted-sample) 4)) "... ")
+ formatted-authors))))
+ ((string-equal field "subject")
+ (insert (format (cdr (assoc field notmuch-search-result-format)) subject)))
+ ((string-equal field "tags")
+ (insert (concat "(" (propertize tags 'font-lock-face 'notmuch-tag-face) ")")))))
+
+(defun notmuch-search-show-result (date count authors subject tags)
+ (let ((fields) (field))
+ (setq fields (mapcar 'car notmuch-search-result-format))
+ (loop for field in fields
+ do (notmuch-search-insert-field field date count authors subject tags)))
+ (insert "\n"))
+