Gnus development mailing list
 help / color / mirror / Atom feed
From: Daniel Dehennin <daniel.dehennin@baby-gnu.org>
To: ding@gnus.org
Subject: [PATCH] Re: Group splitting on list headers
Date: Fri, 27 Dec 2013 16:57:58 +0100	[thread overview]
Message-ID: <8738leffqx.fsf_-_@hati.baby-gnu.org> (raw)
In-Reply-To: <87ioubeefd.fsf@building.gnus.org> (Lars Ingebrigtsen's message of "Thu, 26 Dec 2013 17:59:34 +0100")

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

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Uhm...  perhaps `match-list'?

Shortest is best ;-)

You can review my proposal patch on my gitweb[1] or with the following
pull request.

Tell me if something should be changed.

Regards.

The following changes since commit 934f25f8d8801afe315722fd0b0b4ea14bcb1534:

  Make split tracing work in nnimap groups, too (2013-12-26 17:39:39 +0100)

are available in the git repository at:

  git://git.baby-gnu.net/gnus.git tags/feature/group-mail-splitting-on-list-headers

for you to fetch changes up to 2ff14c69a7ad8c4256236331fbe94ff43dd9976a:

  Add Group Mail Spliting on mailing-list headers (2013-12-27 16:54:15 +0100)

----------------------------------------------------------------
We define a new `list' abbreviation and `match-list' group parameter
and make Group Mail Splitting generate a SPLIT using it.

----------------------------------------------------------------
Daniel Dehennin (1):
      Add Group Mail Spliting on mailing-list headers

 lisp/gnus-mlspl.el |  7 +++++--
 lisp/nnmail.el     |  1 +
 texi/gnus.texi     | 15 +++++++++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/lisp/gnus-mlspl.el b/lisp/gnus-mlspl.el
index 3947c67..1997f43 100644
--- a/lisp/gnus-mlspl.el
+++ b/lisp/gnus-mlspl.el
@@ -177,7 +177,10 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
 		    (to-list (cdr (assoc 'to-list params)))
 		    (extra-aliases (cdr (assoc 'extra-aliases params)))
 		    (split-regexp (cdr (assoc 'split-regexp params)))
-		    (split-exclude (cdr (assoc 'split-exclude params))))
+		    (split-exclude (cdr (assoc 'split-exclude params)))
+		    (match-abbrev (if (cdr (assoc 'match-list params))
+				      'list
+				    'any)))
 		(when (or to-address to-list extra-aliases split-regexp)
 		  ;; regexp-quote to-address, to-list and extra-aliases
 		  ;; and add them all to split-regexp
@@ -198,7 +201,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
 			 "\\)"))
 		  ;; Now create the new SPLIT
 		  (push (append
-			 (list 'any split-regexp)
+			 (list match-abbrev split-regexp)
 			 ;; Generate RESTRICTs for SPLIT-EXCLUDEs.
 			 (if (listp split-exclude)
 			     (apply #'append
diff --git a/lisp/nnmail.el b/lisp/nnmail.el
index 5be449e..03d610c 100644
--- a/lisp/nnmail.el
+++ b/lisp/nnmail.el
@@ -517,6 +517,7 @@ Example:
 (defcustom nnmail-split-abbrev-alist
   '((any . "from\\|to\\|cc\\|sender\\|apparently-to\\|resent-from\\|resent-to\\|resent-cc")
     (mail . "mailer-daemon\\|postmaster\\|uucp")
+    (list . "list-post\\|x-beenthere\\|x-loop")
     (to . "to\\|cc\\|apparently-to\\|resent-to\\|resent-cc")
     (from . "from\\|sender\\|resent-from")
     (nato . "to\\|cc\\|resent-to\\|resent-cc")
diff --git a/texi/gnus.texi b/texi/gnus.texi
index 498c8a4..03af068 100644
--- a/texi/gnus.texi
+++ b/texi/gnus.texi
@@ -3103,6 +3103,18 @@ interest in relation to the sieve parameter.
 The Sieve language is described in RFC 3028.  @xref{Top, Emacs Sieve,
 Top, sieve, Emacs Sieve}.
 
+@item match-list
+@cindex match-list
+If this parameter is set to @code{t} and @code{nnmail-split-method} is
+set to @code{gnus-group-split}, Gnus will lookup mail addresses
+against the @code{list} split abbreviation.
+
+See @code{nnmail-split-abbrev-alist} for the regular expression
+matching mailing-list headers.
+
+See @pxref{Group Mail Splitting} to automatically split on group
+parameters.
+
 @item (agent parameters)
 If the agent has been enabled, you can set any of its parameters to
 control the behavior of the agent in individual groups.  See Agent
@@ -15403,6 +15415,9 @@ Matches the @samp{To}, @samp{Cc}, @samp{Apparently-To},
 @samp{Resent-To} and @samp{Resent-Cc} fields.
 @item any
 Is the union of the @code{from} and @code{to} entries.
+@item list
+Matches the @samp{List-Post}, @samp{X-BeenThere} and @samp{X-Loop}
+fields.
 @end table
 
 @vindex nnmail-split-fancy-syntax-table


Footnotes: 
[1]  http://git.baby-gnu.net/gitweb/gitweb.cgi?p=gnus.git;a=tag;h=refs/tags/feature/group-mail-splitting-on-list-headers

-- 
Daniel Dehennin
Récupérer ma clef GPG:
gpg --keyserver pgp.mit.edu --recv-keys 0x7A6FE2DF

[-- Attachment #2: Type: application/pgp-signature, Size: 229 bytes --]

  reply	other threads:[~2013-12-27 15:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-14 17:03 Daniel Dehennin
2013-12-26 15:47 ` Lars Ingebrigtsen
2013-12-26 16:58   ` Daniel Dehennin
2013-12-26 16:59     ` Lars Ingebrigtsen
2013-12-27 15:57       ` Daniel Dehennin [this message]
2013-12-28  1:53         ` [PATCH] " Daniel Dehennin
2013-12-29  0:25         ` Daniel Dehennin

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=8738leffqx.fsf_-_@hati.baby-gnu.org \
    --to=daniel.dehennin@baby-gnu.org \
    --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).