From d389e2a8c54b269d941aef66e8c0f1b96bfa8f21 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 18 Nov 2002 00:43:54 +0000 Subject: [PATCH] Synch with Oort Gnus. --- lisp/gnus-nocem.el | 2 +- lisp/gnus-sum.el | 2 +- lisp/message.el | 2 +- lisp/nnimap.el | 10 +++++----- lisp/nnlistserv.el | 2 +- lisp/nnweb.el | 2 +- texi/ChangeLog | 5 +++++ texi/gnus-ja.texi | 42 ++++++++++++++++++++++++++++++++++++++++-- texi/gnus.texi | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 9 files changed, 101 insertions(+), 17 deletions(-) diff --git a/lisp/gnus-nocem.el b/lisp/gnus-nocem.el index e0f6a55..38bd552 100644 --- a/lisp/gnus-nocem.el +++ b/lisp/gnus-nocem.el @@ -86,7 +86,7 @@ isn't bound, the message will be used unconditionally." (defcustom gnus-nocem-liberal-fetch nil "*If t try to fetch all messages which have @@NCM in the subject. Otherwise don't fetch messages which have references or whose message-id -matches an previously scanned and verified nocem message." +matches a previously scanned and verified nocem message." :group 'gnus-nocem :type 'boolean) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 206c510..9db5b1b 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -196,7 +196,7 @@ This applies to marking commands as well as other commands that the end of an article. If nil, the marking commands do NOT go to the next unread article -(they go to the next article instead). If `never', commands that +\(they go to the next article instead). If `never', commands that usually go to the next unread article, will go to the next article, whether it is read or not." :group 'gnus-summary-marks diff --git a/lisp/message.el b/lisp/message.el index db1f07b..4ae7fb9 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -5598,7 +5598,7 @@ than 988 characters long, and if they are not, trim them until they are." (when message-auto-save-directory (unless (file-directory-p (directory-file-name message-auto-save-directory)) - (gnus-make-directory message-auto-save-directory)) + (make-directory message-auto-save-directory t)) (if (gnus-alive-p) (setq message-draft-article (nndraft-request-associate-buffer "drafts")) diff --git a/lisp/nnimap.el b/lisp/nnimap.el index a6530b8..72e38fa 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -886,7 +886,7 @@ function is generally only called when Gnus is shutting down." "Update the unseen count in `nnimap-mailbox-info'." (gnus-sethash (gnus-group-prefixed-name group server) - (let ((old (gnus-gethash-safe (gnus-group-prefixed-name group server) + (let ((old (gnus-gethash-safe (gnus-group-prefixed-name group server) nnimap-mailbox-info))) (list (nth 0 old) (nth 1 old) (imap-mailbox-status group 'unseen nnimap-server-buffer) @@ -999,7 +999,7 @@ function is generally only called when Gnus is shutting down." 'asyncgroups 'slowgroups) (list group (imap-mailbox-status-asynch - group '(uidvalidity uidnext unseen) + group '(uidvalidity uidnext unseen) nnimap-server-buffer)))) (dolist (asyncgroup asyncgroups) (let ((group (nth 0 asyncgroup)) @@ -1010,7 +1010,7 @@ function is generally only called when Gnus is shutting down." (nth 0 (gnus-gethash (gnus-group-prefixed-name group server) nnimap-mailbox-info)) - (imap-mailbox-get 'uidvalidity group + (imap-mailbox-get 'uidvalidity group nnimap-server-buffer))) (not (string= (nth 1 (gnus-gethash (gnus-group-prefixed-name @@ -1361,7 +1361,7 @@ function is generally only called when Gnus is shutting down." nnmail-expiry-wait))) (cond ((or force (eq days 'immediate)) (let ((oldarts (imap-search - (concat "UID " + (concat "UID " (imap-range-to-message-set artseq))))) (when oldarts (nnimap-expiry-target oldarts group server) @@ -1380,7 +1380,7 @@ function is generally only called when Gnus is shutting down." (nnimap-expiry-target oldarts group server) (when (imap-message-flags-add (imap-range-to-message-set oldarts) "\\Deleted") - (setq articles (gnus-set-difference + (setq articles (gnus-set-difference articles oldarts))))))))))) ;; return articles not deleted articles) diff --git a/lisp/nnlistserv.el b/lisp/nnlistserv.el index 3098bf0..1008141 100644 --- a/lisp/nnlistserv.el +++ b/lisp/nnlistserv.el @@ -80,7 +80,7 @@ ;;; (defun nnlistserv-kk-create-mapping () - "Perform the search and create an number-to-url alist." + "Perform the search and create a number-to-url alist." (save-excursion (set-buffer nnweb-buffer) (let ((case-fold-search t) diff --git a/lisp/nnweb.el b/lisp/nnweb.el index ece9640..c4bc8c5 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -403,7 +403,7 @@ Valid types include `google', `dejanews', and `gmane'.") (caar map)))) (defun nnweb-google-create-mapping () - "Perform the search and create an number-to-url alist." + "Perform the search and create a number-to-url alist." (save-excursion (set-buffer nnweb-buffer) (erase-buffer) diff --git a/texi/ChangeLog b/texi/ChangeLog index 0d113d2..952944a 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,8 @@ +2002-11-17 Simon Josefsson + + * gnus.texi (Expiring in IMAP): Add. + (Group Parameters): Add reference. + 2002-10-24 ShengHuo ZHU * gnus.texi (RSS): Add gnus-summary-mark-as-read-forward into the diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index d3b6af7..dff0513 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -811,6 +811,7 @@ Browsing the Web @sc{imap} * Splitting in IMAP:: nnimap $B$G%a!<%k$rJ,3d$9$k(B +* Expiring in IMAP:: nnimap $B$K$h$k%a!<%k$N4|8B@Z$l>C5n(B * Editing IMAP ACLs:: $B%a!<%k%\%C%/%9$X$NB>$NMxMQA0$H!"(Bkiboze $B%0%k!<%W$K!V4^$ $B%0%k!<%W%Q%i%a!<%?$K(B @code{(expiry-wait . 10)} $B$N$h$&$JMWAG$,$"$l$P!"$3(B $B$NCM$O5-;v$r;~8B>C5n$9$k$H$-(B $B$K(B @code{nnmail-expiry-wait} $B$H(B @code{nnmail-expiry-wait-function} $B$N@_(B -$BDj$h$j$bM%@h$5$l$^$9!#$3$NCM$O;~8B>C5n$NF|?t(B ($B@0?t$G$"$kI,MW$O$J$$(B) $B$+$b(B -$B$7$/$O(B @code{never} $B$+(B @code{immediate} $B$N%7%s%\%k$r;XDj$G$-$^$9!#(B +$BDj(B (@pxref{Expiring Mail}) $B$h$j$bM%@h$5$l$^$9!#$3$NCM$O;~8B>C5n$NF|(B +$B?t(B ($B@0?t$G$"$kI,MW$O$J$$(B) $B$+$b$7$/$O(B @code{never} $B$+(B @code{immediate} $B$N(B +$B%7%s%\%k$r;XDj$G$-$^$9!#(B @item score-file @cindex score file group parameter @@ -14774,6 +14776,7 @@ nnimap $B$K5-;v$NFbItE*$JF|IU$NBe$o$j$K(B Date: $B$r;H$&$h$&$K$5$;$^$9!#$5$i$ @menu * Splitting in IMAP:: nnimap $B$G%a!<%k$rJ,3d$9$k(B +* Expiring in IMAP:: nnimap $B$K$h$k%a!<%k$N4|8B@Z$l>C5n(B * Editing IMAP ACLs:: $B%a!<%k%\%C%/%9$X$NB>$NMxMQC5n(B +@cindex expiring imap mail + +@sc{nnimap} $B$O40A4$J(B @sc{nnmail} $BM3Mh$N%P%C%/%(%s%I$G$O$"$j$^$;$s$,!"$?(B +$B$$$F$$$N4|8B@Z$l>C5n(B (@pxref{Expiring Mail}) $B$NI8=`5!G=$r%5%]!<%H$7$^$9!#(B +IMAP $B$NJ,3d(B (@pxref{Splitting in IMAP}) $B$G$O(B @sc{nnmail} $B$NJQ?t$rJ#@=$7(B +$B$J$$(B ($BNc$($P(B @var{nnimap-expiry-wait} $B$r@8@.$7$J$$(B) $BE@$,0c$&$N$G$9$,!"(B +@sc{nnmail} $B$NJQ?t$rN.MQ$7$^$9!#0J2<$O(B @sc{nnimap} $B$N4|8B@Z$l>C5n=hM}$G(B +$B;H$o$l$kJQ?t$H!";HMQJ}K!$K4XO"$7$?CmC5n$N0u$,$I$N$h$&$KE,@Z$K(B @sc{imap} $B%5!<%P!<$K5-O?$5$l$k$+$K$D(B +$B$$$F$b$3$3$G8@5Z$7$F$*$-$^$7$g$&!#4|8B@Z$l>C5n$N0u$O(B @sc{imap} $B%/%i%$%"(B +$B%s%HFCM-$N0u$G$"$k(B @code{gnus-expire} $B$KJQ49$5$l!"%a%C%;!<%8$K5-O?$5$l$^(B +$B$9!#$3$l$O!"B>$N%/%i%$%"%s%H$O%a%C%;!<%8$N%/%i%$%"%s%HFCM-$N%U%i%0$r8+$k(B +$B$+$b$7$l$J$$$N$KBP$7$F!"(BGnus $B$O$?$V$s(B @code{gnus-expire} $B$N0u$rE,@Z$K07(B +$B$$M}2r$9$k$@$1$G$"$k$3$H$r0UL#$7$^$9!#$^$?$3$l$O%5!<%P!<$,!"%/%i%$%"%s%H(B +$BFCM-$N%U%i%0$N%a%C%;!<%8$X$N915WE*$JJ]B8$r%5%]!<%H$7$J$1$l$P$J$i$J$$$3$H(B +$B$b0UL#$7$^$9!#9,$$$K!"$?$$$F$$$O%5%]!<%H$7$^$9!#(B + +@table @code +@item nnmail-expiry-wait +@item nnmail-expiry-wait-function + +$B$3$l$i$NJQ?t$O40A4$K%5%]!<%H$5$l$F$$$^$9!#4|8B@Z$l>C5n$NCM$O!"?t!"%7%s%\(B +$B%k$N(B @var{immediate} $B$^$?$O(B @var{never} $B$G$9!#(B + +@item nnmail-expiry-target + +$B$3$NJQ?t$O%5%]!<%H$5$l$F$$$F!"FbItE*$K$O$3$l$r07$&(B @sc{nnmail} $B4X?t$r8F(B +$B$V$3$H$K$h$C$F$5$l(B +$B$k(B) $B$H$$$&:GE,2=$b4^$_$^$9!#(B +@end table + @node Editing IMAP ACLs @subsection IMAP $B$N(B ACL $B$rJT=8$9$k!#(B @cindex editing imap acls diff --git a/texi/gnus.texi b/texi/gnus.texi index 45f2045..09fc2b7 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -716,6 +716,7 @@ Browsing the Web @sc{imap} * Splitting in IMAP:: Splitting mail with nnimap. +* Expiring in IMAP:: Expiring mail with nnimap. * Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox. * Expunging mailboxes:: Equivalent of a "compress mailbox" button. * A note on namespaces:: How to (not) use IMAP namespace in Gnus. @@ -2775,11 +2776,12 @@ See also @code{gnus-total-expirable-newsgroups}. @item expiry-wait @cindex expiry-wait @vindex nnmail-expiry-wait-function -If the group parameter has an element that looks like @code{(expiry-wait -. 10)}, this value will override any @code{nnmail-expiry-wait} and -@code{nnmail-expiry-wait-function} when expiring expirable messages. -The value can either be a number of days (not necessarily an integer) or -the symbols @code{never} or @code{immediate}. +If the group parameter has an element that looks like +@code{(expiry-wait . 10)}, this value will override any +@code{nnmail-expiry-wait} and @code{nnmail-expiry-wait-function} +(@pxref{Expiring Mail}) when expiring expirable messages. The value +can either be a number of days (not necessarily an integer) or the +symbols @code{never} or @code{immediate}. @item score-file @cindex score file group parameter @@ -15190,6 +15192,7 @@ variable @code{nntp-authinfo-file} for exact syntax; also see @menu * Splitting in IMAP:: Splitting mail with nnimap. +* Expiring in IMAP:: Expiring mail with nnimap. * Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox. * Expunging mailboxes:: Equivalent of a "compress mailbox" button. * A note on namespaces:: How to (not) use IMAP namespace in Gnus. @@ -15355,6 +15358,44 @@ Nnmail equivalent: @code{nnmail-split-fancy}. @end table +@node Expiring in IMAP +@subsection Expiring in IMAP +@cindex expiring imap mail + +Even though @sc{nnimap} is not a proper @sc{nnmail} derived backend, +it supports most features in regular expiring (@pxref{Expiring Mail}). +Unlike splitting in IMAP (@pxref{Splitting in IMAP}) it do not clone +the @sc{nnmail} variables (i.e., creating @var{nnimap-expiry-wait}) +but reuse the @sc{nnmail} variables. What follows below are the +variables used by the @sc{nnimap} expiry process and any related notes +on their usage. + +A note on how the expire mark is stored on the @sc{imap} server is +appropriate here as well. The expire mark is translated into a +@sc{imap} client specific mark @code{gnus-expire} and store on the +message. This means that only likely only Gnus will understand and +treat the @code{gnus-expire} mark properly, although other clients may +allow to view client specific flags on a message. It also means that +your server must support the permanent storage of client specific +flags on messages. Most do, fortunately. + +@table @code + +@item nnmail-expiry-wait +@item nnmail-expiry-wait-function + +These variables are fully supported. The expire value can be a +number, the symbol @var{immediate} or @var{never}. + +@item nnmail-expiry-target + +This variable is supported, and internally implemented by calling the +@sc{nnmail} functions that handle this. It contains an optimization +that if the destination is a IMAP group on the same server, the +article is copied instead of appended (that is, uploaded again). + +@end table + @node Editing IMAP ACLs @subsection Editing IMAP ACLs @cindex editing imap acls -- 1.7.10.4