Function: gnus-score-lower-thread

gnus-score-lower-thread is a byte-compiled function defined in gnus-score.el.gz.

Signature

(gnus-score-lower-thread THREAD SCORE-ADJUST)

Documentation

Lower the score on THREAD with SCORE-ADJUST.

THREAD is expected to contain a list of the form (PARENT [CHILD1 CHILD2 ...]) where PARENT is a header array and each CHILD is a list of the same form as THREAD. The empty list nil is valid. For each article in the tree, the score of the corresponding entry in gnus-newsgroup-scored is adjusted by SCORE-ADJUST.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-score.el.gz
(defun gnus-score-lower-thread (thread score-adjust)
  "Lower the score on THREAD with SCORE-ADJUST.
THREAD is expected to contain a list of the form `(PARENT [CHILD1
CHILD2 ...])' where PARENT is a header array and each CHILD is a list
of the same form as THREAD.  The empty list nil is valid.  For each
article in the tree, the score of the corresponding entry in
`gnus-newsgroup-scored' is adjusted by SCORE-ADJUST."
  (while thread
    (let ((head (car thread)))
      (if (listp head)
	  ;; handle a child and its descendants
	  (gnus-score-lower-thread head score-adjust)
	;; handle the parent
	(let* ((article (mail-header-number head))
	       (score (assq article gnus-newsgroup-scored)))
	  (if score (setcdr score (+ (cdr score) score-adjust))
	    (push (cons article score-adjust) gnus-newsgroup-scored)))))
    (setq thread (cdr thread))))