From 8dbd76a5503a4b9edfd00835fa34ff579b81917f Mon Sep 17 00:00:00 2001 From: yamaoka Date: Tue, 30 Dec 2003 09:54:35 +0000 Subject: [PATCH] Synch to Gnus 200312300519. --- ChangeLog | 4 + README.T-gnus | 2 +- lisp/ChangeLog | 33 ++++- lisp/gnus-agent.el | 33 +++-- lisp/gnus-group.el | 2 +- lisp/gnus-start.el | 32 +++-- lisp/gnus-sum.el | 18 +-- lisp/gnus-vers.el | 6 +- lisp/gnus.el | 18 ++- texi/ChangeLog | 13 ++ texi/gnus-ja.texi | 168 ++++++++++++------------- texi/gnus.texi | 350 +++++++++++++++++++++++++++------------------------- 12 files changed, 381 insertions(+), 298 deletions(-) diff --git a/ChangeLog b/ChangeLog index f770820..64080f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-12-30 Katsumi Yamaoka + + * lisp/gnus-vers.el: T-gnus 6.16.3 revision 00. + 2003-12-25 Katsumi Yamaoka * lisp/pop3.el: Autoload `open-ssl-stream' when compiling. diff --git a/README.T-gnus b/README.T-gnus index fe75d95..0220e48 100644 --- a/README.T-gnus +++ b/README.T-gnus @@ -33,5 +33,5 @@ NEWS: * T-gnus 6.16 - this is based on Gnus. - The latest T-gnus is T-gnus 6.16.3 (based on Gnus 5.10.3). It + The latest T-gnus is T-gnus 6.16.4 (based on Gnus 5.10.4). It requires SEMI 1.14, FLIM 1.14, and APEL 10.0 or later. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3a3713b..7d937e0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,10 +1,37 @@ +2003-12-30 Jesper Harder + + * gnus-sum.el (gnus-summary-make-menu-bar): Add ellipses. + +2003-12-30 Lars Magne Ingebrigtsen + + * gnus-start.el (gnus-get-unread-articles): Inline gnus-server-get-method. + (gnus-get-unread-articles): Cache methods. + (gnus-get-unread-articles-in-group): Indent. + + * gnus.el (gnus-version-number): Bump. + (gnus-secondary-method-p): Extend servers to methods before comparing. + (gnus-secondary-method-p): Revert. + +2003-12-30 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.10.3 is released. + +2003-12-29 Simon Josefsson + + * gnus-agent.el (gnus-agentize): Improve auto-agentizing logic. + Suggested by Steinar Bang . + (gnus-agent-auto-agentize-methods): Customize. + +2003-12-29 Kevin Greiner + * gnus.el (gnus-server-to-method): Fixed bug in 2003-12-22 + check-in. + 2003-12-28 Adrian Lanz - * mail-source.el (mail-source-fetch-imap): This small patch - (against a recent CVS version of mail-source.el) prevents storing + * mail-source.el (mail-source-fetch-imap): Prevent storing of identical entries for imap mail sources, when retrieving mail messages from an imap server within the same Gnus session several - times. + times (tiny change). 2003-12-28 Jesper Harder diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index e87d52e..81f2fd9 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -193,6 +193,13 @@ When found, offer to remove them." :type 'boolean :group 'gnus-agent) +(defcustom gnus-agent-auto-agentize-methods '(nntp nnimap) + "Initially, all servers from these methods are agentized. +The user may remove or add servers using the Server buffer. +See Info node `(gnus)Server Buffer'." + :type '(repeat symbol) + :group 'gnus-agent) + ;;; Internal variables (defvar gnus-agent-history-buffers nil) @@ -221,11 +228,6 @@ NOTES: (defvar gnus-agent-file-loading-cache nil) (defvar gnus-agent-file-header-cache nil) -(defvar gnus-agent-auto-agentize-methods '(nntp nnimap) - "Initially, all servers from these methods are agentized. -The user may remove or add servers using the Server buffer. See Info -node `(gnus)Server Buffer'.") - ;; Dynamic variables (defvar gnus-headers) (defvar gnus-score) @@ -618,19 +620,24 @@ minor mode in all Gnus buffers." (unless gnus-agent-send-mail-function (setq gnus-agent-send-mail-function (or message-send-mail-real-function - message-send-mail-function) + message-send-mail-function) message-send-mail-real-function 'gnus-agent-send-mail)) - (unless gnus-agent-covered-methods + ;; If the servers file doesn't exist, auto-agentize some servers and + ;; save the servers file so this auto-agentizing isn't invoked + ;; again. + (unless (file-exists-p (nnheader-concat gnus-agent-directory "lib/servers")) + (gnus-message 3 "First time agent user, agentizing remote groups...") (mapc (lambda (server-or-method) (let ((method (gnus-server-to-method server-or-method))) - (when (memq (car method) - gnus-agent-auto-agentize-methods) - (push (gnus-method-to-server method) - gnus-agent-covered-methods) - (setq gnus-agent-method-p-cache nil)))) - (cons gnus-select-method gnus-secondary-select-methods)))) + (when (memq (car method) + gnus-agent-auto-agentize-methods) + (push (gnus-method-to-server method) + gnus-agent-covered-methods) + (setq gnus-agent-method-p-cache nil)))) + (cons gnus-select-method gnus-secondary-select-methods)) + (gnus-agent-write-servers))) (defun gnus-agent-queue-setup (&optional group-name) "Make sure the queue group exists. diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 118788c..3d8cfb0 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -1504,7 +1504,7 @@ if it is a string, only list groups matching REGEXP." (active (gnus-active group)) (total (if active (1+ (- (cdr active) (car active))) 0)) (info (nth 2 entry)) - (method (gnus-server-get-method group (gnus-info-method info))) + (method (inline (gnus-server-get-method group (gnus-info-method info)))) (marked (gnus-info-marks info)) (mailp (apply 'append (mapcar diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index ec9adab..122288a 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1557,7 +1557,7 @@ newsgroup." ;; If the agent is enabled, we may have to alter the active info. (when (and gnus-agent info) (gnus-agent-possibly-alter-active - (gnus-info-group info) active)) + (gnus-info-group info) active)) ;; Modify the list of read articles according to what articles ;; are available; then tally the unread articles and add the @@ -1645,7 +1645,10 @@ newsgroup." gnus-activate-foreign-newsgroups) (t 0)) level)) - scanned-methods info group active method retrieve-groups) + (methods-cache nil) + (type-cache nil) + scanned-methods info group active method retrieve-groups cmethod + method-type) (gnus-message 6 "Checking new news...") (while newsrc @@ -1664,12 +1667,25 @@ newsgroup." ;; nil for non-foreign groups that the user has requested not be checked ;; t for unchecked foreign groups or bogus groups, or groups that can't ;; be checked, for one reason or other. - (if (and (setq method (gnus-info-method info)) - (not (inline - (gnus-server-equal - gnus-select-method - (setq method (gnus-server-get-method nil method))))) - (not (gnus-secondary-method-p method))) + (when (setq method (gnus-info-method info)) + (if (setq cmethod (assoc method methods-cache)) + (setq method (cdr cmethod)) + (setq cmethod (inline (gnus-server-get-method nil method))) + (push (cons method cmethod) methods-cache) + (setq method cmethod))) + (when (and method + (not (setq method-type (cdr (assoc method type-cache))))) + (setq method-type + (cond + ((gnus-secondary-method-p method) + 'secondary) + ((inline (gnus-server-equal gnus-select-method method)) + 'primary) + (t + 'foreign))) + (push (cons method method-type) type-cache)) + (if (and method + (eq method-type 'foreign)) ;; These groups are foreign. Check the level. (when (and (<= (gnus-info-level info) foreign-level) (setq active (gnus-activate-group group 'scan))) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 885c42c..166e821 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -2185,20 +2185,20 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs)))) gnus-article-outlook-deuglify-article t]) ) ("Output" - ["Save in default format" gnus-summary-save-article + ["Save in default format..." gnus-summary-save-article ,@(if (featurep 'xemacs) '(t) '(:help "Save article using default method"))] - ["Save in file" gnus-summary-save-article-file + ["Save in file..." gnus-summary-save-article-file ,@(if (featurep 'xemacs) '(t) '(:help "Save article in file"))] - ["Save in Unix mail format" gnus-summary-save-article-mail t] - ["Save in MH folder" gnus-summary-save-article-folder t] - ["Save in VM folder" gnus-summary-save-article-vm t] - ["Save in RMAIL mbox" gnus-summary-save-article-rmail t] - ["Save body in file" gnus-summary-save-article-body-file t] - ["Pipe through a filter" gnus-summary-pipe-output t] + ["Save in Unix mail format..." gnus-summary-save-article-mail t] + ["Save in MH folder..." gnus-summary-save-article-folder t] + ["Save in VM folder..." gnus-summary-save-article-vm t] + ["Save in RMAIL mbox..." gnus-summary-save-article-rmail t] + ["Save body in file..." gnus-summary-save-article-body-file t] + ["Pipe through a filter..." gnus-summary-pipe-output t] ["Add to SOUP packet" gnus-soup-add-article t] - ["Print with Muttprint" gnus-summary-muttprint t] + ["Print with Muttprint..." gnus-summary-muttprint t] ["Print" gnus-summary-print-article t]) ("Backend" ["Respool article..." gnus-summary-respool-article t] diff --git a/lisp/gnus-vers.el b/lisp/gnus-vers.el index 2f1355f..b7c7171 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -34,16 +34,16 @@ (require 'product) (provide 'gnus-vers) -(defconst gnus-revision-number "02" +(defconst gnus-revision-number "00" "Revision number for this version of gnus.") ;; Product information of this gnus. (product-provide 'gnus-vers (product-define "T-gnus" nil - (list 6 16 3 + (list 6 16 4 (string-to-number gnus-revision-number)))) -(defconst gnus-original-version-number "5.10.3" +(defconst gnus-original-version-number "5.10.4" "Version number for this version of Gnus.") (provide 'running-pterodactyl-gnus-0_73-or-later) diff --git a/lisp/gnus.el b/lisp/gnus.el index fc0069d..3446048 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -3360,14 +3360,12 @@ that that variable is buffer-local to the summary buffers." (let (match) (mapcar (lambda (info) - (let* ((info-method (gnus-info-method info)) - (info-server - (if (stringp info-method) - info-method - (gnus-method-to-server info-method)))) - (setq match (or (equal server info-server) - match)))) - (cdr gnus-newsrc-alist)) + (let ((info-method (gnus-info-method info))) + (unless (stringp info-method) + (let ((info-server (gnus-method-to-server info-method))) + (when (equal server info-server) + (setq match info-method)))))) + (cdr gnus-newsrc-alist)) match)))) (when result (push (cons server result) gnus-server-method-cache)) @@ -3580,10 +3578,10 @@ You should probably use `gnus-find-method-for-group' instead." (defsubst gnus-secondary-method-p (method) "Return whether METHOD is a secondary select method." (let ((methods gnus-secondary-select-methods) - (gmethod (gnus-server-get-method nil method))) + (gmethod (inline (gnus-server-get-method nil method)))) (while (and methods (not (gnus-method-equal - (gnus-server-get-method nil (car methods)) + (inline (gnus-server-get-method nil (car methods))) gmethod))) (setq methods (cdr methods))) methods)) diff --git a/texi/ChangeLog b/texi/ChangeLog index 5313f2a..cca4e46 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,16 @@ +2003-12-30 Lars Magne Ingebrigtsen + + * gnus.texi (Maildir): Filled. + (Key Index): Untabified. + +2003-12-29 Lars Magne Ingebrigtsen + + * gnus.texi (Group Parameters): Clarification. + +2003-12-29 Simon Josefsson + + * gnus.texi (Agent Variables): Add. + 2003-12-23 Reiner Steib * gnus.texi (Oort Gnus): Mention change of `e' in draft groups. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index d943693..fbb57b2 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -2838,9 +2838,9 @@ Mailing Lists, message-ja, The Message Manual}) $B$r8+$F2<$5$$!#(B $B$KA^F~$5$l$^$9!#$3$N%Q%i%a!<%?$O0J2<$G@bL@$9$kA4$F$N(B @code{Gcc} $B$N=i4|5,(B $BB'$h$j$bM%@h$5$l$^$9(B (@pxref{Archived Messages})$B!#(B -@strong{$B7Y9p(B}: @code{nntp} $B%5!<%P!<$J$I$N%0%k!<%W(B -$B$G(B @code{(gcc-self . t)} $B$r@_Dj$9$k$H%(%i!<$r0z$-5/$3$7$^$9!#$J$<$J(B -$B$i(B @code{nntp} $B%5!<%P!<$O5-;v$rA0!#4{DjCM(B $B$N(B maildir $B$K(B maildir $B%U%)!<%^%C%H$G%a!<%k$r3JG<$7$^$9!#$3$N%U%)!<%^%C(B $B%H$O(B @uref{http://cr.yp.to/proto/maildir.html} $B$*$h(B $B$S(B @uref{http://www.qmail.org/man/man5/maildir.html} $B$GJ8=q2=$5$l$F$$$^(B -$B$9!#$^$?(B nnmaildir $B$O(B maildir $B$NCf$N(B @file{.nnmaildir/} $B%G%#%l%/%H%j$KFC(B -$BJL$J>pJs$r3JG<$7$^$9!#(B +$B$9!#$^$?(B @code{nnmaildir} $B$O(B maildir $B$NCf$N(B @file{.nnmaildir/} $B%G%#%l%/(B +$B%H%j$KFCJL$J>pJs$r3JG<$7$^$9!#(B Maildir $B%U%)!<%^%C%H$O%m%C%/$rI,MW$H$7$J$$F1;~G[Aw$H9VFI$r2DG=$K$9$k$?$a(B $B$K@_7W$5$l$^$7$?!#B>$N%P%C%/%(%s%I$G$O!"%a!<%k$r2?$i$+$N%9%W!<%k$KEO$7$F(B $B$=$N%9%W!<%k$+$i%0%k!<%W$KJ,3d$9$k$?$a$K(B Gnus $B$r@_Dj$7$J$1$l$P$J$i$J$$$G(B -$B$7$g$&!#$=$l$O:#$^$GDL$j(B nnmaildir $B$G9T$J$&$3$H$,$G$-$^$9$,!"$b$C$H0lHL(B -$BE*$J@_Dj$O(B Gnus $B$N%0%k!<%W$H$7$F8=$o$l$k(B maildir $B$K%a!<%k$rD>@\G[Aw$9$k(B -$B$3$H$G$9!#(B +$B$7$g$&!#$=$l$O:#$^$GDL$j(B @code{nnmaildir} $B$G9T$J$&$3$H$,$G$-$^$9$,!"$b$C(B +$B$H0lHLE*$J@_Dj$O(B Gnus $B$N%0%k!<%W$H$7$F8=$o$l$k(B maildir $B$K%a!<%k$rD>@\G[(B +$BAw$9$k$3$H$G$9!#(B -nnmaildir $B$O40A4$K?.Mj$G$-$k$3$H$rL\;X$7$F$$$^$9(B: @kbd{C-g} $B$O%a%b%j!$l$N(B maildir $B$K3JG<$7(B -$B$^$9!#$=$l$K$h$C$F!"$"$k(B Gnus $B$N4D6-$+$iJL$N>l=j$K(B maildir $BA4BN$r%3%T!<(B -$B$9$k$3$H$,$G$-!"0u$OJ]B8$5$l$^$9!#(B +@code{nnmaildir} $B$O5-;v$N0u$H(B @acronym{NOV} $B%G!<%?$r$=$l$>$l$N(B maildir +$B$K3JG<$7$^$9!#$=$l$K$h$C$F!"$"$k(B Gnus $B$N4D6-$+$iJL$N>l=j$K(B maildir $BA4BN(B +$B$r%3%T!<$9$k$3$H$,$G$-!"0u$OJ]B8$5$l$^$9!#(B $B2>A[%5!<%P!<$N@_Dj(B: @table @code @item directory -$B$=$l$>$l$N(B nnmaildir $B%5!<%P!<(B ($B0l$D$r1[$($k%5!<%P!<$,I,MW$@$H$O$H$F$b;W(B -$B$($^$;$s$,(B) $B$KBP$7$F%G%#%l%/%H%j$r:n$j!"$=$l$r(B maildir $B$^$?$O(B maildir $B$X(B -$B$N%7%s%\%j%C%/%j%s%/$H$7$F$NL\E*$N$?$a$K$9$G$K(B -$B;H$o$l$F$$$k%G%#%l%/%H%j$rA*$s$G$O$$$1$^$;$s(B)$B!#$=$l$>$l$N(B maildir $B$O!"$=(B -$B$N%5!<%P!<$N%K%e!<%9%0%k!<%W$H$7$F(B Gnus $B$K8=$l!"%7%s%\%j%C%/%j%s%/$N%U%!(B -$B%$%kL>$,$=$N%0%k!<%W$NL>A0$K$J$j$^$9!#%G%#%l%/%H%j$K$"$k(B @samp{.} $B$G;O$^(B -$B$k$I$s$J%U%!%$%kL>$bL5;k$5$l$^$9!#%G%#%l%/%H%j$O:G=i$K(B Gnus $B$r5/F0$7$?$H(B -$B$-$H%0%k!<%W%P%C%U%!$G(B @kbd{g} $B$r%?%$%W$7$?$H$-$O$$$D$G$bAv::$5$l!"$I$l(B -$B$+$N(B maildir $B$,:o=|$^$?$ODI2C$5$l$?$H$-$KDLCN$7$^$9!#(B +$B$=$l$>$l$N(B @code{nnmaildir} $B%5!<%P!<(B ($B0l$D$r1[$($k%5!<%P!<$,I,MW$@$H$O$H(B +$B$F$b;W$($^$;$s$,(B) $B$KBP$7$F%G%#%l%/%H%j$r:n$j!"$=$l$r(B maildir $B$^$?(B +$B$O(B maildir $B$X$N%7%s%\%j%C%/%j%s%/$H$7$F$NL\E*(B +$B$N$?$a$K$9$G$K;H$o$l$F$$$k%G%#%l%/%H%j$rA*$s$G$O$$$1$^$;$s(B)$B!#$=$l$>$l(B +$B$N(B maildir $B$O!"$=$N%5!<%P!<$N%K%e!<%9%0%k!<%W$H$7$F(B Gnus $B$K8=$l!"%7%s%\(B +$B%j%C%/%j%s%/$N%U%!%$%kL>$,$=$N%0%k!<%W$NL>A0$K$J$j$^$9!#%G%#%l%/%H%j$K$"(B +$B$k(B @samp{.} $B$G;O$^$k$I$s$J%U%!%$%kL>$bL5;k$5$l$^$9!#%G%#%l%/%H%j$O:G=i(B +$B$K(B Gnus $B$r5/F0$7$?$H$-$H%0%k!<%W%P%C%U%!$G(B @kbd{g} $B$r%?%$%W$7$?$H$-$O$$(B +$B$D$G$bAv::$5$l!"$I$l$+$N(B maildir $B$,:o=|$^$?$ODI2C$5$l$?$H$-(B +$B$K(B @code{nnmaildir} $B$ODLCN$7$^$9!#(B @code{directory} $B%Q%i%a!<%?$NCM$O(B Lisp $B<0$G$J$1$l$P$J$j$^$;$s!#(B @code{eval} $B$G=hM}$5$l$?8e$G!"(B@code{expand-file-name} $B$K$h$C$F$3$N%5!<%P!<(B @@ -14148,7 +14149,7 @@ nnmaildir $B$O5-;v$N0u$H(B @acronym{NOV} $B%G!<%?$r$=$l$>$l$N(B maildir $B$ $BL5MQ(B; $BC1$J$kJ8;zNs$GF0:n$7$^$9(B)$B!#$3$N%Q%i%a!<%?$OG$0U$G$O$J$/!"@_Dj$7$J(B $B$1$l$P$J$j$^$;$s!#(B@code{"~/Mail"} $B$d$=$l$N%5%V%G%#%l%/%H%j$r;H$&$3$H$O?d(B $B>)$G$-$^$;$s!#$$$/$D$+$N(B Gnus $B$NB>$NItJ,$,$=$l$r%G%#%U%)%k%H$G$$$m$s$J$b(B -$B$N$K;H$&$N$G!"(Bnnmaildir $B$G$b$=$l$r;H$&$H:.Mp$9$k$+$b$7$l$^$;$s!#(B +$B$N$K;H$&$N$G!"(B@code{nnmaildir} $B$G$b$=$l$r;H$&$H:.Mp$9$k$+$b$7$l$^$;$s!#(B @code{"~/.nnmaildir"} $B$,0lHLE*$JCM$G$9!#(B @item target-prefix @@ -14157,12 +14158,12 @@ nnmaildir $B$O5-;v$N0u$H(B @acronym{NOV} $B%G!<%?$r$=$l$>$l$N(B maildir $B$ $B$NL>A0$r3MF@$7$^$9!#<0$O%5!<%P!<$,3+DL$7$?$H$-$@$1(B @code{eval} $B$5$l!"$=(B $B$N7k2LF@$i$l$?J8;zNs$,!"%5!<%P!<$,JD$8$i$l$k$^$G;H$o$l$^$9!#(B -nnmaildir $B%5!<%P!<$K%0%k!<%W$r:n$k$H!"$=$NL>A0$NF,(B +@code{nnmaildir} $B%5!<%P!<$K%0%k!<%W$r:n$k$H!"$=$NL>A0$NF,(B $B$K(B @code{target-prefix} $B$,IU2C$5$l$?(B maildir $B$H!"$=$N(B maildir $B$r;X$7<($9(B $B%7%s%\%j%C%/%j%s%/$,AG$N%0%k!<%WL>$NL>A0$G:n@.$5$l$^$9!#$7$?$,$C$F!"(B @code{directory} $B$,(B @code{"~/.nnmaildir"} $B$G!"(B @code{target-prefix} $B$,(B @code{"../maildirs/"} $B$@$C$?>l9g$K(B @code{foo} $B$H(B -$B$$$&%0%k!<%W$r:n$k$H!"(Bnnmaildir $B$O(B maildir $B$H$7(B +$B$$$&%0%k!<%W$r:n$k$H!"(B@code{nnmaildir} $B$O(B maildir $B$H$7(B $B$F(B @file{~/.nnmaildir/../maildirs/foo} $B$r!"(B@file{../maildirs/foo} $B$X$N%7(B $B%s%\%j%C%/%j%s%/$H$7$F(B @file{~/.nnmaildir/foo} $B$r:n@.$7$^$9!#(B @@ -14197,21 +14198,22 @@ nnmaildir $B%5!<%P!<$K%0%k!<%W$r:n$k$H!"$=$NL>A0$NF,(B $B$k(B @code{mail-sources} $B$+$i!"=>Mh$N(B Gnus $B$NJ}K!$G%a!<%k$rJ}$GF1$8(B maildir $B$r;H$C$F(B -$B$O(B @emph{$B$$$1$^$;$s(B}$B!#$=$N7k2L$O1?NI$/M-1W$K$J$k$+$b$7$l$^$;$s$,!"$=$s$J(B -$B0U?^$G$O@_7W$5$l$F$$$^$;$s!#>-Mh$O0c$&7k2L$r$b$?$i$92DG=@-$,$"$j$^$9!#$"(B -$B$J$?$NJ,3d5,B'$,?7$7$$%0%k!<%W$r:n$k$h$&$K$J$C$F$$$k>l9g$O!"(B +@code{mail-sources} $B$H(B @code{nnmaildir} $B%0%k!<%W$NN>J}$GF1$8(B maildir $B$r(B +$B;H$C$F$O(B @emph{$B$$$1$^$;$s(B}$B!#$=$N7k2L$O1?NI$/M-1W$K$J$k$+$b$7$l$^$;$s$,!"(B +$B$=$s$J0U?^$G$O@_7W$5$l$F$$$^$;$s!#>-Mh$O0c$&7k2L$r$b$?$i$92DG=@-$,$"$j$^(B +$B$9!#$"$J$?$NJ,3d5,B'$,?7$7$$%0%k!<%W$r:n$k$h$&$K$J$C$F$$$k>l9g$O!"(B @code{create-directory} $B%5!<%P!<%Q%i%a!<%?$rM?$($k$3$H$rK:$l$J$$$G2<$5$$!#(B @end table @subsubsection $B%0%k!<%W%Q%i%a!<%?(B -nnmaildir $B$O$$$/$D$+$N%0%k!<%W%Q%i%a!<%?$r;H$$$^$9!#$3$l$i$N$9$Y$F$rL5;k(B -$B$7$F$b0BA4$G$9!#%G%#%U%)%k%H$N(B nnmaildir $B$NF0:n$O!"B>$N%a!<%k%P%C%/%(%s(B -$B%I$N%G%#%U%)%k%H(B ($B5-;v$,0l=54V8e$K>C5n$5$l$k!"$J$I(B) $B$HF1$8$G$9!#4|8B@Z$l(B -$B>C5n$N%Q%i%a!<%?$r=|$$$F!"$3$N5!G=$O$9$Y$F(B nnmaildir $B$KFCM-$G$9!#$7$?$,$C(B -$B$F!"JL$N%P%C%/%(%s%I$G$9$G$K9T$C$F$$$kF0:n$rC1$KF'=1$5$;$h$&$H$$$&$N$G$"(B -$B$l$P!"$3$l$rL5;k$9$k$3$H$,$G$-$^$9!#(B +@code{nnmaildir} $B$O$$$/$D$+$N%0%k!<%W%Q%i%a!<%?$r;H$$$^$9!#$3$l$i$N$9$Y(B +$B$F$rL5;k$7$F$b0BA4$G$9!#%G%#%U%)%k%H$N(B @code{nnmaildir} $B$NF0:n$O!"B>$N%a!<(B +$B%k%P%C%/%(%s%I$N%G%#%U%)%k%H(B ($B5-;v$,0l=54V8e$K>C5n$5$l$k!"$J$I(B) $B$HF1$8$G(B +$B$9!#4|8B@Z$l>C5n$N%Q%i%a!<%?$r=|$$$F!"$3$N5!G=$O$9$Y(B +$B$F(B @code{nnmaildir} $B$KFCM-$G$9!#$7$?$,$C$F!"JL$N%P%C%/%(%s%I$G$9$G$K9T$C(B +$B$F$$$kF0:n$rC1$KF'=1$5$;$h$&$H$$$&$N$G$"$l$P!"$3$l$rL5;k$9$k$3$H$,$G$-$^(B +$B$9!#(B $B$3$l$i$N%Q%i%a!<%?$N$&$A$N$I$l$G$b!"$=$NCM$,%Y%/%H%k$G$"$k>l9g$O!"%*%j%8(B $B%J%k$NCM$KBe$o$C$F!"Bh0l$NMWAG$,(B Lisp $B<0$H$7$FI>2A$5$l$?7k2L$,;H$o$l$^$9!#(B @@ -14229,30 +14231,30 @@ nnmaildir $B$O$$$/$D$+$N%0%k!<%W%Q%i%a!<%?$r;H$$$^$9!#$3$l$i$N$9$Y$F$rL5;k(B $B$5$l$F$$$J$$$H!"$$$D$b$N(B @code{nnmail-expiry-wait}(@code{-function}) $BJQ(B $B?t(B (@code{expiry-wait}(@code{-function}) $B%0%k!<%W%Q%i%a!<%?$G>e=q$-$5$l(B $B$k(B) $B$r:G8e$N$h$j$I$3$m$K$7$^$9!#(B3$BF|$NCM$,M_$7$$$J$i$P!"(B@code{[(* 3 24 60 -60)]} $B$N$h$&$J$b$N$r;H$C$F2<$5$$!#(Bnnmaildir $B$O<0$rI>2A$7$F!"$=$N7k2L$r;H(B -$B$$$^$9!#5-;v$No$3$l(B -$B$O5-;v$,G[Aw$5$l$?;~9o$HF1$8$G$9$,!"5-;v$NJT=8$O$=$l$rC5n0J30$N(B) $B5-;v$N0\F0$b$^$?!"5-;v$r2A$7$F!"$=$N(B +$B7k2L$r;H$$$^$9!#5-;v$No$3$l$O5-;v$,G[Aw$5$l$?;~9o$HF1$8$G$9$,!"5-;v$NJT=8$O$=$l$rC5n0J30$N(B) $B5-;v$N0\F0$b$^$?!"5-;v$r(B) $B$G!"$+$D$=$N%Q%i%a!<%?$,F1$8L>A0$N%0%k!<%W$KB0(B $B$5$J$$>l9g!"4|8B@Z$l>C5n$,9T$J$o$l$k:]$K!"5-;v$O>C5n$5$l$kA0$K;XDj$5$l$?(B -$B%0%k!<%W$K0\F0$5$;$i$l$^$9!#(B@emph{$B$3$l$,(B nnmaildir $B%0%k!<%W$K@_Dj$5$l$k(B -$B$H!"0\F0@h$N%0%k!<%W$K$*$$$F!"5-;v$,85$N%0%k!<%W$K$"$C$?$H$-$H$A$g$&$IF1(B -$B$8$@$18E$/$J$j$^$9!#(B} $B$7$?$,$C$F!"0\F0@h$N%0%k!<%W$K$*$1(B +$B%0%k!<%W$K0\F0$5$;$i$l$^$9!#(B@emph{$B$3$l$,(B @code{nnmaildir} $B%0%k!<%W$K@_Dj(B +$B$5$l$k$H!"0\F0@h$N%0%k!<%W$K$*$$$F!"5-;v$,85$N%0%k!<%W$K$"$C$?$H$-$H$A$g(B +$B$&$IF1$8$@$18E$/$J$j$^$9!#(B} $B$7$?$,$C$F!"0\F0@h$N%0%k!<%W$K$*$1(B $B$k(B @code{expire-age} $B$K$OCm0U$7$F2<$5$$!#$3$l$,%Q%i%a!<%?$,B0$9$k$N$HF1(B $B$8%0%k!<%W$NL>A0$K@_Dj$5$l$k$H!"5-;v$O$^$C$?$/4|8B@Z$l>C5n$5$l$^$;$s!#%Y(B $B%/%H%k<0$r;H$&$H!":G=i$NMWAG$,0l2s!"$=$l$>$l$N5-;v$K$D$$$FI>2A$5$l$^$9!#(B $B$7$?$,$C$F!"5-;v$r$I$3$KCV$/$+$r7h$a$k$?$a$K!"$=$N<0(B $B$O(B @code{nnmaildir-article-file-name} $B$J$I$K>H2q$9$k$3$H$,$G$-$^$9!#(B @emph{$B$3$N%Q%i%a!<%?$,@_Dj$5$l$F$$$J$$$H!"(B -nnmaildir $B$O(B @code{expiry-target} $B%0%k!<%W%Q%i%a!<%?(B +@code{nnmaildir} $B$O(B @code{expiry-target} $B%0%k!<%W%Q%i%a!<%?(B $B$d(B @code{nnmail-expiry-target} $BJQ?t$r8\$_$^$;$s!#(B} @item read-only -$B$3$l$,(B @code{t} $B$K@_Dj$5$l$F$$$k$H!"(Bnnmaildir $B$O$=$N5-;v$r$3$N%0%k!<%W$G(B -$BFI$_=P$7@lMQ$H$7$F07$$$^$9!#$3$N0UL#$O!"5-;v$O(B @file{new/} $B$+(B +$B$3$l$,(B @code{t} $B$K@_Dj$5$l$F$$$k$H!"(B@code{nnmaildir} $B$O$=$N5-;v$r$3$N%0(B +$B%k!<%W$GFI$_=P$7@lMQ$H$7$F07$$$^$9!#$3$N0UL#$O!"5-;v$O(B @file{new/} $B$+(B $B$i(B @file{cur/} $B$K2~L>$5$l$J$$!"5-;v$O(B @file{cur/} $B$G$O$J(B $B$/(B @file{new/} $B$G$N$_8+$D$+$k!"5-;v$O>C5n$5$l$J$$!"5-;v$OJT=8$G$-$J$$!"(B $B$H$$$&$3$H$G$9!#(B@file{new/} $B$OB>$N(B maildir $B$N(B @file{new/} $B%G%#%l%/%H%j!"(B @@ -14270,44 +14272,44 @@ nnmaildir $B$O(B @code{expiry-target} $B%0%k!<%W%Q%i%a!<%?(B $BDj$5$l$F$$$k4X?t$G$9!#(B @item distrust-Lines: -$BHs(B-@code{nil} $B$G$"$k$H!"(Bnnmaildir $B$O(B @code{Lines:} $B%X%C%@!<%U%#!<%k%I$r(B -$B;H$&Be$o$j$K$$$D$b5-;v$N9T?t$r?t$($^$9!#(B@code{nil} $B$@$C$?>l9g$O!"$"$l$P(B -$B$=$N%X%C%@!<%U%#!<%k%I$,;H$o$l$^$9!#(B +$BHs(B-@code{nil} $B$G$"$k$H!"(B@code{nnmaildir} $B$O(B @code{Lines:} $B%X%C%@!<%U%#!<(B +$B%k%I$r;H$&Be$o$j$K$$$D$b5-;v$N9T?t$r?t$($^$9!#(B@code{nil} $B$@$C$?>l9g$O!"(B +$B$"$l$P$=$N%X%C%@!<%U%#!<%k%I$,;H$o$l$^$9!#(B @item always-marks @code{['(read expire)]} $B$N$h$&$J0u%7%s%\%k$N%j%9%H$G$9!#(BGnus $B$,5-;v$N0u(B -$B$r(B nnmaildir $B$K?R$M$k$H$-$O$$$D$G$b!"%U%!%$%k%7%9%F%`$K3JG<$5$l$F$$$k0u(B -$B$,2?$G$"$k$+$H$OL54X78$K!"(Bnnmaildir $B$O$9$Y$F$N5-;v$,$3$l$i$N0u$r;}$C$F$$(B -$B$k$HEz$($^$9!#$3$l$O9=A[$r;n$9$?$a$N5!G=$G!"$*$=$i$/7k6I$O:o=|$5$l$k$G$7$g(B -$B$&!#$=$l$O(B Gnus $BK\BN$G9T$o$l$k$+!"$"$k$$$OM-1W$G$J$1$l$PJ|4~$5$l$k$Y$-$G(B -$B$9!#(B +$B$r(B @code{nnmaildir} $B$K?R$M$k$H$-$O$$$D$G$b!"%U%!%$%k%7%9%F%`$K3JG<$5$l$F(B +$B$$$k0u$,2?$G$"$k$+$H$OL54X78$K!"(B@code{nnmaildir} $B$O$9$Y$F$N5-;v$,$3$l$i(B +$B$N0u$r;}$C$F$$$k$HEz$($^$9!#$3$l$O9=A[$r;n$9$?$a$N5!G=$G!"$*$=$i$/7k6I$O(B +$B:o=|$5$l$k$G$7$g$&!#$=$l$O(B Gnus $BK\BN$G9T$o$l$k$+!"$"$k$$$OM-1W$G$J$1$l$P(B +$BJ|4~$5$l$k$Y$-$G$9!#(B @item never-marks @code{['(tick expire)]} $B$N$h$&$J0u%7%s%\%k$N%j%9%H$G$9!#(BGnus $B$,5-;v$N0u(B -$B$r(B nnmaildir $B$K?R$M$k$H$-$O$$$D$G$b!"%U%!%$%k%7%9%F%`$K3JG<$5$l$F$$$k0u(B -$B$,2?$G$"$k$+$H$OL54X78$K!"(Bnnmaildir $B$O$3$l$i$N0u$r;}$C$F$$$k5-;v$OL5$$$H(B -$BEz$($^$9!#(B@code{never-marks} $B$O(B @code{always-marks} $B$r>e=q$-$7$^$9!#$3$l(B -$B$O9=A[$r;n$9$?$a$N5!G=$G!"$*$=$i$/7k6I$O:o=|$5$l$k$G$7$g$&!#$=$l(B -$B$O(B Gnus $BK\BN$G9T$o$l$k$+!"$"$k$$$OM-1W$G$J$1$l$PJ|4~$5$l$k$Y$-$G$9!#(B +$B$r(B @code{nnmaildir} $B$K?R$M$k$H$-$O$$$D$G$b!"%U%!%$%k%7%9%F%`$K3JG<$5$l$F(B +$B$$$k0u$,2?$G$"$k$+$H$OL54X78$K!"(B@code{nnmaildir} $B$O$3$l$i$N0u$r;}$C$F$$(B +$B$k5-;v$OL5$$$HEz$($^$9!#(B@code{never-marks} $B$O(B @code{always-marks} $B$r>e=q(B +$B$-$7$^$9!#$3$l$O9=A[$r;n$9$?$a$N5!G=$G!"$*$=$i$/7k6I$O:o=|$5$l$k$G$7$g$&!#(B +$B$=$l$O(B Gnus $BK\BN$G9T$o$l$k$+!"$"$k$$$OM-1W$G$J$1$l$PJ|4~$5$l$k$Y$-$G$9!#(B @item nov-cache-size @acronym{NOV} $B%a%b%j!<%-%c%C%7%e$N%5%$%:$r;XDj$9$k@0?t$G$9!#%9%T!<%I%"%C(B -$B%W$N$?$a$K!"(Bnnmaildir $B$O$=$l$>$l$N%0%k!<%W$N8BDj$5$l$??t$N5-;v$KBP$7$F!"(B -$B%a%b%j!<>e$K(B @acronym{NOV} $B%G!<%?$rJ];}$7$^$9!#(B($B$3$l$O$?$V$sM-MQ$G$O$J$/!"(B -$B>-Mh$O$*$=$i$/:o=|$5$l$k$G$7$g$&(B)$B!#$3$N%Q%i%a!<%?$NCM$O!"%5!<%P!<$,3+DL(B -$B$7$?8e$G:G=i$K%0%k!<%W$,8+$i$l$?$H$-!"$9$J$o$A0lHL$K$O:G=i$K(B Gnus $B$r5/F0(B -$B$7$?$H$-!"$@$1CmL\$5$l$^$9!#%5!<%P!<$,JD$8$i$l$F:F$S3+DL$5$l$k$^$G$O!"(B -@acronym{NOV} $B%-%c%C%7%e$N%5%$%:$OJQ99$5$l$^$;$s!#%G%#%U%)%k%H$O35N,%P%C(B -$B%U%!$KI=<($5$l$k5-;v$N?t$N8+@Q$j(B (@code{tick} $B0u$,$"$C$F(B @code{read} $B$,(B -$BL5$$5-;v$N?t$K>/!9$NM>J,$r2C$($?$b$N(B) $B$G$9!#(B +$B%W$N$?$a$K!"(B@code{nnmaildir} $B$O$=$l$>$l$N%0%k!<%W$N8BDj$5$l$??t$N5-;v$K(B +$BBP$7$F!"%a%b%j!<>e$K(B @acronym{NOV} $B%G!<%?$rJ];}$7$^$9!#(B($B$3$l$O$?$V$sM-MQ(B +$B$G$O$J$/!">-Mh$O$*$=$i$/:o=|$5$l$k$G$7$g$&(B)$B!#$3$N%Q%i%a!<%?$NCM$O!"%5!<(B +$B%P!<$,3+DL$7$?8e$G:G=i$K%0%k!<%W$,8+$i$l$?$H$-!"$9$J$o$A0lHL$K$O:G=i(B +$B$K(B Gnus $B$r5/F0$7$?$H$-!"$@$1CmL\$5$l$^$9!#%5!<%P!<$,JD$8$i$l$F:F$S3+DL$5(B +$B$l$k$^$G$O!"(B@acronym{NOV} $B%-%c%C%7%e$N%5%$%:$OJQ99$5$l$^$;$s!#%G%#%U%)%k(B +$B%H$O35N,%P%C%U%!$KI=<($5$l$k5-;v$N?t$N8+@Q$j(B (@code{tick} $B0u$,$"$C(B +$B$F(B @code{read} $B$,L5$$5-;v$N?t$K>/!9$NM>J,$r2C$($?$b$N(B) $B$G$9!#(B @end table @subsubsection $B5-;v$N<1JL(B $B5-;v$O$=$l$>$l$N(B maildir $B$N(B @file{cur/} $B%G%#%l%/%H%j$K3JG<$5$l$^$9!#3F!9(B $B$N5-;v$K$O(B @code{uniq:info} $B$N$h$&$JL>A0$,IU$1$i$l$^$9!#$3$3(B -$B$G(B @code{uniq} $B$O%3%m%s$r4^$_$^$;$s!#(Bnnmaildir $B$O(B @code{:info} $B$NItJ,$r(B -$BJ];}$7$^$9$,L5;k$7$^$9!#(B($BB>$N(B maildir $B%j!<%@!<$O0lHL$K0u$r3JG<$9$k$?$a$K(B -$B$3$NItJ,$r;H$$$^$9!#(B) @code{uniq} $B$NItJ,$O5-;v$r%f%K!<%/$K<1JL$7!"(B +$B$G(B @code{uniq} $B$O%3%m%s$r4^$_$^$;$s!#(B@code{nnmaildir} $B$O(B @code{:info} $B$N(B +$BItJ,$rJ];}$7$^$9$,L5;k$7$^$9!#(B($BB>$N(B maildir $B%j!<%@!<$O0lHL$K0u$r3JG<$9$k(B +$B$?$a$K$3$NItJ,$r;H$$$^$9!#(B) @code{uniq} $B$NItJ,$O5-;v$r%f%K!<%/$K<1JL$7!"(B maildir $B$N(B @file{.nnmaildir/} $B%5%V%G%#%l%/%H%j$N?'!9$J>l=j$K5-;v$K4XO"$7(B $B$?>pJs$r3JG<$9$k$?$a$K;H$o$l$^$9!#35N,%P%C%U%!$G5-;v$rMW5a$7$?8e$G!"5-;v(B $B$N40A4$J%Q%9L>$,(B @code{nnmaildir-article-file-name} $BJQ?t$+$iF@$i$l$^$9!#(B @@ -14319,28 +14321,28 @@ maildir $B$N(B @file{.nnmaildir/} $B%5%V%G%#%l%/%H%j$N?'!9$J>l=j$K5-;v$K4XO"$ $BMW$O$"$^$j$"$j$^$;$s!#5-;v$N(B @acronym{NOV} $B%G!<%?$O5-;v(B $B$+(B @code{nnmail-extra-headers} $B$,JQ2=$7$?$H$-$K<+F0E*$K99?7$5$l$^(B $B$9!#(B) $BBP1~$9$k(B @acronym{NOV} $B%U%!%$%k$r$?$@>C$9$3$H$K$h$C$FC10l$N5-;v(B -$B$N(B @acronym{NOV} $B%G!<%?$N@8@.$r(B nnmaildir $B$K6/@)$9$k$3$H$O$G$-$^$9!#$7$+(B -$B$7(B @emph{$B$4MQ?4(B}$B!#$3$l$O(B nnmaildir $B$,$3$N5-;v$K?7$7$$5-;vHV9f$r3d$j?6$i(B -$B$;!"(B@code{seen} $B0u!"%(!<%8%'%s%H!"$*$h$S%-%c%C%7%e$K$H$C$FLLE]$J$3$H$K$J(B -$B$j$^$9!#(B +$B$N(B @acronym{NOV} $B%G!<%?$N@8@.$r(B @code{nnmaildir} $B$K6/@)$9$k$3$H$O$G$-$^(B +$B$9!#$7$+$7(B @emph{$B$4MQ?4(B}$B!#$3$l$O(B @code{nnmaildir} $B$,$3$N5-;v$K?7$7$$5-;v(B +$BHV9f$r3d$j?6$i$;!"(B@code{seen} $B0u!"%(!<%8%'%s%H!"$*$h$S%-%c%C%7%e$K$H$C$F(B +$BLLE]$J$3$H$K$J$j$^$9!#(B @subsubsection $B5-;v$N0u(B @file{.nnmaildir/marks/flag/uniq} $B%U%!%$%k$,$"$k>l9g$K!"(B@code{uniq} $B$K$h$C(B $B$F<1JL$5$l$k5-;v$O!"(B@code{flag} $B0u$r;}$D$b$N$H9M$($i$l$^$9!#(B -Gnus $B$,(B nnmaildir $B$K%0%k!<%W$N0u$r?R$M$k$H!"(Bnnmaildir $B$O$=$N$h$&$J%U%!%$(B -$B%k$rC5$7$F!"8+$D$1$?0u$N%;%C%H$rJs9p$7$^$9!#(BGnus $B$,(B nnmaildir $B$K0u$N%;%C(B -$B%H$N3JG<$rMW5a$9$k$H!"(Bnnmaildir $B$OI,MW$JBP1~$9$k%U%!%$%k$r@8@.$7!"$^$?$O(B -$B>C5n$7$^$9!#(B($B$l$N0u$N$?$a$K?7$7$$%U%!%$%k$r:n$k$N$G$O$J$/!"(B -i$B%N!<%I(B $B$r@aLs$9$k$?$a$KC1$K(B @file{.nnmaildir/markfile} $B$X$N%O!<%I%j%s%/(B -$B$rD%$j$^$9!#(B) +Gnus $B$,(B @code{nnmaildir} $B$K%0%k!<%W$N0u$r?R$M$k$H!"(B@code{nnmaildir} $B$O$=(B +$B$N$h$&$J%U%!%$%k$rC5$7$F!"8+$D$1$?0u$N%;%C%H$rJs9p$7$^$9!#(B +Gnus $B$,(B @code{nnmaildir} $B$K0u$N%;%C%H$N3JG<$rMW5a$9$k$H!"(B +@code{nnmaildir} $B$OI,MW$JBP1~$9$k%U%!%$%k$r@8@.$7!"$^$?$O>C5n$7$^$9!#(B($B$l$N0u$N$?$a$K?7$7$$%U%!%$%k$r:n$k$N$G$O$J$/!"(Bi$B%N!<%I(B $B$r@aLs(B +$B$9$k$?$a$KC1$K(B @file{.nnmaildir/markfile} $B$X$N%O!<%I%j%s%/$rD%$j$^$9!#(B) @file{.nnmaildir/marks/} $B$K?7$7$$%G%#%l%/%H%j$r:n$k$3$H$K$h$C$F!"?7$7$$(B $B0u$rAOB$$9$k$3$H$,$G$-$^$9!#0u$rJ];}$7$D$D(B maildir $B$r(B tar $B$G$^$H$a$F%5!<(B $B%P!<$+$i$=$l$r:o=|$7!"8e$G(B tar $B$r$[$I$/$3$H$,$G$-$^$9!#0u%U%!%$%k$r:n@.(B $B$^$?$O>C5n$9$k$3$H$K$h$C$F!"$"$J$?<+?H$,0u$rDI2C$^$?$O:o=|$9$k$3$H$,$G$-(B -$B$^$9!#(BGnus $B$,F0:n$7$F$$$F(B nnmaildir $B%5!<%P!<$,3+DL$7$F$$$k$H$-$K$3$l$r9T(B -$B$J$&>l9g$O!":G=i$K$9$Y$F$N(B nnmaildir $B%0%k!<%W$N35N,%P%C%U%!$+$iB`=P$7$F(B -$B%0%k!<%W%P%C%U%!$G(B @kbd{s} $B$r%?%$%W$7!"$=$N8e%0%k!<%W%P%C%U%!(B +$B$^$9!#(BGnus $B$,F0:n$7$F$$$F(B @code{nnmaildir} $B%5!<%P!<$,3+DL$7$F$$$k$H$-$K(B +$B$3$l$r9T$J$&>l9g$O!":G=i$K$9$Y$F$N(B @code{nnmaildir} $B%0%k!<%W$N35N,%P%C%U%!(B +$B$+$iB`=P$7$F%0%k!<%W%P%C%U%!$G(B @kbd{s} $B$r%?%$%W$7!"$=$N8e%0%k!<%W%P%C%U%!(B $B$G(B @kbd{g} $B$+(B @kbd{M-g} $B$r%?%$%W$9$k$N$,:GNI$G$9!#$=$&$7$J$$$H(B Gnus $B$OJQ(B $B99$rB*$($F$/$l$:$K!"$=$l$i$r85$KLa$7$F$7$^$&$+$b$7$l$^$;$s!#(B diff --git a/texi/gnus.texi b/texi/gnus.texi index e8e2303..0f495c9 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1360,11 +1360,11 @@ subscribed, and if it matches the latter, it will be ignored. @vindex gnus-auto-subscribed-groups Yet another variable that meddles here is @code{gnus-auto-subscribed-groups}. It works exactly like -@code{gnus-options-subscribe}, and is therefore really superfluous, but I -thought it would be nice to have two of these. This variable is more -meant for setting some ground rules, while the other variable is used -more for user fiddling. By default this variable makes all new groups -that come from mail back ends (@code{nnml}, @code{nnbabyl}, +@code{gnus-options-subscribe}, and is therefore really superfluous, +but I thought it would be nice to have two of these. This variable is +more meant for setting some ground rules, while the other variable is +used more for user fiddling. By default this variable makes all new +groups that come from mail back ends (@code{nnml}, @code{nnbabyl}, @code{nnfolder}, @code{nnmbox}, @code{nnmh}, and @code{nnmaildir}) subscribed. If you don't like that, just set this variable to @code{nil}. @@ -2825,8 +2825,8 @@ be inserted literally as a @code{gcc} header. This parameter takes precedence over any default @code{Gcc} rules as described later (@pxref{Archived Messages}). -@strong{Caveat}: It yields an error putting @code{(gcc-self . t)} in -groups of an @code{nntp} server or so, because an @code{nntp} server +@strong{Caveat}: Adding @code{(gcc-self . t)} to the parameter list of +@code{nntp} groups (or the like) isn't valid. An @code{nntp} server doesn't accept articles. @item auto-expire @@ -6652,16 +6652,16 @@ something like: @item gnus-fetch-old-headers @vindex gnus-fetch-old-headers If non-@code{nil}, gnus will attempt to build old threads by fetching -more old headers---headers to articles marked as read. If you -would like to display as few summary lines as possible, but still -connect as many loose threads as possible, you should set this variable -to @code{some} or a number. If you set it to a number, no more than -that number of extra old headers will be fetched. In either case, -fetching old headers only works if the back end you are using carries -overview files---this would normally be @code{nntp}, @code{nnspool}, +more old headers---headers to articles marked as read. If you would +like to display as few summary lines as possible, but still connect as +many loose threads as possible, you should set this variable to +@code{some} or a number. If you set it to a number, no more than that +number of extra old headers will be fetched. In either case, fetching +old headers only works if the back end you are using carries overview +files---this would normally be @code{nntp}, @code{nnspool}, @code{nnml}, and @code{nnmaildir}. Also remember that if the root of -the thread has been expired by the server, there's not much Gnus can do -about that. +the thread has been expired by the server, there's not much Gnus can +do about that. This variable can also be set to @code{invisible}. This won't have any visible effects, but is useful if you use the @kbd{A T} command a lot @@ -9639,13 +9639,13 @@ then ask Google if that fails: (nnweb "google" (nnweb-type google)))) @end lisp -Most of the mail back ends support fetching by @code{Message-ID}, but do -not do a particularly excellent job at it. That is, @code{nnmbox}, +Most of the mail back ends support fetching by @code{Message-ID}, but +do not do a particularly excellent job at it. That is, @code{nnmbox}, @code{nnbabyl}, @code{nnmaildir}, @code{nnml}, are able to locate articles from any groups, while @code{nnfolder}, and @code{nnimap} are -only able to locate articles that have been posted to the current group. -(Anything else would be too time consuming.) @code{nnmh} does not -support this at all. +only able to locate articles that have been posted to the current +group. (Anything else would be too time consuming.) @code{nnmh} does +not support this at all. @node Alternative Approaches @@ -14836,8 +14836,8 @@ files. @end table @findex nnml-generate-nov-databases -If your @code{nnml} groups and @acronym{NOV} files get totally out of whack, -you can do a complete update by typing @kbd{M-x +If your @code{nnml} groups and @acronym{NOV} files get totally out of +whack, you can do a complete update by typing @kbd{M-x nnml-generate-nov-databases}. This command will trawl through the entire @code{nnml} hierarchy, looking at each and every article, so it might take a while to complete. A better interface to this @@ -14851,9 +14851,10 @@ Commands}). @cindex mh-e mail spool @code{nnmh} is just like @code{nnml}, except that is doesn't generate -@acronym{NOV} databases and it doesn't keep an active file or marks file. -This makes @code{nnmh} a @emph{much} slower back end than @code{nnml}, -but it also makes it easier to write procmail scripts for. +@acronym{NOV} databases and it doesn't keep an active file or marks +file. This makes @code{nnmh} a @emph{much} slower back end than +@code{nnml}, but it also makes it easier to write procmail scripts +for. Virtual server settings: @@ -14872,11 +14873,11 @@ If non-@code{nil}, @code{nnmh} will read incoming mail. The default is @item nnmh-be-safe @vindex nnmh-be-safe If non-@code{nil}, @code{nnmh} will go to ridiculous lengths to make -sure that the articles in the folder are actually what Gnus thinks they -are. It will check date stamps and stat everything in sight, so +sure that the articles in the folder are actually what Gnus thinks +they are. It will check date stamps and stat everything in sight, so setting this to @code{t} will mean a serious slow-down. If you never -use anything but Gnus to read the @code{nnmh} articles, you do not have -to set this variable to @code{t}. The default is @code{nil}. +use anything but Gnus to read the @code{nnmh} articles, you do not +have to set this variable to @code{t}. The default is @code{nil}. @end table @@ -14888,40 +14889,40 @@ to set this variable to @code{t}. The default is @code{nil}. @code{nnmaildir} stores mail in the maildir format, with each maildir corresponding to a group in Gnus. This format is documented here: @uref{http://cr.yp.to/proto/maildir.html} and here: -@uref{http://www.qmail.org/man/man5/maildir.html}. nnmaildir also -stores extra information in the @file{.nnmaildir/} directory within a -maildir. +@uref{http://www.qmail.org/man/man5/maildir.html}. @code{nnmaildir} +also stores extra information in the @file{.nnmaildir/} directory +within a maildir. Maildir format was designed to allow concurrent deliveries and reading, without needing locks. With other back ends, you would have your mail delivered to a spool of some kind, and then you would configure Gnus to split mail from that spool into your groups. You -can still do that with nnmaildir, but the more common configuration is -to have your mail delivered directly to the maildirs that appear as -group in Gnus. +can still do that with @code{nnmaildir}, but the more common +configuration is to have your mail delivered directly to the maildirs +that appear as group in Gnus. -nnmaildir is designed to be perfectly reliable: @kbd{C-g} will never -corrupt its data in memory, and @code{SIGKILL} will never corrupt its -data in the filesystem. +@code{nnmaildir} is designed to be perfectly reliable: @kbd{C-g} will +never corrupt its data in memory, and @code{SIGKILL} will never +corrupt its data in the filesystem. -nnmaildir stores article marks and @acronym{NOV} data in each maildir. So you -can copy a whole maildir from one Gnus setup to another, and you will -keep your marks. +@code{nnmaildir} stores article marks and @acronym{NOV} data in each +maildir. So you can copy a whole maildir from one Gnus setup to +another, and you will keep your marks. Virtual server settings: @table @code @item directory -For each of your nnmaildir servers (it's very unlikely that you'd need -more than one), you need to create a directory and populate it with -maildirs or symlinks to maildirs (and nothing else; do not choose a -directory already used for other purposes). Each maildir will be -represented in Gnus as a newsgroup on that server; the filename of the -symlink will be the name of the group. Any filenames in the directory -starting with @samp{.} are ignored. The directory is scanned when you -first start Gnus, and each time you type @kbd{g} in the group buffer; -if any maildirs have been removed or added, nnmaildir notices at these -times. +For each of your @code{nnmaildir} servers (it's very unlikely that +you'd need more than one), you need to create a directory and populate +it with maildirs or symlinks to maildirs (and nothing else; do not +choose a directory already used for other purposes). Each maildir +will be represented in Gnus as a newsgroup on that server; the +filename of the symlink will be the name of the group. Any filenames +in the directory starting with @samp{.} are ignored. The directory is +scanned when you first start Gnus, and each time you type @kbd{g} in +the group buffer; if any maildirs have been removed or added, +@code{nnmaildir} notices at these times. The value of the @code{directory} parameter should be a Lisp form which is processed by @code{eval} and @code{expand-file-name} to get @@ -14932,7 +14933,8 @@ don't worry---a simple string will work.) This parameter is not optional; you must specify it. I don't recommend using @code{"~/Mail"} or a subdirectory of it; several other parts of Gnus use that directory by default for various things, and may get confused -if nnmaildir uses it too. @code{"~/.nnmaildir"} is a typical value. +if @code{nnmaildir} uses it too. @code{"~/.nnmaildir"} is a typical +value. @item target-prefix This should be a Lisp form which is processed by @code{eval} and @@ -14940,12 +14942,12 @@ This should be a Lisp form which is processed by @code{eval} and server is opened; the resulting string is used until the server is closed. -When you create a group on an nnmaildir server, the maildir is created -with @code{target-prefix} prepended to its name, and a symlink +When you create a group on an @code{nnmaildir} server, the maildir is +created with @code{target-prefix} prepended to its name, and a symlink pointing to that maildir is created, named with the plain group name. So if @code{directory} is @code{"~/.nnmaildir"} and @code{target-prefix} is @code{"../maildirs/"}, then when you create -the group @code{foo}, nnmaildir will create +the group @code{foo}, @code{nnmaildir} will create @file{~/.nnmaildir/../maildirs/foo} as a maildir, and will create @file{~/.nnmaildir/foo} as a symlink pointing to @file{../maildirs/foo}. @@ -14982,20 +14984,21 @@ the conventional Gnus way, from @code{mail-sources} according to value is @code{nil}. Do @emph{not} use the same maildir both in @code{mail-sources} and as -an nnmaildir group. The results might happen to be useful, but that -would be by chance, not by design, and the results might be different -in the future. If your split rules create new groups, remember to -supply a @code{create-directory} server parameter. +an @code{nnmaildir} group. The results might happen to be useful, but +that would be by chance, not by design, and the results might be +different in the future. If your split rules create new groups, +remember to supply a @code{create-directory} server parameter. @end table @subsubsection Group parameters -nnmaildir uses several group parameters. It's safe to ignore all -this; the default behavior for nnmaildir is the same as the default -behavior for other mail back ends: articles are deleted after one week, -etc. Except for the expiry parameters, all this functionality is -unique to nnmaildir, so you can ignore it if you're just trying to -duplicate the behavior you already have with another back end. +@code{nnmaildir} uses several group parameters. It's safe to ignore +all this; the default behavior for @code{nnmaildir} is the same as the +default behavior for other mail back ends: articles are deleted after +one week, etc. Except for the expiry parameters, all this +functionality is unique to @code{nnmaildir}, so you can ignore it if +you're just trying to duplicate the behavior you already have with +another back end. If the value of any of these parameters is a vector, the first element is evaluated as a Lisp form and the result is used, rather than the @@ -15009,15 +15012,15 @@ quote and wrap the value in a vector when appropriate.) @table @code @item expire-age -An integer specifying the minimum age, in seconds, of an article before -it will be expired, or the symbol @code{never} to specify that +An integer specifying the minimum age, in seconds, of an article +before it will be expired, or the symbol @code{never} to specify that articles should never be expired. If this parameter is not set, -nnmaildir falls back to the usual +@code{nnmaildir} falls back to the usual @code{nnmail-expiry-wait}(@code{-function}) variables (overrideable by the @code{expiry-wait}(@code{-function}) group parameters. If you wanted a value of 3 days, you could use something like @code{[(* 3 24 -60 60)]}; nnmaildir will evaluate the form and use the result. An -article's age is measured starting from the article file's +60 60)]}; @code{nnmaildir} will evaluate the form and use the result. +An article's age is measured starting from the article file's modification time. Normally, this is the same as the article's delivery time, but editing an article makes it younger. Moving an article (other than via expiry) may also make an article younger. @@ -15029,30 +15032,30 @@ If this is set to a string such as a full Gnus group name, like @end example and if it is not the name of the same group that the parameter belongs to, then articles will be moved to the specified group during expiry -before being deleted. @emph{If this is set to an nnmaildir group, the -article will be just as old in the destination group as it was in the -source group.} So be careful with @code{expire-age} in the +before being deleted. @emph{If this is set to an @code{nnmaildir} +group, the article will be just as old in the destination group as it +was in the source group.} So be careful with @code{expire-age} in the destination group. If this is set to the name of the same group that the parameter belongs to, then the article is not expired at all. If you use the vector form, the first element is evaluated once for each article. So that form can refer to @code{nnmaildir-article-file-name}, etc., to decide where to put the -article. @emph{If this parameter is not set, nnmaildir does not fall -back to the @code{expiry-target} group parameter or the +article. @emph{If this parameter is not set, @code{nnmaildir} does +not fall back to the @code{expiry-target} group parameter or the @code{nnmail-expiry-target} variable.} @item read-only -If this is set to @code{t}, nnmaildir will treat the articles in this -maildir as read-only. This means: articles are not renamed from -@file{new/} into @file{cur/}; articles are only found in @file{new/}, -not @file{cur/}; articles are never deleted; articles cannot be -edited. @file{new/} is expected to be a symlink to the @file{new/} -directory of another maildir---e.g., a system-wide mailbox containing -a mailing list of common interest. Everything in the maildir outside -@file{new/} is @emph{not} treated as read-only, so for a shared -mailbox, you do still need to set up your own maildir (or have write -permission to the shared mailbox); your maildir just won't contain -extra copies of the articles. +If this is set to @code{t}, @code{nnmaildir} will treat the articles +in this maildir as read-only. This means: articles are not renamed +from @file{new/} into @file{cur/}; articles are only found in +@file{new/}, not @file{cur/}; articles are never deleted; articles +cannot be edited. @file{new/} is expected to be a symlink to the +@file{new/} directory of another maildir---e.g., a system-wide mailbox +containing a mailing list of common interest. Everything in the +maildir outside @file{new/} is @emph{not} treated as read-only, so for +a shared mailbox, you do still need to set up your own maildir (or +have write permission to the shared mailbox); your maildir just won't +contain extra copies of the articles. @item directory-files A function with the same interface as @code{directory-files}. It is @@ -15061,45 +15064,45 @@ group to find articles. The default is the function specified by the server's @code{directory-files} parameter. @item distrust-Lines: -If non-@code{nil}, nnmaildir will always count the lines of an +If non-@code{nil}, @code{nnmaildir} will always count the lines of an article, rather than use the @code{Lines:} header field. If @code{nil}, the header field will be used if present. @item always-marks -A list of mark symbols, such as -@code{['(read expire)]}. Whenever Gnus asks nnmaildir for -article marks, nnmaildir will say that all articles have these -marks, regardless of whether the marks stored in the filesystem -say so. This is a proof-of-concept feature that will probably be -removed eventually; it ought to be done in Gnus proper, or -abandoned if it's not worthwhile. +A list of mark symbols, such as @code{['(read expire)]}. Whenever +Gnus asks @code{nnmaildir} for article marks, @code{nnmaildir} will +say that all articles have these marks, regardless of whether the +marks stored in the filesystem say so. This is a proof-of-concept +feature that will probably be removed eventually; it ought to be done +in Gnus proper, or abandoned if it's not worthwhile. @item never-marks A list of mark symbols, such as @code{['(tick expire)]}. Whenever -Gnus asks nnmaildir for article marks, nnmaildir will say that no -articles have these marks, regardless of whether the marks stored in -the filesystem say so. @code{never-marks} overrides +Gnus asks @code{nnmaildir} for article marks, @code{nnmaildir} will +say that no articles have these marks, regardless of whether the marks +stored in the filesystem say so. @code{never-marks} overrides @code{always-marks}. This is a proof-of-concept feature that will probably be removed eventually; it ought to be done in Gnus proper, or abandoned if it's not worthwhile. @item nov-cache-size -An integer specifying the size of the @acronym{NOV} memory cache. To speed -things up, nnmaildir keeps @acronym{NOV} data in memory for a limited number of -articles in each group. (This is probably not worthwhile, and will -probably be removed in the future.) This parameter's value is noticed -only the first time a group is seen after the server is opened---i.e., -when you first start Gnus, typically. The @acronym{NOV} cache is never resized -until the server is closed and reopened. The default is an estimate -of the number of articles that would be displayed in the summary -buffer: a count of articles that are either marked with @code{tick} or -not marked with @code{read}, plus a little extra. +An integer specifying the size of the @acronym{NOV} memory cache. To +speed things up, @code{nnmaildir} keeps @acronym{NOV} data in memory +for a limited number of articles in each group. (This is probably not +worthwhile, and will probably be removed in the future.) This +parameter's value is noticed only the first time a group is seen after +the server is opened---i.e., when you first start Gnus, typically. +The @acronym{NOV} cache is never resized until the server is closed +and reopened. The default is an estimate of the number of articles +that would be displayed in the summary buffer: a count of articles +that are either marked with @code{tick} or not marked with +@code{read}, plus a little extra. @end table @subsubsection Article identification Articles are stored in the @file{cur/} subdirectory of each maildir. Each article file is named like @code{uniq:info}, where @code{uniq} -contains no colons. nnmaildir ignores, but preserves, the +contains no colons. @code{nnmaildir} ignores, but preserves, the @code{:info} part. (Other maildir readers typically use this part of the filename to store marks.) The @code{uniq} part uniquely identifies the article, and is used in various places in the @@ -15109,36 +15112,37 @@ available in the variable @code{nnmaildir-article-file-name} after you request the article in the summary buffer. @subsubsection NOV data -An article identified by @code{uniq} has its @acronym{NOV} data (used to -generate lines in the summary buffer) stored in +An article identified by @code{uniq} has its @acronym{NOV} data (used +to generate lines in the summary buffer) stored in @code{.nnmaildir/nov/uniq}. There is no @code{nnmaildir-generate-nov-databases} function. (There isn't much -need for it---an article's @acronym{NOV} data is updated automatically when the -article or @code{nnmail-extra-headers} has changed.) You can force -nnmaildir to regenerate the @acronym{NOV} data for a single article simply by -deleting the corresponding @acronym{NOV} file, but @emph{beware}: this will also -cause nnmaildir to assign a new article number for this article, which -may cause trouble with @code{seen} marks, the Agent, and the cache. +need for it---an article's @acronym{NOV} data is updated automatically +when the article or @code{nnmail-extra-headers} has changed.) You can +force @code{nnmaildir} to regenerate the @acronym{NOV} data for a +single article simply by deleting the corresponding @acronym{NOV} +file, but @emph{beware}: this will also cause @code{nnmaildir} to +assign a new article number for this article, which may cause trouble +with @code{seen} marks, the Agent, and the cache. @subsubsection Article marks An article identified by @code{uniq} is considered to have the mark @code{flag} when the file @file{.nnmaildir/marks/flag/uniq} exists. -When Gnus asks nnmaildir for a group's marks, nnmaildir looks for such -files and reports the set of marks it finds. When Gnus asks nnmaildir -to store a new set of marks, nnmaildir creates and deletes the -corresponding files as needed. (Actually, rather than create a new -file for each mark, it just creates hard links to -@file{.nnmaildir/markfile}, to save inodes.) +When Gnus asks @code{nnmaildir} for a group's marks, @code{nnmaildir} +looks for such files and reports the set of marks it finds. When Gnus +asks @code{nnmaildir} to store a new set of marks, @code{nnmaildir} +creates and deletes the corresponding files as needed. (Actually, +rather than create a new file for each mark, it just creates hard +links to @file{.nnmaildir/markfile}, to save inodes.) You can invent new marks by creating a new directory in @file{.nnmaildir/marks/}. You can tar up a maildir and remove it from your server, untar it later, and keep your marks. You can add and remove marks yourself by creating and deleting mark files. If you do -this while Gnus is running and your nnmaildir server is open, it's -best to exit all summary buffers for nnmaildir groups and type @kbd{s} -in the group buffer first, and to type @kbd{g} or @kbd{M-g} in the -group buffer afterwards. Otherwise, Gnus might not pick up the -changes, and might undo them. +this while Gnus is running and your @code{nnmaildir} server is open, +it's best to exit all summary buffers for @code{nnmaildir} groups and +type @kbd{s} in the group buffer first, and to type @kbd{g} or +@kbd{M-g} in the group buffer afterwards. Otherwise, Gnus might not +pick up the changes, and might undo them. @node Mail Folders @@ -15147,10 +15151,10 @@ changes, and might undo them. @cindex mbox folders @cindex mail folders -@code{nnfolder} is a back end for storing each mail group in a separate -file. Each file is in the standard Un*x mbox format. @code{nnfolder} -will add extra headers to keep track of article numbers and arrival -dates. +@code{nnfolder} is a back end for storing each mail group in a +separate file. Each file is in the standard Un*x mbox format. +@code{nnfolder} will add extra headers to keep track of article +numbers and arrival dates. @cindex self contained nnfolder servers @cindex marks @@ -15160,19 +15164,19 @@ similar, and later be able to restore them into Gnus (by adding the proper @code{nnfolder} server) and have all your marks be preserved. Marks for a group is usually stored in a file named as the mbox file with @code{.mrk} concatenated to it (but see -@code{nnfolder-marks-file-suffix}) within the @code{nnfolder} directory. -Individual @code{nnfolder} groups are also possible to backup, use -@kbd{G m} to restore the group (after restoring the backup into the -@code{nnfolder} directory). +@code{nnfolder-marks-file-suffix}) within the @code{nnfolder} +directory. Individual @code{nnfolder} groups are also possible to +backup, use @kbd{G m} to restore the group (after restoring the backup +into the @code{nnfolder} directory). Virtual server settings: @table @code @item nnfolder-directory @vindex nnfolder-directory -All the @code{nnfolder} mail boxes will be stored under this directory. -The default is the value of @code{message-directory} (whose default is -@file{~/Mail}) +All the @code{nnfolder} mail boxes will be stored under this +directory. The default is the value of @code{message-directory} +(whose default is @file{~/Mail}) @item nnfolder-active-file @vindex nnfolder-active-file @@ -15185,16 +15189,16 @@ Format}. The default is @file{~/Mail/newsgroups} @item nnfolder-get-new-mail @vindex nnfolder-get-new-mail -If non-@code{nil}, @code{nnfolder} will read incoming mail. The default -is @code{t} +If non-@code{nil}, @code{nnfolder} will read incoming mail. The +default is @code{t} @item nnfolder-save-buffer-hook @vindex nnfolder-save-buffer-hook @cindex backup files Hook run before saving the folders. Note that Emacs does the normal -backup renaming of files even with the @code{nnfolder} buffers. If you -wish to switch this off, you could say something like the following in -your @file{.emacs} file: +backup renaming of files even with the @code{nnfolder} buffers. If +you wish to switch this off, you could say something like the +following in your @file{.emacs} file: @lisp (defun turn-off-backup () @@ -18469,6 +18473,18 @@ have not been fetched), @code{always-undownloaded} (maneuvering always ignores articles that have not been fetched), @code{unfetched} (maneuvering ignores articles whose headers have not been fetched). +@item gnus-agent-auto-agentize-methods +@vindex gnus-agent-auto-agentize-methods +If you have never used the Agent before (or more technically, if +@file{~/News/agent/lib/servers} does not exist), Gnus will +automatically agentize a few servers for you. This variable control +which backends should be auto-agentized. It is typically only useful +to agentize remote backends. The auto-agentizing has the same effect +as running @kbd{J a} on the servers (@pxref{Server Agent Commands}). +If the file exist, you must manage the servers manually by adding or +removing them, this variable is only applicable the first time you +start Gnus. The default is @samp{(nntp nnimap)}. + @end table @@ -22627,10 +22643,10 @@ Take these split rules (with @code{spam-use-regex-headers} and @example nnimap-split-fancy '(| - (any "ding" "ding") - (: spam-split) - ;; default mailbox - "mail") + (any "ding" "ding") + (: spam-split) + ;; default mailbox + "mail") @end example Now, the problem is that you want all ding messages to make it to the @@ -22647,12 +22663,12 @@ regex-headers check) will be after the ding rule: @example nnimap-split-fancy '(| ;;; all spam detected by spam-use-regex-headers goes to "regex-spam" - (: spam-split "regex-spam" 'spam-use-regex-headers) - (any "ding" "ding") + (: spam-split "regex-spam" 'spam-use-regex-headers) + (any "ding" "ding") ;;; all other spam detected by spam-split goes to spam-split-group - (: spam-split) - ;; default mailbox - "mail") + (: spam-split) + ;; default mailbox + "mail") @end example Basically, this lets you invoke specific @code{spam-split} checks @@ -23236,7 +23252,7 @@ code Add @example - (spam-use-blackbox . spam-check-blackbox) + (spam-use-blackbox . spam-check-blackbox) @end example to @code{spam-list-of-checks}. @@ -23284,7 +23300,7 @@ functionality (lambda (article) (let ((from (spam-fetch-field-from-fast article))) (when (stringp from) - (blackbox-do-something-with-this-spammer from)))) + (blackbox-do-something-with-this-spammer from)))) ;; @r{the ham function} nil)) @@ -23296,7 +23312,7 @@ functionality (lambda (article) (let ((from (spam-fetch-field-from-fast article))) (when (stringp from) - (blackbox-do-something-with-this-ham-sender from)))))) + (blackbox-do-something-with-this-ham-sender from)))))) @end lisp Write the @code{blackbox-do-something-with-this-ham-sender} and @@ -23447,7 +23463,7 @@ spam or it should go into @samp{mail.misc}. If it is spam, then @lisp (setq nnmail-split-fancy `(| (: spam-stat-split-fancy) - "mail.misc")) + "mail.misc")) @end lisp @defvar spam-stat-split-fancy-spam-group @@ -23461,8 +23477,8 @@ expression are considered potential spam. @lisp (setq nnmail-split-fancy `(| ("Subject" "\\bspam-stat\\b" "mail.emacs") - (: spam-stat-split-fancy) - "mail.misc")) + (: spam-stat-split-fancy) + "mail.misc")) @end lisp If you want to filter for spam first, then you must be careful when @@ -23475,7 +23491,7 @@ mails, when creating the dictionary! (setq nnmail-split-fancy `(| (: spam-stat-split-fancy) ("Subject" "\\bspam-stat\\b" "mail.emacs") - "mail.misc")) + "mail.misc")) @end lisp You can combine this with traditional filtering. Here, we move all @@ -23488,9 +23504,9 @@ dictionary! @lisp (setq nnmail-split-fancy `(| ("Content-Type" "text/html" "mail.spam.filtered") - (: spam-stat-split-fancy) + (: spam-stat-split-fancy) ("Subject" "\\bspam-stat\\b" "mail.emacs") - "mail.misc")) + "mail.misc")) @end lisp @@ -25354,10 +25370,10 @@ parameters, a'la: @lisp (setq gnus-parameters '(("mail\\..*" - (gnus-show-threads nil) - (gnus-use-scoring nil)) - ("^nnimap:\\(foo.bar\\)$" - (to-group . "\\1")))) + (gnus-show-threads nil) + (gnus-use-scoring nil)) + ("^nnimap:\\(foo.bar\\)$" + (to-group . "\\1")))) @end lisp @item @@ -25548,7 +25564,7 @@ Add a new format of match like The old format like the lines below is obsolete, but still accepted. @lisp (header "to" "larsi.*org" - (Organization "Somewhere, Inc.")) + (Organization "Somewhere, Inc.")) @end lisp @item -- 1.7.10.4