]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify gnus-or and gnus-and
authorBasil L. Contovounesios <contovob@tcd.ie>
Wed, 29 May 2019 14:53:31 +0000 (15:53 +0100)
committerBasil L. Contovounesios <contovob@tcd.ie>
Wed, 29 May 2019 14:57:50 +0000 (15:57 +0100)
* lisp/gnus/gnus-art.el: Make implicit seq.el dependency explicit.
(gnus-treat-predicate): Use seq-some in place of mapcar + gnus-or
and evaluate lambda predicate.
* lisp/gnus/gnus-util.el (gnus-or, gnus-and): Simplify.

lisp/gnus/gnus-art.el
lisp/gnus/gnus-util.el

index 8f0695222cb712c82bf15dece04f19767c2eff58..0cd34e445cc882717c0e47bb6f09f220a4bf07d4 100644 (file)
@@ -41,6 +41,7 @@
 (require 'mm-uu)
 (require 'message)
 (require 'mouse)
+(require 'seq)
 
 (autoload 'gnus-msg-mail "gnus-msg" nil t)
 (autoload 'gnus-button-mailto "gnus-msg")
@@ -8580,11 +8581,9 @@ For example:
     nil)
    (gnus-treat-condition
     (eq gnus-treat-condition val))
-   ((and (listp val)
-        (stringp (car val)))
-    (apply #'gnus-or (mapcar `(lambda (s)
-                              (string-match s ,(or gnus-newsgroup-name "")))
-                           val)))
+   ((stringp (car-safe val))
+    (let ((name (or gnus-newsgroup-name "")))
+      (seq-some (lambda (s) (string-match-p s name)) val)))
    ((listp val)
     (let ((pred (pop val)))
       (cond
index 6b0f29b0afba6dbc379523fb95ebfac713a4d7ce..e4bc9b900c21a5c5bfb041057c5e7d407521c3a5 100644 (file)
@@ -34,6 +34,7 @@
 
 (eval-when-compile (require 'cl-lib))
 
+(require 'seq)
 (require 'time-date)
 (require 'text-property-search)
 
@@ -1160,20 +1161,13 @@ ARG is passed to the first function."
       (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t)
     (text-property-any b e 'gnus-undeletable t)))
 
-(defun gnus-or (&rest elems)
-  "Return non-nil if any of the elements are non-nil."
-  (catch 'found
-    (while elems
-      (when (pop elems)
-       (throw 'found t)))))
-
-(defun gnus-and (&rest elems)
-  "Return non-nil if all of the elements are non-nil."
-  (catch 'found
-    (while elems
-      (unless (pop elems)
-       (throw 'found nil)))
-    t))
+(defun gnus-or (&rest elements)
+  "Return non-nil if any one of ELEMENTS is non-nil."
+  (seq-drop-while #'null elements))
+
+(defun gnus-and (&rest elements)
+  "Return non-nil if all ELEMENTS are non-nil."
+  (not (memq nil elements)))
 
 ;; gnus.el requires mm-util.
 (declare-function mm-disable-multibyte "mm-util")