+2001-06-16 Simon Josefsson <jas@extundo.com>
+
+ * nnimap.el (nnimap-split-articles): Support 'junk to-groups.
+ (nnimap-expunge-search-string): New variable.
+ (nnimap-request-expire-articles): Use it.
+
+2001-06-15 19:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * message.el (message-send-mail-with-qmail): wrong exit status is
+ 100 not 1. Reported by Paul Jarc <prj@po.cwru.edu>.
+
+2001-06-15 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-art.el (article-strip-multiple-blank-lines): Use
+ delete-region instead of replace-match.
+
2001-06-14 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
* nnweb.el (nnweb-google-parse-1): Fix Google content regexp.
(replace-match "" nil t)))
;; Then replace multiple empty lines with a single empty line.
(article-goto-body)
- (while (re-search-forward "\n\n\n+" nil t)
+ (while (re-search-forward "\n\n\\(\n+\\)" nil t)
(unless (gnus-annotation-in-region-p
(match-beginning 0) (match-end 0))
- (replace-match "\n\n" t t))))))
+ (delete-region (match-beginning 1) (match-end 1)))))))
(defun article-strip-leading-space ()
"Remove all white space from the beginning of the lines in the article."
;; qmail-inject doesn't say anything on it's stdout/stderr,
;; we have to look at the retval instead
(0 nil)
- (1 (error "qmail-inject reported permanent failure"))
+ (100 (error "qmail-inject reported permanent failure"))
(111 (error "qmail-inject reported transient failure"))
;; should never happen
(t (error "qmail-inject reported unknown failure"))))
everything in the current hierarchy.")
(defvoo nnimap-news-groups nil
- "IMAP support a news-like mode, also known as bulletin board mode, where replies is sent via IMAP instead of SMTP.
+ "IMAP support a news-like mode, also known as bulletin board mode,
+where replies is sent via IMAP instead of SMTP.
This variable should contain a regexp matching groups where you wish
replies to be stored to the mailbox directly.
similar which you wouldn't want to set up a mailing list for, you can
use this to make replies go directly to the group.")
+(defvoo nnimap-expunge-search-string "UID %s NOT SINCE %s"
+ "*IMAP search command to use for articles that are to be expired.
+The first %s is replaced by a UID set of articles to search on,
+and the second %s is replaced by a date criterium.
+
+One useful (and perhaps the only useful) value to change this to would
+be `UID %s NOT SENTSINCE %s' to make nnimap use the Date: header
+instead of the internal date of messages. See section 6.4.4 of RFC
+2060 for more information on valid strings.")
+
(defvoo nnimap-server-address nil
"Obsolete. Use `nnimap-address'.")
;; copy article to right group(s)
(setq removeorig nil)
(dolist (to-group (nnimap-split-to-groups rule))
- (if (imap-message-copy (number-to-string article)
- to-group nil 'nocopyuid)
- (progn
- (message "IMAP split moved %s:%s:%d to %s" server inbox
- article to-group)
- (setq removeorig t)
- ;; Add the group-art list to the history list.
- (push (list (cons to-group 0)) nnmail-split-history))
- (message "IMAP split failed to move %s:%s:%d to %s" server
- inbox article to-group)))
+ (cond ((eq to-group 'junk)
+ (message "IMAP split removed %s:%s:%d" server inbox
+ article)
+ (setq removeorig t))
+ ((imap-message-copy (number-to-string article)
+ to-group nil 'nocopyuid)
+ (message "IMAP split moved %s:%s:%d to %s" server
+ inbox article to-group)
+ (setq removeorig t)
+ ;; Add the group-art list to the history list.
+ (push (list (cons to-group 0)) nnmail-split-history))
+ (t
+ (message "IMAP split failed to move %s:%s:%d to %s"
+ server inbox article to-group))))
;; remove article if it was successfully copied somewhere
(and removeorig
(imap-message-flags-add (format "%d" article)
(setq articles nil)))
((numberp days)
(let ((oldarts (imap-search
- (format "UID %s NOT SINCE %s"
+ (format nnimap-expunge-search-string
(imap-range-to-message-set artseq)
(nnimap-date-days-ago days))))
(imap-fetch-data-hook
+2001-06-17 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+ * gnus.texi (Group Line Specification): Explain why %t is only an
+ estimate.
+
+2001-06-16 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (IMAP): Add.
+
2001-06-13 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
* gnus.texi (Article Washing): Add.
@item t
\e$B?dDjA45-;v?t\e(B (\e$B$3$l$O<B:]$O\e(B @var{max-number} - @var{min-number} + 1)\e$B!#\e(B
+Gnus \e$B$,$3$N?dDj$r;H$&$N$O!"\e(BNNTP \e$B%W%m%H%3%k$OG=N($NNI\e(B
+\e$B$$\e(B @var{max-number} \e$B$H\e(B @var{min-number} \e$B$X$N%"%/%;%9$rDs6!$9$k$b$N$N!"K\\e(B
+\e$BEv$NL$FI5-;v$N?t$rF@$k$K$OI,$:$7$bG=N(E*$G$O$J$$$+$i$G$9!#%R%9%F%j%C%/$J\e(B
+\e$B%l!<%:%s\e(B (\e$BLuCm\e(B: \e$BNr;KE*$JM}M3$N%b%8$j$+\e(B?) \e$B$K$h$j!"%a!<%k%P%C%/%(%s%I$K$*\e(B
+\e$B$$$F$b!"8BDj$5$l$?F1$8%$%s%?!<%U%'!<%9$r;H$C$F!"K\Ev$NL$FI5-;v$N?t$rG=N(\e(B
+\e$BE*$KF@$k$3$H$O$G$-$k$+$b$7$l$^$;$s!#$3$N@)8B$r\e(B Gnus \e$B$+$i<h$jJ'$&$3$H$O%P%C\e(B
+\e$B%/%(%s%I$N%$%s%?!<%U%'!<%9$rJQ99$9$k$3$H$r0UL#$7!"$=$l$O3Z$J;E;v$G$O$"$j\e(B
+\e$B$^$;$s!#$"$J$?$,$3$N;E;v$r$d$j$?$$$J$i$P!"$I$&$>\e(B Gnus \e$B%a!<%j%s%0%j%9%H$K\e(B
+\e$BO"Mm$7$F2<$5$$!#\e(B
+
@item y
\e$BL$FI$G$b!"0uIU$-$G$b!"J]N1$G$b$J$$5-;v$N?t!#\e(B
@end table
+@item nnimap-expunge-search-string
+@cindex Expunging
+@vindex nnimap-expunge-search-string
+
+\e$B$3$NJQ?t$K$O!"4|8B@Z$l>C5n$9$k$N$,K>$^$7$$5-;v$rC5$9$H$-$K%5!<%P!<$KAw$C\e(B
+\e$B$?\e(B IMAP \e$B$N8!:w%3%^%s%I$,F~$C$F$$$^$9!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @code{"UID %s NOT SINCE %s"} \e$B$G!"$3$3$G:G=i$N\e(B @code{%s} \e$B$O\e(B UID \e$B$GCV$-\e(B
+\e$B49$($i$l!"FsHVL\$N\e(B @code{%s} \e$B$OF|IU$GCV$-49$($i$l$^$9!#\e(B
+
+\e$B$?$V$s;H$$$b$N$K$J$kJL$NCM$O\e(B @code{"UID %s NOT SENTSINCE %s"} \e$B$G!"\e(B
+nnimap \e$B$K5-;v$NFbItE*$JF|IU$NBe$o$j$K\e(B Date: \e$B$r;H$&$h$&$K$5$;$^$9!#$5$i$J\e(B
+\e$B$k>pJs$d;H$&$3$H$,$G$-$kJ8;zNs$K$D$$$F$O!"\e(BRFC 2060 \e$B$N%;%/%7%g%s\e(B 6.4.4 \e$B$r\e(B
+\e$B8+$F$/$@$5$$!#\e(B
+
@item nnimap-authinfo-file
@vindex nnimap-authinfo-file
Estimated total number of articles. (This is really @var{max-number}
minus @var{min-number} plus 1.)
+Gnus uses this estimation because the NNTP protocol provides efficient
+access to @var{max-number} and @var{min-number} but getting the true
+unread message count is not possible efficiently. For hysterical
+raisins, even the mail backends, where the true number of unread
+messages might be available efficiently, use the same limited
+interface. To remove this restriction from Gnus means that the
+backend interface has to be changed, which is not an easy job. If you
+want to work on this, please contact the Gnus mailing list.
+
@item y
Number of unread, unticked, non-dormant articles.
@end table
+@item nnimap-expunge-search-string
+@cindex Expunging
+@vindex nnimap-expunge-search-string
+
+This variable contain the IMAP search command sent to server when
+searching for articles eligible for expiring. The default is
+@code{"UID %s NOT SINCE %s"}, where the first @code{%s} is replaced by
+UID set and the second @code{%s} is replaced by a date.
+
+Probably the only useful value to change this to is
+@code{"UID %s NOT SENTSINCE %s"}, which makes nnimap use the Date: in
+messages instead of the internal article date. See section 6.4.4 of
+RFC 2060 for more information on valid strings.
+
@item nnimap-authinfo-file
@vindex nnimap-authinfo-file