Function: gnus-score-find-alist

gnus-score-find-alist is a byte-compiled function defined in gnus-score.el.gz.

Signature

(gnus-score-find-alist GROUP)

Documentation

Return list of score files for GROUP.

The list is determined from the variable gnus-score-file-alist.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-score.el.gz
(defun gnus-score-find-alist (group)
  "Return list of score files for GROUP.
The list is determined from the variable `gnus-score-file-alist'."
  (let ((alist gnus-score-file-multiple-match-alist)
	score-files)
    ;; if this group has been seen before, return the cached entry
    (if (setq score-files (assoc group gnus-score-file-alist-cache))
	(cdr score-files)		;ensures caching groups with no matches
      ;; handle the multiple match alist
      (while alist
	(when (string-match (caar alist) group)
	  (setq score-files (append (cdar alist) score-files)))
	(setq alist (cdr alist)))
      (setq alist gnus-score-file-single-match-alist)
      ;; handle the single match alist
      (while alist
	(when (string-match (caar alist) group)
	  ;; progn used just in case ("regexp") has no files
	  ;; and score-files is still nil.  -sj
	  ;; this can be construed as a "stop searching here" feature :>
	  ;; and used to simplify regexps in the single-alist
	  (setq score-files (append (cdar alist) score-files))
	  (setq alist nil))
	(setq alist (cdr alist)))
      ;; cache the score files
      (push (cons group score-files) gnus-score-file-alist-cache)
      score-files)))