Update.
[gnus] / lisp / gnus-mlspl.el
1 ;;; gnus-mlspl.el --- a group params-based mail splitting mechanism
2
3 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 ;;   2005 Free Software Foundation, Inc.
5
6 ;; Author: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7 ;; Keywords: news, mail
8
9 ;; This file is part of GNU Emacs.
10
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
12 ;; it under the terms of the GNU General Public License as published
13 ;; by the Free Software Foundation; either version 2, or (at your
14 ;; option) any later version.
15
16 ;; GNU Emacs is distributed in the hope that it will be useful, but
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19 ;; General Public License for more details.
20
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with this program; see the file COPYING.  If not, write to
23 ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24 ;; Boston, MA 02110-1301, USA.
25
26 ;;; Commentary:
27
28 ;;; Code:
29
30 (eval-when-compile (require 'cl))
31 (require 'gnus)
32 (require 'gnus-sum)
33 (require 'gnus-group)
34 (require 'nnmail)
35
36 (defvar gnus-group-split-updated-hook nil
37   "Hook called just after `nnmail-split-fancy' is updated by
38 `gnus-group-split-update'.")
39
40 (defvar gnus-group-split-default-catch-all-group "mail.misc"
41   "Group name (or arbitrary fancy split) with default splitting rules.
42 Used by `gnus-group-split' and `gnus-group-split-update' as a fallback
43 split, in case none of the group-based splits matches.")
44
45 ;;;###autoload
46 (defun gnus-group-split-setup (&optional auto-update catch-all)
47   "Set up the split for `nnmail-split-fancy'.
48 Sets things up so that nnmail-split-fancy is used for mail
49 splitting, and defines the variable nnmail-split-fancy according with
50 group parameters.
51
52 If AUTO-UPDATE is non-nil (prefix argument accepted, if called
53 interactively), it makes sure nnmail-split-fancy is re-computed before
54 getting new mail, by adding `gnus-group-split-update' to
55 `nnmail-pre-get-new-mail-hook'.
56
57 A non-nil CATCH-ALL replaces the current value of
58 `gnus-group-split-default-catch-all-group'.  This variable is only used
59 by gnus-group-split-update, and