From: Jonas Bernoulli <jonas@bernoul.li> To: notmuch@notmuchmail.org Subject: [PATCH v2 13/23] emacs: remove unnecessary notmuch-remove-if-not Date: Mon, 16 Nov 2020 22:28:33 +0100 Message-ID: <20201116212843.6420-14-jonas@bernoul.li> (raw) In-Reply-To: <20201116212843.6420-1-jonas@bernoul.li> We could just have switched to using `cl-remove-if-not' instead, but the two uses of the *remove-if-not function are pretty strange to begin with so we refactor to not use any such function at all. --- emacs/notmuch-hello.el | 43 ++++++++++++++++++++---------------------- emacs/notmuch-lib.el | 9 --------- 2 files changed, 20 insertions(+), 32 deletions(-) diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el index f5d9e0ec..fa31694f 100644 --- a/emacs/notmuch-hello.el +++ b/emacs/notmuch-hello.el @@ -21,8 +21,7 @@ ;;; Code: -(eval-when-compile (require 'cl-lib)) - +(require 'cl-lib) (require 'widget) (require 'wid-edit) ; For `widget-forward'. @@ -542,21 +541,19 @@ (defun notmuch-hello-query-counts (query-list &rest options) --batch'. In general we recommend running matching versions of the CLI and emacs interface.")) (goto-char (point-min)) - (notmuch-remove-if-not - #'identity - (mapcar - (lambda (elem) - (let* ((elem-plist (notmuch-hello-saved-search-to-plist elem)) - (search-query (plist-get elem-plist :query)) - (filtered-query (notmuch-hello-filtered-query - search-query (plist-get options :filter))) - (message-count (prog1 (read (current-buffer)) - (forward-line 1)))) - (when (and filtered-query (or (plist-get options :show-empty-searches) - (> message-count 0))) - (setq elem-plist (plist-put elem-plist :query filtered-query)) - (plist-put elem-plist :count message-count)))) - query-list)))) + (cl-mapcan + (lambda (elem) + (let* ((elem-plist (notmuch-hello-saved-search-to-plist elem)) + (search-query (plist-get elem-plist :query)) + (filtered-query (notmuch-hello-filtered-query + search-query (plist-get options :filter))) + (message-count (prog1 (read (current-buffer)) + (forward-line 1)))) + (when (and filtered-query (or (plist-get options :show-empty-searches) + (> message-count 0))) + (setq elem-plist (plist-put elem-plist :query filtered-query)) + (list (plist-put elem-plist :count message-count))))) + query-list))) (defun notmuch-hello-insert-buttons (searches) "Insert buttons for SEARCHES. @@ -698,12 +695,12 @@ (define-derived-mode notmuch-hello-mode fundamental-mode "notmuch-hello" (defun notmuch-hello-generate-tag-alist (&optional hide-tags) "Return an alist from tags to queries to display in the all-tags section." - (mapcar (lambda (tag) - (cons tag (concat "tag:" (notmuch-escape-boolean-term tag)))) - (notmuch-remove-if-not - (lambda (tag) - (not (member tag hide-tags))) - (process-lines notmuch-command "search" "--output=tags" "*")))) + (cl-mapcan (lambda (tag) + (and (not (member tag hide-tags)) + (list (cons tag + (concat "tag:" + (notmuch-escape-boolean-term tag)))))) + (process-lines notmuch-command "search" "--output=tags" "*"))) (defun notmuch-hello-insert-header () "Insert the default notmuch-hello header." diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 8ee3f17f..d7c6b737 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -534,15 +534,6 @@ (defun notmuch-common-do-stash (text) ;; -(defun notmuch-remove-if-not (predicate list) - "Return a copy of LIST with all items not satisfying PREDICATE removed." - (let (out) - (while list - (when (funcall predicate (car list)) - (push (car list) out)) - (setq list (cdr list))) - (nreverse out))) - (defun notmuch-plist-delete (plist property) (let* ((xplist (cons nil plist)) (pred xplist)) -- 2.29.1
next prev parent reply other threads:[~2020-11-16 21:30 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-08 19:02 [PATCH 00/27] Another set up Emacs cleanup Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 01/27] emacs: silence byte-compiler Jonas Bernoulli 2020-11-09 1:09 ` William Casarin 2020-11-11 14:32 ` Jonas Bernoulli 2020-11-11 20:12 ` William Casarin 2020-11-08 19:02 ` [PATCH 02/27] emacs: define notmuch-message-mode-map explicitly Jonas Bernoulli 2020-11-11 20:22 ` William Casarin 2020-11-08 19:02 ` [PATCH 03/27] emacs: add doc-string to notmuch-tree-mode-map Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 04/27] emacs: don't fset keymaps Jonas Bernoulli 2020-11-11 21:08 ` William Casarin 2020-11-12 0:26 ` David Bremner 2020-11-08 19:02 ` [PATCH 05/27] emacs: remove redundant notmuch-hello-trim Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 06/27] emacs: fix old bug in notmuch-mua-mail Jonas Bernoulli 2020-11-15 20:39 ` David Edmondson 2020-11-08 19:02 ` [PATCH 07/27] emacs: remove kludge for Emacs 23 from notmuch-mua-mail Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 08/27] emacs: more cleanup since dropping support for Emacs 24 Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 09/27] emacs: sanitize function that displays version Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 10/27] emacs: define notmuch-hello-url as a constant Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 11/27] emacs: shorten/replace first sentence of a few doc-strings Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 12/27] emacs: place only first sentence on first doc-string line Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 13/27] emacs: place complete " Jonas Bernoulli 2020-11-15 20:45 ` David Edmondson 2020-11-16 20:54 ` Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 14/27] emacs: always use elisp quoting style in doc-strings Jonas Bernoulli 2020-11-08 19:02 ` [PATCH 15/27] emacs: misc doc-string improvements Jonas Bernoulli 2020-11-15 20:48 ` David Edmondson 2020-11-08 19:03 ` [PATCH 16/27] emacs: remove deprecated notmuch-folder command Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 17/27] emacs: remove unnecessary notmuch-remove-if-not Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 18/27] emacs: remove unused notmuch-address-locate-command Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 19/27] emacs: remove unnecessary notmuch-tree-button-activate Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 20/27] emacs: inline notmuch-documentation-first-line Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 21/27] emacs: inline notmuch-split-content-type Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 22/27] emacs: use defvar-local Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 23/27] emacs: use setq-local Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 24/27] emacs: use setq instead set Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 25/27] emacs: do not quote self-quoting t Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 26/27] emacs: avoid binding unnamed commands in keymaps Jonas Bernoulli 2020-11-08 19:03 ` [PATCH 27/27] emacs: various cosmetic improvements Jonas Bernoulli 2020-11-15 22:21 ` David Edmondson 2020-11-16 20:41 ` Jonas Bernoulli 2020-11-16 21:28 ` [PATCH 00/23] Another set up Emacs cleanup Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 01/23] emacs: remove redundant notmuch-hello-trim Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 02/23] emacs: fix old bug in notmuch-mua-mail Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 03/23] emacs: remove kludge for Emacs 23 from notmuch-mua-mail Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 04/23] emacs: more cleanup since dropping support for Emacs 24 Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 05/23] emacs: sanitize function that displays version Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 06/23] emacs: define notmuch-hello-url as a constant Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 07/23] emacs: shorten/replace first sentence of a few doc-strings Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 08/23] emacs: place only first sentence on first doc-string line Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 09/23] emacs: place complete " Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 10/23] emacs: always use elisp quoting style in doc-strings Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 11/23] emacs: misc doc-string improvements Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 12/23] emacs: remove deprecated notmuch-folder command Jonas Bernoulli 2020-11-16 21:28 ` Jonas Bernoulli [this message] 2020-11-16 21:28 ` [PATCH v2 14/23] emacs: remove unused notmuch-address-locate-command Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 15/23] emacs: remove unnecessary notmuch-tree-button-activate Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 16/23] emacs: inline notmuch-documentation-first-line Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 17/23] emacs: inline notmuch-split-content-type Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 18/23] emacs: use defvar-local Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 19/23] emacs: use setq-local Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 20/23] emacs: use setq instead set Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 21/23] emacs: do not quote self-quoting t Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 22/23] emacs: avoid binding unnamed commands in keymaps Jonas Bernoulli 2020-11-16 21:28 ` [PATCH v2 23/23] emacs: various cosmetic improvements Jonas Bernoulli 2020-12-06 21:09 ` David Bremner 2020-12-14 13:15 ` Jonas Bernoulli 2020-12-14 13:39 ` David Bremner 2020-11-16 22:47 ` [PATCH 00/23] Another set up Emacs cleanup David Edmondson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://notmuchmail.org/ * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201116212843.6420-14-jonas@bernoul.li \ --to=jonas@bernoul.li \ --cc=notmuch@notmuchmail.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
unofficial mirror of notmuch@notmuchmail.org This inbox may be cloned and mirrored by anyone: git clone --mirror https://yhetil.org/notmuch/0 notmuch/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 notmuch notmuch/ https://yhetil.org/notmuch \ notmuch@notmuchmail.org public-inbox-index notmuch Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.yhetil.org/yhetil.mail.notmuch.general nntp://news.gmane.io/gmane.mail.notmuch.general AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git