+2008-01-28 Michael Sperber <sperber@deinprogramm.de>
+
+ * gnus.texi (Mail Source Specifiers): Document `group' specifier.
+ (Group Parameters): Document `mail-source' parameter.
+
2008-01-27 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Inline methods): The hostname of the su(do)? methods
If it is set, the value is used as the method for posting message
instead of @code{gnus-post-method}.
+@item mail-source
+@cindex mail-source
+If it is set, and the setting of @code{mail-sources} includes a
+@code{group} mail source (@pxref{Mail Sources}), the value is a
+mail source for this group.
+
@item banner
@cindex banner
An item like @code{(banner . @var{regexp})} causes any part of an article
@dfn{keywords}. Keywords that are not explicitly specified are given
default values.
+The @code{mail-sources} is global for all mail groups. You can specify
+an additional mail source for a particular group by including the
+@code{group} mail specifier in @code{mail-sources}, and setting a
+@code{mail-source} group parameter (@pxref{Group Parameters}) specifying
+a single mail source. When this is used, @code{mail-sources} is
+typically just @code{(group)}; the @code{mail-source} parameter for a
+group might look like this:
+
+@lisp
+(mail-source . (file :path "home/user/spools/foo.spool"))
+@end lisp
+
+This means that the group's (and only this group's) messages will be
+fetched from the spool file @samp{/user/spools/foo.spool}.
+
The following mail source types are available:
@table @code
:user "user-name"
:password "secret")
@end lisp
+
+@item group
+Get the actual mail source from the @code{mail-source} group parameter,
+@xref{Group Parameters}.
+
@end table
@table @dfn
+2008-01-24 Michael Sperber <sperber@deinprogramm.de>
+
+ * mail-source.el (mail-sources): Add `group' choice.
+
+ * nnmail.el (nnmail-get-new-mail-1): Abstract this out to add another
+ parameter `in-group' to control into which group the articles go.
+ Add treatment of `group' mail-source.
+
2008-01-24 Dan Nicolaescu <dann@ics.uci.edu>
* sieve.el (sieve-make-overlay, sieve-overlay-put, sieve-overlays-at):
(repeat :tag "List"
(choice :format "%[Value Menu%] %v"
:value (file)
+ (cons :tag "Group parameter `mail-source'"
+ (const :format "" group))
(cons :tag "Spool file"
(const :format "" file)
(checklist :tag "Options" :greedy t
(symbol-value sym))))
(defun nnmail-get-new-mail (method exit-func temp
- &optional group spool-func)
+ &optional group spool-func)
"Read new incoming mail."
+ (nnmail-get-new-mail-1 method exit-func temp group nil spool-func))
+
+(defun nnmail-get-new-mail-1 (method exit-func temp
+ group in-group spool-func)
+
(let* ((sources mail-sources)
fetching-sources
- (group-in group)
(i 0)
(new 0)
(total 0)
(when (and (nnmail-get-value "%s-get-new-mail" method)
sources)
(while (setq source (pop sources))
+
+ ;; Use group's parameter
+ (when (eq (car source) 'group)
+ (let ((mail-sources
+ (list
+ (gnus-group-find-parameter
+ (concat (symbol-name method) ":" group)
+ 'mail-source t))))
+ (nnmail-get-new-mail-1 method exit-func temp
+ group group spool-func))
+ (setq source nil))
+
;; Hack to only fetch the contents of a single group's spool file.
(when (and (eq (car source) 'directory)
(null nnmail-scan-directory-mail-source-once)
(nnmail-split-incoming
file ',(intern (format "%s-save-mail" method))
',spool-func
- (if (equal file orig-file)
- nil
- (nnmail-get-split-group orig-file ',source))
+ (or in-group
+ (if (equal file orig-file)
+ nil
+ (nnmail-get-split-group orig-file ',source)))
',(intern (format "%s-active-number" method)))))))
(incf total new)
(incf i)))