Function: gnus-treat-predicate
gnus-treat-predicate is a byte-compiled function defined in
gnus-art.el.gz.
Signature
(gnus-treat-predicate VAL)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
(defun gnus-treat-predicate (val)
(cond
((null val)
nil)
(gnus-treat-condition
(eq gnus-treat-condition 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
((eq pred 'or)
(apply #'gnus-or (mapcar #'gnus-treat-predicate val)))
((eq pred 'and)
(apply #'gnus-and (mapcar #'gnus-treat-predicate val)))
((eq pred 'not)
(not (gnus-treat-predicate (car val))))
((eq pred 'typep)
(equal (car val) gnus-treat-type))
((functionp pred)
(funcall pred))
(t
(error "%S is not a valid predicate" pred)))))
((eq val t)
t)
((eq val 'head)
nil)
((eq val 'first)
(eq gnus-treat-part-number 1))
((eq val 'last)
(eq gnus-treat-part-number gnus-treat-total-parts))
((numberp val)
(< gnus-treat-length val))
(t
(error "%S is not a valid value" val))))