Function: gnus-group-update-eval-form

gnus-group-update-eval-form is a byte-compiled function defined in gnus-group.el.gz.

Signature

(gnus-group-update-eval-form GROUP LIST)

Documentation

Eval car of each element of LIST, and return the first that return t.

Some value are bound so the form can use them.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-group.el.gz
(defun gnus-group-update-eval-form (group list)
  "Eval `car' of each element of LIST, and return the first that return t.
Some value are bound so the form can use them."
  (when list
    (let* ((entry (gnus-group-entry group))
           (active (gnus-active group))
           (info (nth 1 entry))
           (method (inline (gnus-server-get-method
			    group (gnus-info-method info))))
           (marked (gnus-info-marks info))
	   (env
	    (list
	     (cons 'group group)
	     (cons 'unread (if (numberp (car entry)) (car entry) 0))
	     (cons 'method method)
	     (cons 'total (if active (1+ (- (cdr active) (car active))) 0))
	     (cons 'mailp (apply
			   #'append
			   (mapcar
			    (lambda (x)
			      (memq x (assoc
				       (symbol-name
					(car (or method gnus-select-method)))
				       gnus-valid-select-methods)))
			    '(mail post-mail))))
	     (cons 'level (or (gnus-info-level info) gnus-level-killed))
	     (cons 'score (or (gnus-info-score info) 0))
	     (cons 'ticked (range-length (cdr (assq 'tick marked))))
	     (cons 'group-age (gnus-group-timestamp-delta group)))))
      (while (and list
                  (not (eval (caar list) env)))
        (setq list (cdr list)))
      list)))