+2004-10-29 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus-registry.el (gnus-registry-hashtb): create the registry
+ when package is loaded
+
+ * spam.el (spam-summary-score-preferred-header): global preference
+ for people who want to override the default SpamAssassin over
+ Bogofilter preference (when both are set)
+ (spam-necessary-extra-headers): add spam-use-bogofilter as an option
+ (spam-user-format-function-S): check spam-summary-score-preferred-header
+ (spam-extra-header-to-number): add X-Bogosity header parsing
+ (spam-user-format-function-S): format the score correctly
+
2004-10-29 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-msg.el (gnus-configure-posting-styles): Work with empty
:type '(repeat (regexp :tag "Regular expression to match ham body"))
:group 'spam)
+(defcustom spam-summary-score-preferred-header nil
+ "Preferred header to use for spam-summary-score."
+ :type '(choice :tag "Header name"
+ (symbol :tag "SpamAssassin etc" X-Spam-Status)
+ (symbol :tag "Bogofilter" X-Bogosity)
+ (const :tag "No preference, take best guess." nil))
+ :group 'spam)
+
(defgroup spam-ifile nil
"Spam ifile configuration."
:group 'spam)
spam-use-spamassassin-headers
spam-use-regex-headers)
(push 'X-Spam-Status list))
+ (when spam-use-bogofilter
+ (push 'X-Bogosity list))
list))
(defun spam-user-format-function-S (headers)
(when headers
- (spam-summary-score headers)))
+ (format "%3.2f"
+ (spam-summary-score headers spam-summary-score-preferred-header))))
(defun spam-article-sort-by-spam-status (h1 h2)
"Sort articles by score."
result))
(defun spam-extra-header-to-number (header headers)
- "Transform an extra header to a number."
+ "Transform an extra HEADER to a number, using list of HEADERS.
+Note this has to be fast."
(if (gnus-extra-header header headers)
(cond
((eq header 'X-Spam-Status)
;; for CRM checking, it's probably faster to just do the string match
((and spam-use-crm114 (string-match "( pR: \\([0-9.-]+\\)" header))
(match-string 1 header))
+ ((eq header 'X-Bogosity)
+ (string-to-number (gnus-replace-in-string
+ (gnus-replace-in-string
+ (gnus-extra-header header headers)
+ ".*spamicity=" "")
+ ",.*" "")))
(t nil))
nil))