-;;; notmuch-query.el --- provide an emacs api to query notmuch
+;;; notmuch-query.el --- provide an emacs api to query notmuch -*- lexical-binding: t -*-
;;
;; Copyright © David Bremner
;;
A thread is a forest or list of trees. A tree is a two element
list where the first element is a message, and the second element
is a possibly empty forest of replies."
- (let ((args '("show" "--format=sexp" "--format-version=4")))
+ (let ((args '("show" "--format=sexp" "--format-version=5")))
(when notmuch-show-process-crypto
(setq args (append args '("--decrypt=true"))))
(setq args (append args search-terms))
(defun notmuch-query-map-aux (mapper function seq)
"Private function to do the actual mapping and flattening."
- (apply 'append
- (mapcar
- (lambda (tree)
- (funcall mapper function tree))
- seq)))
+ (cl-mapcan (lambda (tree)
+ (funcall mapper function tree))
+ seq))
(defun notmuch-query-map-threads (fn threads)
"Apply function FN to every thread in THREADS.
"Apply function FN to every message in TREE.
Flatten results to a list. See the function
`notmuch-query-get-threads' for more information."
- (cons (funcall fn (car tree)) (notmuch-query-map-forest fn (cadr tree))))
+ (cons (funcall fn (car tree))
+ (notmuch-query-map-forest fn (cadr tree))))
;;; Predefined queries