unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
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	[thread overview]
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

  parent reply	other threads:[~2020-11-16 21:30 UTC|newest]

Thread overview: 72+ 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
2023-10-28  4:22   ` Ryan Tate
2023-10-28  9:32     ` Michael J Gruber
2023-10-29  1:54       ` Ryan Tate
2023-10-29 13:09     ` David Bremner
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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).