Synch with Oort Gnus.
authoryamaoka <yamaoka>
Mon, 18 Jun 2001 01:21:17 +0000 (01:21 +0000)
committeryamaoka <yamaoka>
Mon, 18 Jun 2001 01:21:17 +0000 (01:21 +0000)
lisp/ChangeLog
lisp/gnus-art.el
lisp/message.el
lisp/nnimap.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 9bb393d..d35532b 100644 (file)
@@ -1,3 +1,19 @@
+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.
index fd33000..1800e82 100644 (file)
@@ -2200,10 +2200,10 @@ Point is left at the beginning of the narrowed-to region."
          (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."
index a2d247f..d0ab827 100644 (file)
@@ -3294,7 +3294,7 @@ to find out how to use this."
     ;; 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"))))
index b29b5b4..82cbe81 100644 (file)
@@ -236,7 +236,8 @@ There are two wildcards * and %. * matches everything, % matches
 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.
@@ -251,6 +252,16 @@ news-like mailboxes.  If you wish to have a group with todo items or
 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'.")
 
@@ -1024,16 +1035,20 @@ function is generally only called when Gnus is shutting down."
                ;; 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)
@@ -1133,7 +1148,7 @@ function is generally only called when Gnus is shutting down."
                     (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
index 2c620a8..075ab87 100644 (file)
@@ -1,3 +1,12 @@
+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.
index e9c135a..47b0500 100644 (file)
@@ -1756,6 +1756,16 @@ Gnus \e$B$N5/F0$K@.8y$7$?8e$K!"0lHV:G8e$K<B9T$5$l$k%U%C%/$G$9!#\e(B
 @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
 
@@ -13883,6 +13893,20 @@ nnimap \e$B$O$=$l$b%5%]!<%H$7$^$9!#$7$+$7!"\e(BSSLeay \e$B$N:G?7HG$G$"$k\e(B 0.9.x \e
 
 @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
 
index 2d25426..e4de4f0 100644 (file)
@@ -1692,6 +1692,15 @@ Number of read articles.
 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.
 
@@ -14212,6 +14221,20 @@ articles or not.
 
 @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