aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBasil L. Contovounesios2019-05-29 15:53:31 +0100
committerBasil L. Contovounesios2019-05-29 15:57:50 +0100
commit7f3b0d1c0003f3b883a6df3d2fae7f847f6d3070 (patch)
tree4ca64f10af92dc7af92f6dde513e12b165b95e23
parentc89900ebd79d8c4bf5fd5550de053f379abd60ef (diff)
downloademacs-7f3b0d1c0003f3b883a6df3d2fae7f847f6d3070.tar.gz
emacs-7f3b0d1c0003f3b883a6df3d2fae7f847f6d3070.zip
Simplify gnus-or and gnus-and
* 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.
-rw-r--r--lisp/gnus/gnus-art.el9
-rw-r--r--lisp/gnus/gnus-util.el22
2 files changed, 12 insertions, 19 deletions
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 8f0695222cb..0cd34e445cc 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -41,6 +41,7 @@
41(require 'mm-uu) 41(require 'mm-uu)
42(require 'message) 42(require 'message)
43(require 'mouse) 43(require 'mouse)
44(require 'seq)
44 45
45(autoload 'gnus-msg-mail "gnus-msg" nil t) 46(autoload 'gnus-msg-mail "gnus-msg" nil t)
46(autoload 'gnus-button-mailto "gnus-msg") 47(autoload 'gnus-button-mailto "gnus-msg")
@@ -8580,11 +8581,9 @@ For example:
8580 nil) 8581 nil)
8581 (gnus-treat-condition 8582 (gnus-treat-condition
8582 (eq gnus-treat-condition val)) 8583 (eq gnus-treat-condition val))
8583 ((and (listp val) 8584 ((stringp (car-safe val))
8584 (stringp (car val))) 8585 (let ((name (or gnus-newsgroup-name "")))
8585 (apply #'gnus-or (mapcar `(lambda (s) 8586 (seq-some (lambda (s) (string-match-p s name)) val)))
8586 (string-match s ,(or gnus-newsgroup-name "")))
8587 val)))
8588 ((listp val) 8587 ((listp val)
8589 (let ((pred (pop val))) 8588 (let ((pred (pop val)))
8590 (cond 8589 (cond
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index 6b0f29b0afb..e4bc9b900c2 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -34,6 +34,7 @@
34 34
35(eval-when-compile (require 'cl-lib)) 35(eval-when-compile (require 'cl-lib))
36 36
37(require 'seq)
37(require 'time-date) 38(require 'time-date)
38(require 'text-property-search) 39(require 'text-property-search)
39 40
@@ -1160,20 +1161,13 @@ ARG is passed to the first function."
1160 (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t) 1161 (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t)
1161 (text-property-any b e 'gnus-undeletable t))) 1162 (text-property-any b e 'gnus-undeletable t)))
1162 1163
1163(defun gnus-or (&rest elems) 1164(defun gnus-or (&rest elements)
1164 "Return non-nil if any of the elements are non-nil." 1165 "Return non-nil if any one of ELEMENTS is non-nil."
1165 (catch 'found 1166 (seq-drop-while #'null elements))
1166 (while elems 1167
1167 (when (pop elems) 1168(defun gnus-and (&rest elements)
1168 (throw 'found t))))) 1169 "Return non-nil if all ELEMENTS are non-nil."
1169 1170 (not (memq nil elements)))
1170(defun gnus-and (&rest elems)
1171 "Return non-nil if all of the elements are non-nil."
1172 (catch 'found
1173 (while elems
1174 (unless (pop elems)
1175 (throw 'found nil)))
1176 t))
1177 1171
1178;; gnus.el requires mm-util. 1172;; gnus.el requires mm-util.
1179(declare-function mm-disable-multibyte "mm-util") 1173(declare-function mm-disable-multibyte "mm-util")