]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from gnus--devo--0
authorMiles Bader <miles@gnu.org>
Mon, 28 Jan 2008 03:51:31 +0000 (03:51 +0000)
committerMiles Bader <miles@gnu.org>
Mon, 28 Jan 2008 03:51:31 +0000 (03:51 +0000)
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1016

doc/misc/ChangeLog
doc/misc/gnus.texi
lisp/gnus/ChangeLog
lisp/gnus/mail-source.el
lisp/gnus/nnmail.el

index 3c179467fa28da50025f54b81a8b9e1334a44e3f..d4710db067570b699740d5a27e45469777be1c43 100644 (file)
@@ -1,3 +1,8 @@
+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
index ba61fd72247fd6f789971a6f15a90794e52270f8..f90b0f968478fc2b5cd00122bc9d0624a6eecd82 100644 (file)
@@ -3035,6 +3035,12 @@ to.
 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
@@ -14145,6 +14151,21 @@ element is a @dfn{mail source type}, followed by an arbitrary number of
 @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
@@ -14535,6 +14556,11 @@ An example webmail source:
          :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
index 35347c8e71ae25b8d7cafe119bd32fbd42227c2e..94a976c8e652a2ffa5c67e54880936afdf9f00ec 100644 (file)
@@ -1,3 +1,11 @@
+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):
index 9f9f9733110da98f1f9b9e6d6fb9f0334caffd5d..01463c55628a99220ca8700e1e31b7c16e59f41f 100644 (file)
@@ -74,6 +74,8 @@ See Info node `(gnus)Mail Source Specifiers'."
          (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
index f0f90218aab877df59af07b9184218b2ece2b384..a6ed7190351797b68c307ef1afe05c435b27bb02 100644 (file)
@@ -1766,11 +1766,15 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
       (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)
@@ -1778,6 +1782,18 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
     (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)
@@ -1816,9 +1832,10 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
                         (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)))