Function: gnus-group-fast-parameter
gnus-group-fast-parameter is a byte-compiled function defined in
gnus.el.gz.
Signature
(gnus-group-fast-parameter GROUP SYMBOL &optional ALLOW-LIST)
Documentation
For GROUP, return the value of SYMBOL.
You should call this in the gnus-group-buffer buffer.
The function gnus-group-find-parameter will do that for you.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus.el.gz
(defun gnus-group-fast-parameter (group symbol &optional allow-list)
"For GROUP, return the value of SYMBOL.
You should call this in the `gnus-group-buffer' buffer.
The function `gnus-group-find-parameter' will do that for you."
;; The speed trick: No cons'ing and quit early.
(let* ((params (funcall gnus-group-get-parameter-function group))
;; Start easy, check the "real" group parameters.
(simple-results
(gnus-group-parameter-value params symbol allow-list t)))
(if simple-results
;; Found results; return them.
(car simple-results)
;; We didn't find it there, try `gnus-parameters'.
(let ((result nil)
(head nil)
(tail gnus-parameters))
;; A good old-fashioned non-cl loop.
(while tail
(setq head (car tail)
tail (cdr tail))
;; The car is regexp matching for matching the group name.
(when (string-match (car head) group)
;; The cdr is the parameters.
(let ((this-result
(gnus-group-parameter-value (cdr head) symbol allow-list t)))
(when this-result
(setq result (car this-result))
;; Expand if necessary.
(cond
((and (stringp result) (string-match "\\\\[0-9&]" result))
(setq result (gnus-expand-group-parameter
(car head) result group)))
;; For `sieve' group parameters, perform substitutions
;; for every string within the match rule (see above).
((eq symbol 'sieve)
(setq result
(mapcar (lambda (elem)
(if (stringp elem)
(gnus-expand-group-parameter (car head)
elem group)
elem))
result))))))))
;; Done.
result))))