Function: gnus-score-string-convert
gnus-score-string-convert is a byte-compiled function defined in
gnus-cus.el.gz.
Signature
(gnus-score-string-convert WIDGET)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-cus.el.gz
(defun gnus-score-string-convert (widget)
;; Set args appropriately.
(let* ((tag (widget-get widget :tag))
(item `(const :format "" :value ,(downcase tag)))
(match '(string :tag "Match"))
(score '(choice :tag "Score"
(const :tag "default" nil)
(integer :format "%v"
:hide-front-space t)))
(expire '(choice :tag "Expire"
(const :tag "off" nil)
(integer :format "%v"
:hide-front-space t)))
(type '(choice :tag "Type"
:value s
;; I should really create a forgiving :match
;; function for each type below, that only
;; looked at the first letter.
(const :tag "Regexp" r)
(const :tag "Regexp (fixed case)" R)
(const :tag "Substring" s)
(const :tag "Substring (fixed case)" S)
(const :tag "Exact" e)
(const :tag "Exact (fixed case)" E)
(const :tag "Word" w)
(const :tag "Word (fixed case)" W)
(const :tag "default" nil)))
(group `(group ,match ,score ,expire ,type))
(doc (concat (or (widget-get widget :doc)
(concat "Change score based on the " tag
" header.\n"))
"
You can have an arbitrary number of score entries for this header,
each score entry has four elements:
1. The \"match element\". This should be the string to look for in the
header.
2. The \"score element\". This number should be an integer in the
neginf to posinf interval. This number is added to the score
of the article if the match is successful. If this element is
not present, the `gnus-score-interactive-default-score' number
will be used instead. This is 1000 by default.
3. The \"date element\". This date says when the last time this score
entry matched, which provides a mechanism for expiring the
score entries. It this element is not present, the score
entry is permanent. The date is represented by the number of
days since December 31, 1 ce.
4. The \"type element\". This element specifies what function should
be used to see whether this score entry matches the article.
There are the regexp, as well as substring types, and exact match,
and word match types. If this element is not present, Gnus will
assume that substring matching should be used. There is case
sensitive variants of all match types.")))
(widget-put widget :args `(,item
(repeat :inline t
:indent 0
:tag ,tag
:doc ,doc
:format "%t:\n%h%v%i\n\n"
(choice :format "%v"
:value ("" nil nil s)
,group
sexp)))))
widget)