Gnus development mailing list
 help / color / mirror / Atom feed
From: Michael Sperber <sperber@deinprogramm.de>
To: ding@gnus.org
Subject: Re: Patch submission: Allow group-local mail sources for nnmail
Date: Wed, 16 Jan 2008 08:20:15 +0100	[thread overview]
Message-ID: <y9l8x2qi6ds.fsf@deinprogramm.de> (raw)
In-Reply-To: <v9hcht2453.fsf@marauder.physik.uni-ulm.de>

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


The copyright assignment has just been confirmed by the FSF.  Here's the
current version of the patch.  Could it be applied?  Many thanks for the
review, everyone!

lisp/ChangeLog

2008-01-01  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.

texi/ChangeLog

2008-01-01  Michael Sperber  <sperber@deinprogramm.de>

	* gnus.texi (Mail Source Specifiers): Document `group' specifier.
	(Group Parameters): Document `mail-source' parameter.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla

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

Index: lisp/mail-source.el
===================================================================
RCS file: /usr/local/cvsroot/gnus/lisp/mail-source.el,v
retrieving revision 7.24
diff -u -r7.24 mail-source.el
--- lisp/mail-source.el	16 Dec 2007 04:23:18 -0000	7.24
+++ lisp/mail-source.el	16 Jan 2008 07:18:40 -0000
@@ -74,6 +74,8 @@
 	  (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: lisp/nnmail.el
===================================================================
RCS file: /usr/local/cvsroot/gnus/lisp/nnmail.el,v
retrieving revision 7.38
diff -u -r7.38 nnmail.el
--- lisp/nnmail.el	16 Dec 2007 04:23:18 -0000	7.38
+++ lisp/nnmail.el	16 Jan 2008 07:18:40 -0000
@@ -1766,11 +1766,15 @@
       (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 @@
     (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 @@
 			 (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)))
Index: texi/gnus.texi
===================================================================
RCS file: /usr/local/cvsroot/gnus/texi/gnus.texi,v
retrieving revision 7.267
diff -u -r7.267 gnus.texi
--- texi/gnus.texi	28 Dec 2007 22:28:04 -0000	7.267
+++ texi/gnus.texi	16 Jan 2008 07:18:46 -0000
@@ -3035,6 +3035,12 @@
 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
@@ -14156,6 +14162,21 @@
 @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
@@ -14546,6 +14567,11 @@
          :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

  parent reply	other threads:[~2008-01-16  7:20 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-01 17:23 Michael Sperber
2008-01-02 19:29 ` Reiner Steib
2008-01-03  6:48   ` Michael Sperber
2008-01-03 12:42     ` Ted Zlatanov
2008-01-03 14:12       ` Michael Sperber
2008-01-03 17:58         ` Ted Zlatanov
2008-01-04  7:24           ` Michael Sperber
2008-01-04 11:59             ` Reiner Steib
2008-01-04 12:28               ` Michael Sperber
2008-01-16  7:20               ` Michael Sperber [this message]
2008-01-24 22:23                 ` Reiner Steib

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=y9l8x2qi6ds.fsf@deinprogramm.de \
    --to=sperber@deinprogramm.de \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).