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))))