[PATCH 17/27] emacs: remove unnecessary notmuch-remove-if-not

Subject: [PATCH 17/27] emacs: remove unnecessary notmuch-remove-if-not

Date: Sun, 8 Nov 2020 20:03:01 +0100

To: notmuch@notmuchmail.org

Cc:

From: Jonas Bernoulli


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
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: