Gnus development mailing list
 help / color / mirror / Atom feed
* PATCH: Unbreak `group' option for `mail-sources'
@ 2015-10-18 16:03 Michael Sperber
  2015-10-19 14:33 ` Katsumi Yamaoka
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Sperber @ 2015-10-18 16:03 UTC (permalink / raw)
  To: ding

[-- Attachment #1: Type: text/plain, Size: 153 bytes --]


The `group' option for `mail-sources' has been broken for quite a while.
The attached patch fixes it.  Could someone apply and push?

-- 
Regards,
Mike

[-- Attachment #2: Type: text/plain, Size: 3343 bytes --]

commit d164741a74ba8145476c478f2079c9e3d9d69567
Author: Mike Sperber <sperber@deinprogramm.de>
Date:   Sun Oct 18 17:39:34 2015 +0200

    	* nnml.el (nnml-retrieve-groups, nnml-request-scan):
    	* nnmail.el (nnmail-get-new-mail-per-group):
    	(nnmail-get-new-mail-1): Unbreak `group' option for `mail-sources'.

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 2f7fd2b..979a845 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,11 @@
 2015-10-18  Michael Sperber  <mike@xemacs.org>
 
+	* nnml.el (nnml-retrieve-groups, nnml-request-scan): 
+	* nnmail.el (nnmail-get-new-mail-per-group):
+	(nnmail-get-new-mail-1): Unbreak `group' option for `mail-sources'.
+
+2015-10-18  Michael Sperber  <mike@xemacs.org>
+
 	* message.el (message-get-reply-headers): In addition to
 	`mail-dont-reply-to-names', bind `rmail-dont-reply-to-names', which is
 	used in XEmacs.
diff --git a/lisp/nnmail.el b/lisp/nnmail.el
index 7efb154..f3ba169 100644
--- a/lisp/nnmail.el
+++ b/lisp/nnmail.el
@@ -1792,6 +1792,12 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
   "Read new incoming mail."
   (nnmail-get-new-mail-1 method exit-func temp group nil spool-func))
 
+(defun nnmail-get-new-mail-per-group ()
+  "Tell us whether the mail-sources specify that `nnmail-get-new-mail' should
+be called once per group or once for all groups."
+  (or (assq 'group mail-sources)
+      (assq 'directory mail-sources)))
+
 (defun nnmail-get-new-mail-1 (method exit-func temp
 			      group in-group spool-func)
   (let* ((sources mail-sources)
@@ -1804,7 +1810,8 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
 	       sources)
       (while (setq source (pop sources))
 	;; Use group's parameter
-	(when (eq (car source) 'group)
+	(when (and (eq (car source) 'group)
+		   group)
 	  (let ((mail-sources
 		 (list
 		  (gnus-group-find-parameter
diff --git a/lisp/nnml.el b/lisp/nnml.el
index c825e09..33eae1c 100644
--- a/lisp/nnml.el
+++ b/lisp/nnml.el
@@ -268,10 +268,35 @@ non-nil.")
 			   (max (1+ (- (cdr active) (car active))) 0)
 			   (car active) (cdr active) group)))))))
 
+(deffoo nnml-retrieve-groups (groups &optional server)
+  (when nnml-get-new-mail
+    (if (nnmail-get-new-mail-per-group)
+	(dolist (group groups)
+	  (nnml-request-scan group server))
+      (nnml-request-scan nil server)))
+  (with-current-buffer nntp-server-buffer
+    (erase-buffer)
+    (dolist (group groups)
+      (let* ((entry (assoc group nnml-group-alist))
+	     (active (nth 1 entry)))
+	(if (consp active)
+	    (insert (format "211 %d %d %d %s\n"
+			    (max (1+ (- (cdr active) (car active))) 0)
+			    (car active) (cdr active) group))))))
+  'group)
+
 (deffoo nnml-request-scan (&optional group server)
   (setq nnml-article-file-alist nil)
   (nnml-possibly-change-directory group server)
-  (nnmail-get-new-mail 'nnml 'nnml-save-incremental-nov nnml-directory group))
+  (cond
+   (group
+    (nnmail-get-new-mail 'nnml 'nnml-save-incremental-nov nnml-directory group))
+   ((nnmail-get-new-mail-per-group)
+    (nnml-request-list)
+    (dolist (entry nnml-group-alist)
+      (nnml-request-scan (car entry) server)))
+   (t
+    (nnmail-get-new-mail 'nnml 'nnml-save-incremental-nov nnml-directory nil))))
 
 (deffoo nnml-close-group (group &optional server)
   (setq nnml-article-file-alist nil)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-10-20  6:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-18 16:03 PATCH: Unbreak `group' option for `mail-sources' Michael Sperber
2015-10-19 14:33 ` Katsumi Yamaoka
2015-10-19 16:48   ` Wolfgang Jenkner
2015-10-20  1:06     ` Katsumi Yamaoka
2015-10-20  6:12       ` Katsumi Yamaoka
2015-10-20  6:41   ` Michael Sperber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).