Synch to No Gnus 200404021909.
authoryamaoka <yamaoka>
Sat, 3 Apr 2004 00:48:05 +0000 (00:48 +0000)
committeryamaoka <yamaoka>
Sat, 3 Apr 2004 00:48:05 +0000 (00:48 +0000)
lisp/ChangeLog
lisp/spam.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index eda2149..09feac0 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-02  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * spam.el (spam-set-difference): new function to replace
+       gnus-set-difference in spam.el
+       (spam-summary-prepare-exit): use spam-set-difference
+
 2004-03-29  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * gnus-registry.el (gnus-registry-cache-file): updated to use
index f2a1abc..0a4e494 100644 (file)
@@ -718,7 +718,7 @@ Respects the process/prefix convention."
             (new-articles (spam-list-articles
                            gnus-newsgroup-articles
                            classification))
-            (changed-articles (gnus-set-difference new-articles old-articles)))
+            (changed-articles (spam-set-difference new-articles old-articles)))
        ;; now that we have the changed articles, we go through the processors
        (dolist (processor-param spam-list-of-processors)
          (let ((processor (nth 0 processor-param))
@@ -785,6 +785,20 @@ Respects the process/prefix convention."
   (setq spam-old-ham-articles nil)
   (setq spam-old-spam-articles nil))
 
+(defun spam-set-difference (list1 list2)
+  "Return a set difference of LIST1 and LIST2.  
+When either list is nil, the other is returned."
+  (if (and list1 list2)
+      ;; we have two non-nil lists
+      (progn
+       (dolist (item (append list1 list2))
+         (when (and (memq item list1) (memq item list2))
+           (setq list1 (delq item list1))
+           (setq list2 (delq item list2))))
+       (append list1 list2))
+    ;; if either of the lists was nil, return the other one
+    (if list1 list1 list2)))
+
 (defun spam-mark-junk-as-spam-routine ()
   ;; check the global list of group names spam-junk-mailgroups and the
   ;; group parameters
index f3f46ec..f881452 100644 (file)
@@ -1,3 +1,8 @@
+2004-04-02  Teodor Zlatanov  <tzz@lifelogs.com>
+       From Hubert Chan <hubert@uhoreg.ca>
+
+       * gnus.texi (SpamAssassin backend): added new node about SpamAssassin
+
 2004-03-29  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * gnus.texi (Spam ELisp Package Sequence of Events): some clarifications
index 4260d99..e978f34 100644 (file)
@@ -939,6 +939,7 @@ Filtering Spam Using The Spam ELisp Package
 * Blackholes::
 * Regular Expressions Header Matching::
 * Bogofilter::
+* SpamAssassin backend::
 * ifile spam filtering::
 * spam-stat spam filtering::
 * SpamOracle::
@@ -21697,6 +21698,7 @@ Spam \e$B5-;v$r8+$?$H$-$O$$$D$G$b!"%0%k!<%W$rH4$1$kA0$KI,$:\e(B @kbd{M-d} \e$B$G$=$
 * Blackholes::
 * Regular Expressions Header Matching::
 * Bogofilter::
+* SpamAssassin backend::
 * ifile spam filtering::
 * spam-stat spam filtering::
 * SpamOracle::
@@ -22609,6 +22611,59 @@ Bogofilter \e$B$N%a!<%kJ,N`4o$O!"0U?^$HL\E*$NE@$G\e(B @command{ifile} \e$B$K;w$F$$$
 \e$B$S\e(B @code{spam-use-bogofilter-headers} \e$BJQ?t$,Ds6!$5$l$^$9!#$3$N5!G=$r8!::\e(B
 \e$B$9$k$?$a$K\e(B Bogofilter \e$B$N%P!<%8%g%s\e(B 0.9.2.1 \e$B$,;H$o$l$^$7$?!#\e(B
 
+@node SpamAssassin backend
+@subsubsection SpamAssassin backend
+@cindex spam filtering
+@cindex spamassassin, spam filtering
+@cindex spam
+
+@defvar spam-use-spamassassin
+
+@code{spam-split} \e$B$K\e(B SpamAssassin \e$B$r;H$$$?$$>l9g$O!"$3$NJQ?t$r%;%C%H$7$F\e(B
+\e$B2<$5$$!#\e(B
+
+SpamAssassin \e$B$O!"%Y%$%8%"%s%U%#%k%?$rFbJq$9$k5,B'$HJ,@O$N%;%C%H$K4p$E$$\e(B
+\e$B$F!"$=$l$>$l$N5-;v$N%9%3%"$r:[Dj$7$^$9!#%Y%$%8%"%s%U%#%k%?$O!"\e(Bspam \e$B5-;v\e(B
+\e$B$N\e(B @samp{$} \e$B0u$r4XO"$5$;$k$3$H$K$h$j71N}$9$k$3$H$,$G$-$^$9!#\e(BSpam \e$B$N%9%3\e(B
+\e$B%"$O!"35N,%b!<%I$G\e(B @kbd{S t} \e$B%3%^%s%I$r;H$&$3$H$K$h$C$F8+$k$3$H$,$G$-$^\e(B
+\e$B$9!#\e(B
+
+\e$B$3$NJQ?t$r%;%C%H$9$k$H!"$=$l$>$l$N5-;v$O\e(B @code{spam-split} \e$B$,8F$P$l$k$H\e(B
+\e$B$-$K\e(B SpamAssassin \e$B$K$h$C$F=hM}$5$l$^$9!#%a!<%k$,\e(B SpamAssassin \e$B$G=hM}$5$l\e(B
+\e$B$k$h$&$K$J$C$F$$$k>l9g$K!"C1$K\e(B SpamAssassin \e$B%X%C%@!<$r;H$$$?$$$N$J$i$P!"\e(B
+\e$BBe$o$j$K\e(B @code{spam-use-spamassassin-headers} \e$B$r%;%C%H$7$F2<$5$$!#\e(B
+
+@code{spam-use-spamassassin-headers} \e$B$r;H$&>l9g!"$3$l$rM-8z$K$7$F$O$$$1\e(B
+\e$B$^$;$s!#\e(B
+
+@end defvar
+
+@defvar spam-use-spamassassin-headers
+
+\e$B%a!<%k$,\e(B SpamAssassin \e$B$G=hM}$5$l$k$h$&$K$J$C$F$$$k>l9g$K!"\e(B
+SpamAssassin \e$B%X%C%@!<$K4p$E$$$F\e(B @code{spam-split} \e$B$KJ,3d$r9T$J$o$;$?$$$N\e(B
+\e$B$J$i$P!"$3$NJQ?t$r%;%C%H$7$F2<$5$$!#\e(B
+
+@code{spam-use-spamassassin} \e$B$r;H$&>l9g!"$3$l$rM-8z$K$7$F$O$$$1$^$;$s!#\e(B
+
+@end defvar
+
+@defvar spam-spamassassin-path
+
+\e$B$3$NJQ?t$O\e(B SpamAssassin \e$B$N<B9T7A<0$r;X$7$^$9!#\e(B@code{spamd} \e$B$r2TF/$7$F$$\e(B
+\e$B$k$J$i$P!"$h$jB.$$=hM}$N$?$a$K!"$3$NJQ?t$K\e(B @code{spamc} \e$B$N<B9T7A<0$r@_Dj\e(B
+\e$B$9$k$3$H$,$G$-$^$9!#\e(B@code{spamd}/@code{spamc} \e$B$N99$J$k>pJs$O!"\e(B
+SpamAssassin \e$B$N%I%-%e%a%s%H$r8+$F2<$5$$!#\e(B
+
+@end defvar
+
+SpamAssassin \e$B$O!"\e(Bspam \e$B$rF1Dj$9$k$?$a$K9-HO$JJ,@O$r9T$J$&!"6/NO$GM;DL@-$N\e(B
+\e$B$"$k\e(B spam \e$B_I2a4o$G$9!#\e(BSpamAssassin \e$B$,Ds6!$9$k\e(B ham \e$B$H\e(B spam \e$B$N%W%m%;%C%5!<\e(B
+\e$B$r;H$&$+!"$"$k$$$O4{$K$=$l$i$,5-;v$KE,MQ:Q$_$+$I$&$+$r!"\e(B
+@code{spam-use-spamassassin} \e$B$H\e(B @code{spam-use-spamassassin-headers} \e$BJQ\e(B
+\e$B?t$G\e(B @code{spam-split} \e$B$K;X<($7$^$9!#$3$N5!G=$r8!::$9$k$?$a\e(B
+\e$B$K\e(B SpamAssassin \e$B$N%P!<%8%g%s\e(B 2.63 \e$B$,;H$o$l$^$7$?!#\e(B
+
 @node ifile spam filtering
 @subsubsection ifile \e$B$K$h$k\e(B spam \e$B$N_I2a\e(B
 @cindex spam filtering
index 76200e4..77fcd29 100644 (file)
@@ -22541,6 +22541,7 @@ group.
 * Blackholes::                  
 * Regular Expressions Header Matching::  
 * Bogofilter::                  
+* SpamAssassin backend::        
 * ifile spam filtering::        
 * spam-stat spam filtering::    
 * SpamOracle::                  
@@ -23457,6 +23458,59 @@ variables to indicate to spam-split that Bogofilter should either be
 used, or has already been used on the article.  The 0.9.2.1 version of
 Bogofilter was used to test this functionality.
 
+@node SpamAssassin backend
+@subsubsection SpamAssassin backend
+@cindex spam filtering
+@cindex spamassassin, spam filtering
+@cindex spam
+
+@defvar spam-use-spamassassin
+
+Set this variable if you want @code{spam-split} to use SpamAssassin.
+
+SpamAssassin assigns a score to each article based on a set of rules
+and tests, including a Bayesian filter.  The Bayesian filter can be
+trained by associating the @samp{$} mark for spam articles.  The
+spam score can be viewed by using the command @kbd{S t} in summary
+mode.
+
+If you set this variable, each article will be processed by
+SpamAssassin when @code{spam-split} is called.  If your mail is
+preprocessed by SpamAssassin, and you want to just use the
+SpamAssassin headers, set @code{spam-use-spamassassin-headers}
+instead.
+
+You should not enable this is you use
+@code{spam-use-spamassassin-headers}.
+
+@end defvar
+
+@defvar spam-use-spamassassin-headers
+
+Set this variable if your mail is preprocessed by SpamAssassin and
+want @code{spam-split} to split based on the SpamAssassin headers.
+
+You should not enable this is you use @code{spam-use-spamassassin}.
+
+@end defvar
+
+@defvar spam-spamassassin-path
+
+This variable points to the SpamAssassin executable.  If you have
+@code{spamd} running, you can set this variable to the @code{spamc}
+executable for faster processing.  See the SpamAssassin documentation
+for more information on @code{spamd}/@code{spamc}.
+
+@end defvar
+
+SpamAssassin is a powerful and flexible spam filter that uses a wide
+variety of tests to identify spam.  A ham and a spam processors are
+provided, plus the @code{spam-use-spamassassin} and
+@code{spam-use-spamassassin-headers} variables to indicate to
+spam-split that SpamAssassin should be either used, or has already
+been used on the article.  The 2.63 version of SpamAssassin was used
+to test this functionality.
+
 @node ifile spam filtering
 @subsubsection ifile spam filtering
 @cindex spam filtering