Synch with Gnus.
authoryamaoka <yamaoka>
Tue, 7 Nov 2000 07:57:11 +0000 (07:57 +0000)
committeryamaoka <yamaoka>
Tue, 7 Nov 2000 07:57:11 +0000 (07:57 +0000)
lisp/ChangeLog
lisp/gnus-mlspl.el
texi/gnus-ja.texi
texi/gnus.texi
todo

index 94b638c..a92b3bf 100644 (file)
@@ -1,3 +1,7 @@
+2000-02-02 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+
+       * gnus-mlspl.el: Documentation tweaks.
+       
 2000-11-06 22:06:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * mm-decode.el (mm-possibly-verify-or-decrypt): Fix.  
index 3f7d012..46ccc99 100644 (file)
 (require 'nnmail)
 
 (defvar gnus-group-split-updated-hook nil
-  "Hook called just after nnmail-split-fancy is updated by gnus-group-split-update.")
+  "Hook called just after nnmail-split-fancy is updated by
+gnus-group-split-update.")
 
 (defvar gnus-group-split-default-catch-all-group "mail.misc"
-  "Group used by gnus-group-split and gnus-group-split-update as default catch-all group.")
+  "Group name (or arbitrary fancy split) with default splitting rules.
+Used by gnus-group-split and gnus-group-split-update as a fallback
+split, in case none of the group-based splits matches.")
 
 ;;;###autoload
 (defun gnus-group-split-setup (&optional auto-update catch-all)
@@ -42,7 +45,18 @@ group parameters.
 If AUTO-UPDATE is non-nil (prefix argument accepted, if called
 interactively), it makes sure nnmail-split-fancy is re-computed before
 getting new mail, by adding gnus-group-split-update to
-nnmail-pre-get-new-mail-hook."
+nnmail-pre-get-new-mail-hook.
+
+A non-nil CATCH-ALL replaces the current value of
+gnus-group-split-default-catch-all-group.  This variable is only used
+by gnus-group-split-update, and only when its CATCH-ALL argument is
+nil.  This argument may contain any fancy split, that will be added as
+the last split in a `|' split produced by gnus-group-split-fancy,
+unless overridden by any group marked as a catch-all group.  Typical
+uses are as simple as the name of a default mail group, but more
+elaborate fancy splits may also be useful to split mail that doesn't
+match any of the group-specified splitting rules.  See
+gnus-group-split-fancy for details."
   (interactive "P")
   (setq nnmail-split-methods 'nnmail-split-fancy)
   (when catch-all
@@ -53,8 +67,11 @@ nnmail-pre-get-new-mail-hook."
 
 ;;;###autoload
 (defun gnus-group-split-update (&optional catch-all)
-  "Computes nnmail-split-fancy from group params.
-It does this by calling \(gnus-group-split-fancy nil CROSSPOST DEFAULTGROUP)."
+  "Computes nnmail-split-fancy from group params and CATCH-ALL, by
+calling (gnus-group-split-fancy nil nil CATCH-ALL).
+
+If CATCH-ALL is nil, gnus-group-split-default-catch-all-group is used
+instead.  This variable is set by gnus-group-split-setup."
   (interactive)
   (setq nnmail-split-fancy
        (gnus-group-split-fancy
@@ -67,13 +84,9 @@ It does this by calling \(gnus-group-split-fancy nil CROSSPOST DEFAULTGROUP)."
   "Uses information from group parameters in order to split mail.
 See gnus-group-split-fancy for more information.
 
-If no group is defined as catch-all, the value of
-gnus-group-split-default-catch-all-group is used.
-
 gnus-group-split is a valid value for nnmail-split-methods."
   (let (nnmail-split-fancy)
-    (gnus-group-split-update
-     gnus-group-split-default-catch-all-group)
+    (gnus-group-split-update)
     (nnmail-split-fancy)))
 
 ;;;###autoload
@@ -92,11 +105,6 @@ if NO-CROSSPOST is ommitted or nil, a & split will be returned,
 otherwise, a | split, that does not allow crossposting, will be
 returned.
 
-if CATCH-ALL is not nil, and there is no selected group whose
-SPLIT-REGEXP matches the empty string, nor is there a selected group
-whose SPLIT-SPEC is 'catch-all, this group name will be appended to
-the returned SPLIT list, as the last element in a '| SPLIT.
-
 For each selected group, a SPLIT is composed like this: if SPLIT-SPEC
 is specified, this split is returned as-is (unless it is nil: in this
 case, the group is ignored).  Otherwise, if TO-ADDRESS, TO-LIST and/or
@@ -106,6 +114,13 @@ SPLIT-REGEXP is specified, the regexp will be extended so that it
 matches this regexp too, and if SPLIT-EXCLUDE is specified, RESTRICT
 clauses will be generated.
 
+If CATCH-ALL is nil, no catch-all handling is performed, regardless of
+catch-all marks in group parameters.  Otherwise, if there is no
+selected group whose SPLIT-REGEXP matches the empty string, nor is
+there a selected group whose SPLIT-SPEC is 'catch-all, this fancy
+split (say, a group name) will be appended to the returned SPLIT list,
+as the last element of a '| SPLIT.
+
 For example, given the following group parameters:
 
 nnml:mail.bar:
index 01f53bf..2aba2da 100644 (file)
@@ -11294,8 +11294,12 @@ table) \e$B$K=>$C$F40A4$K9gCW$7$J$1$l$P$J$j$^$;$s!#@55,I=8=$G%U%#!<%k%IL>$+\e(B
 \e$B$O\e(B @code{gnus-group-split-default-catch-all-group} \e$B$G;XDj$5$l$F$$$k%0%k!<\e(B
 \e$B%W$KJ]B8$5$l$^$9!#\e(B@var{split-spec} \e$B$,\e(B @code{catch-all} \e$B$K@_Dj$5$l$F$$$k\e(B
 \e$B%0%k!<%W$,$"$k>l9g$O!"$=$N%0%k!<%W$,A4$F$rJa3M$9$k%0%k!<%W$H$7$F;HMQ$5$l\e(B
-\e$B$^$9!#$3$N>l9g$O!"\e(B@code{|} \e$BFC5iJ,3d$,\e(B @code{&} \e$BJ,3d$HA4$F$rJa3M$9$k%0%k!<\e(B
-\e$B%W$rJDJq$9$k$h$&$K!"Aj8_Ej9F$O9T$o$l$J$$$3$H$KCm0U$7$F$/$@$5$$!#\e(B
+\e$B$^$9!#$3$NJQ?t$O$7$P$7$PC1$K%0%k!<%W$r;XDj$9$k$?$a$K;H$o$l$^$9$,!"G$0U$N\e(B
+\e$BJ#;($JFC5iJ,3d$r$b@_Dj$9$k\e(B (\e$B7k6I!"%0%k!<%WL>$OFC5iJ,3d$J$N$G$9\e(B) \e$B$N$G!"8D\e(B
+\e$B?M$N%a!<%k%U%)%k%@!<$N$I$N%a!<%j%s%0%j%9%H$K$bEv$F$O$^$i$J$$%a!<%k$rJ,3d\e(B
+\e$B$9$k$N$KJXMx$G$7$g$&!#$J$*$3$NFC5iJ,3d$O!"\e(B@code{|} \e$BJ,3d%j%9%H$N:G8e$NMW\e(B
+\e$BAG\e(B - \e$B%0%k!<%W%Q%i%a!<%?$+$iCj=P$5$l$?5,B'$r;}$D\e(B @code{&} \e$BJ,3d$r4^$`\e(B - \e$B$H\e(B
+\e$B$7$FDI2C$5$l$k$3$H$KCm0U$7$F$/$@$5$$!#\e(B
 
 \e$B$=$m$=$mNc$r=P$9$Y$-$G$7$g$&!#0J2<$N%0%k!<%W%Q%i%a!<%?$,Dj5A$5$l$F$$$k$H\e(B
 \e$B$7$^$9\e(B:
@@ -11337,17 +11341,18 @@ nnml:mail.others:
 @var{groups} \e$B$O=PNO$NJ,3d$r@8@.$9$k$?$a$K%Q%i%a!<%?$,Av::$5$l$k%0%k!<%W\e(B
 \e$BL>$N%j%9%H$+@55,I=8=$G$9!#\e(B@var{no-crosspost} \e$B$OAj8_Ej9F$r;HMQ6X;_$K$k$?\e(B
 \e$B$a$K;H$&$3$H$,$G$-$^$9!#$=$N>l9g!"C10l$N\e(B @code{|} \e$BJ,3d$,=PNO$5$l$^$9!#\e(B
-@var{catch-all} \e$B$O=i4|A4Ja3M%0%k!<%W$H$7$F;HMQ$5$l$k%0%k!<%WL>$G$9!#\e(B
-@var{catch-all} \e$B$,\e(B @code{nil} \e$B$G$"$k$+!"\e(B@var{split-regexp} \e$B$,$I$l$+$NA*\e(B
-\e$BBr$5$l$?%0%k!<%W6uJ8;zNs$K9gCW$9$k$H!"A4Ja3MJ,3d$O9T$o$l$^$;$s!#$=$&$G$J\e(B
-\e$B$$>l9g!"%0%k!<%W$K\e(B @var{split-spec} \e$B$,\e(B @code{catch-all} \e$B$K@_Dj$5$l$F$$$k\e(B
-\e$B$b$N$,$"$k$H!"$3$N%0%k!<%W$,\e(B @var{catch-all} \e$B0z?t$r>e=q$-$7$^$9!#\e(B
+@var{catch-all} \e$B$O\e(B @var{gnus-group-split-default-catch-all-group} \e$B$N$h$&\e(B
+\e$B$K!":G8e$N<jCJ$H$7$F;H$o$l$kFC5iJ,3d$G$9!#\e(B@var{catch-all} \e$B$,\e(B @code{nil} \e$B$G\e(B
+\e$B$"$k$+!"\e(B@var{split-regexp} \e$B$,$I$l$+$NA*Br$5$l$?%0%k!<%W6uJ8;zNs$K9gCW$9\e(B
+\e$B$k$H!"A4Ja3MJ,3d$O9T$o$l$^$;$s!#$=$&$G$J$$>l9g!"%0%k!<%W\e(B
+\e$B$K\e(B @var{split-spec} \e$B$,\e(B @code{catch-all} \e$B$K@_Dj$5$l$F$$$k$b$N$,$"$k$H!"$3\e(B
+\e$B$N%0%k!<%W$,\e(B @var{catch-all} \e$B0z?t$r>e=q$-$7$^$9!#\e(B
 
 @findex gnus-group-split-setup
 \e$BIT1?$J$3$H$K!"A4$F$N%0%k%W$H%Q%i%a!<%?$rAv::$9$k$3$H$OHs>o$KCY$$$G$9!#FC\e(B
 \e$B$KA4$F$N%a%C%;!<%8$KBP$7$F$J$5$l$k$3$H$r9M$($k$H!#$1$l$I$b!"@dK>$7$J$$\e(B
 \e$B$G\e(B! \e$B4X?t\e(B @code{gnus-group-split-setup} \e$B$,\e(B @code{gnus-group-split} \e$B$r$h$j\e(B
-\e$B$:$C$H8zN(E*$JJ}K!$GA*Br$9$k$h$&$K;H$&$3$H$,$G$-$^$9!#$=$l\e(B
+\e$B$:$C$H8zN(E*$JJ}K!$G;H$&$3$H$,$G$-$^$9!#$=$l\e(B
 \e$B$O\e(B @code{nnmail-split-methods} \e$B$r\e(B @code{nnmail-split-fancy} \e$B$K@_Dj$7!"\e(B
 @code{nnmail-split-fancy} \e$B$r\e(B @code{gnus-group-split-fancy} \e$B$G@8@.$5$l$?\e(B
 \e$BJ,3d$K@_Dj$7$^$9!#$3$&$7$F$I$s$J$KJ,3d$9$k%a%C%;!<%8$,$?$/$5$s$"$C$F$b!"\e(B
@@ -11367,9 +11372,8 @@ nnml:mail.others:
 @var{auto-update} \e$B$,\e(B @code{nil} \e$B$GL5$$$H!"\e(B
 @code{gnus-group-split-update} \e$B$,\e(B @code{nnmail-pre-get-new-mail-hook} \e$B$K\e(B
 \e$BDI2C$5$l!"FsEY$H\e(B @code{nnmail-split-fancy} \e$B$N99?7$r?4G[$9$kI,MW$O$"$j$^\e(B
-\e$B$;$s!#\e(B@var{catch-all} \e$B$r>JN,$7$J$$>l9g$O\e(B (\e$B$=$l$O%*%W%7%g%s$G\e(B
-\e$B$9\e(B) @code{gnus-group-split-default-catch-all-group} \e$B$O$=$NCM$K@_Dj$5$l$^\e(B
-\e$B$9!#\e(B
+\e$B$;$s!#\e(B@var{catch-all} \e$B$r>JN,$7$J$$>l9g$O\e(B (\e$B$=$l$O%*%W%7%g%s$G\e(B nil \e$B$HF1$8\e(B)\e$B!"\e(B
+@code{gnus-group-split-default-catch-all-group} \e$B$O$=$NCM$K@_Dj$5$l$^$9!#\e(B
 
 @vindex gnus-group-split-updated-hook
 @code{nnmail-split-fancy} \e$B$,\e(B @code{gnus-group-split-update} \e$B$G@_Dj$5$l$?\e(B
index 7bbbb71..37c1fcd 100644 (file)
@@ -11856,9 +11856,13 @@ by defining a single @code{&} fancy split containing one split for each
 group.  If a message doesn't match any split, it will be stored in the
 group named in @code{gnus-group-split-default-catch-all-group}, unless
 some group has @var{split-spec} set to @code{catch-all}, in which case
-that group is used as the catch-all group.  Note that, in this case,
-there's no cross-posting, as a @code{|} fancy split encloses the
-@code{&} split and the catch-all group.
+that group is used as the catch-all group.  Even though this variable is
+often used just to name a group, it may also be set to an arbitrarily
+complex fancy split (after all, a group name is a fancy split), and this
+may be useful to split mail that doesn't go to any mailing list to
+personal mail folders.  Note that this fancy split is added as the last
+element of a @code{|} split list that also contains a @code{&} split
+with the rules extracted from group parameters.
 
 It's time for an example.  Assume the following group parameters have
 been defined:
@@ -11899,9 +11903,9 @@ splits like this:
 @var{groups} may be a regular expression or a list of group names whose
 parameters will be scanned to generate the output split.
 @var{no-crosspost} can be used to disable cross-posting; in this case, a
-single @code{|} split will be output.  @var{catch-all} may be the name
-of a group to be used as the default catch-all group.  If
-@var{catch-all} is @code{nil}, or if @var{split-regexp} matches the
+single @code{|} split will be output.  @var{catch-all} is the fallback
+fancy split, used like @var{gnus-group-split-default-catch-all-group}.
+If @var{catch-all} is @code{nil}, or if @var{split-regexp} matches the
 empty string in any selected group, no catch-all split will be issued.
 Otherwise, if some group has @var{split-spec} set to @code{catch-all},
 this group will override the value of the @var{catch-all} argument.
@@ -11910,14 +11914,14 @@ this group will override the value of the @var{catch-all} argument.
 Unfortunately, scanning all groups and their parameters can be quite
 slow, especially considering that it has to be done for every message.
 But don't despair!  The function @code{gnus-group-split-setup} can be
-used to select @code{gnus-group-split} in a much more efficient way.  It
+used to enable @code{gnus-group-split} in a much more efficient way.  It
 sets @code{nnmail-split-methods} to @code{nnmail-split-fancy} and sets
 @code{nnmail-split-fancy} to the split produced by
 @code{gnus-group-split-fancy}.  Thus, the group parameters are only
 scanned once, no matter how many messages are split.
 
 @findex gnus-group-split-update
-However, if you change group parameters, you have to update
+However, if you change group parameters, you'd have to update
 @code{nnmail-split-fancy} manually.  You can do it by running
 @code{gnus-group-split-update}.  If you'd rather have it updated
 automatically, just tell @code{gnus-group-split-setup} to do it for
@@ -11930,7 +11934,7 @@ you.  For example, add to your @file{.gnus}:
 If @var{auto-update} is non-@code{nil}, @code{gnus-group-split-update}
 will be added to @code{nnmail-pre-get-new-mail-hook}, so you won't ever
 have to worry about updating @code{nnmail-split-fancy} again.  If you
-don't omit @var{catch-all} (it's optional),
+don't omit @var{catch-all} (it's optional; same as nil),
 @code{gnus-group-split-default-catch-all-group} will be set to its
 value.
 
diff --git a/todo b/todo
index 2e56251..f3243de 100644 (file)
--- a/todo
+++ b/todo
   should go for both Gnus' own folders and the folders Gnus reads from
   (e.g. /var/spool/mail/${USER}). All backends this makes sense for.
 
+  [John Wiegley's article <200011030445.VAA08277@localhost.dynodns.net>,
+   posted on gnu.emacs.gnus does this.
+   Also, gnus-article-encrypt `K E' encrypts the article body.]
+
 * The stuff on "Newest Features" in the manual should be implemented
   and the node updated (it maybe is?).