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