commit d164741a74ba8145476c478f2079c9e3d9d69567 Author: Mike Sperber 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 + * 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 + * 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)