Function: gnus-agent-cat-prepare-category-field
gnus-agent-cat-prepare-category-field is a macro defined in
gnus-cus.el.gz.
Signature
(gnus-agent-cat-prepare-category-field PARAMETER)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-cus.el.gz
(defmacro gnus-agent-cat-prepare-category-field (parameter)
(let* ((entry (assq parameter gnus-agent-parameters))
(field (nth 3 entry)))
`(let* ((type (copy-sequence
(nth 1 (assq ',parameter gnus-agent-parameters))))
(val (,field info))
(deflt (if (,field defaults)
(concat " [" (gnus-trim-whitespace
(gnus-pp-to-string (,field defaults)))
"]")))
symb)
(if (eq (car type) 'radio)
(let* ((rtype (nreverse type))
(rt rtype))
(while (listp (or (cadr rt) 'not-list))
(setq rt (cdr rt)))
(setcdr rt (cons '(const :format "Inherit " nil) (cdr rt)))
(setq type (nreverse rtype))))
(if deflt
(let ((tag (cdr (memq :tag type))))
(when (string-match "\n" deflt)
(while (progn (setq deflt (replace-match "\n " t t
deflt))
(string-match "\n" deflt (match-end 0))))
(setq deflt (concat "\n" deflt)))
(setcar tag (concat (car tag) deflt))))
(widget-insert "\n")
(setq val (if val
(widget-create type :value val)
(widget-create type))
symb (set (make-local-variable ',field) val))
(widget-put symb :default val)
(widget-put symb :accessor ',field)
(push symb category-fields))))