;ELC   
;;; Compiled by amu@daemon on Thu Jan 11 15:03:11 2001
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.8.8/lisp/gnus-mlspl.el
;;; in Emacs version 20.7.2
;;; with bytecomp version 2.56
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`gnus-mlspl.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require gnus gnus-sum gnus-group nnmail] 2)
#@82 Hook called just after nnmail-split-fancy is updated by
gnus-group-split-update.
(defvar gnus-group-split-updated-hook nil (#$ . 741))
#@191 Group name (or arbitrary fancy split) with default splitting rules.
Used by gnus-group-split and gnus-group-split-update as a fallback
split, in case none of the group-based splits matches.
(defvar gnus-group-split-default-catch-all-group "mail.misc" (#$ . 883))
#@1029 Set up the split for nnmail-split-fancy.
Sets things up so that nnmail-split-fancy is used for mail
splitting, and defines the variable nnmail-split-fancy according with
group parameters.

If AUTO-UPDATE is non-nil (prefix argument accepted, if called
interactively), it makes sure nnmail-split-fancy is re-computed before
getting new mail, by adding gnus-group-split-update to
nnmail-pre-get-new-mail-hook.

A non-nil CATCH-ALL replaces the current value of
gnus-group-split-default-catch-all-group.  This variable is only used
by gnus-group-split-update, and only when its CATCH-ALL argument is
nil.  This argument may contain any fancy split, that will be added as
the last split in a `|' split produced by gnus-group-split-fancy,
unless overridden by any group marked as a catch-all group.  Typical
uses are as simple as the name of a default mail group, but more
elaborate fancy splits may also be useful to split mail that doesn't
match any of the group-specified splitting rules.  See
gnus-group-split-fancy for details.
(defalias 'gnus-group-split-setup #[(&optional auto-update catch-all) "\304	\203 	\305 \210\205 \306\307\305\"\207" [nnmail-split-methods catch-all gnus-group-split-default-catch-all-group auto-update nnmail-split-fancy gnus-group-split-update add-hook nnmail-pre-get-new-mail-hook] 3 (#$ . 1154) "P"])
#@246 Computes nnmail-split-fancy from group params and CATCH-ALL, by
calling (gnus-group-split-fancy nil nil CATCH-ALL).

If CATCH-ALL is nil, gnus-group-split-default-catch-all-group is used
instead.  This variable is set by gnus-group-split-setup.
(defalias 'gnus-group-split-update #[(&optional catch-all) "\304\305?	\206	 \n#\306\307!\207" [nnmail-crosspost catch-all gnus-group-split-default-catch-all-group nnmail-split-fancy gnus-group-split-fancy nil run-hooks gnus-group-split-updated-hook] 4 (#$ . 2497) nil])
#@174 Uses information from group parameters in order to split mail.
See gnus-group-split-fancy for more information.

gnus-group-split is a valid value for nnmail-split-methods.
(defalias 'gnus-group-split #[nil "\301\302 \210\300 )\207" [nnmail-split-fancy nil gnus-group-split-update] 1 (#$ . 3021)])
#@2018 Uses information from group parameters in order to split mail.  It
can be embedded into nnmail-split-fancy lists with the SPLIT

(: gnus-group-split-fancy GROUPS NO-CROSSPOST CATCH-ALL)

GROUPS may be a regular expression or a list of group names, that will
be used to select candidate groups.  If it is ommited or nil, all
existing groups are considered.

if NO-CROSSPOST is ommitted or nil, a & split will be returned,
otherwise, a | split, that does not allow crossposting, will be
returned.

For each selected group, a SPLIT is composed like this: if SPLIT-SPEC
is specified, this split is returned as-is (unless it is nil: in this
case, the group is ignored).  Otherwise, if TO-ADDRESS, TO-LIST and/or
EXTRA-ALIASES are specified, a regexp that matches any of them is
constructed (extra-aliases may be a list).  Additionally, if
SPLIT-REGEXP is specified, the regexp will be extended so that it
matches this regexp too, and if SPLIT-EXCLUDE is specified, RESTRICT
clauses will be generated.

If CATCH-ALL is nil, no catch-all handling is performed, regardless of
catch-all marks in group parameters.  Otherwise, if there is no
selected group whose SPLIT-REGEXP matches the empty string, nor is
there a selected group whose SPLIT-SPEC is 'catch-all, this fancy
split (say, a group name) will be appended to the returned SPLIT list,
as the last element of a '| SPLIT.

For example, given the following group parameters:

nnml:mail.bar:
((to-address . "bar@femail.com")
 (split-regexp . ".*@femail\\.com"))
nnml:mail.foo:
((to-list . "foo@nowhere.gov")
 (extra-aliases "foo@localhost" "foo-redist@home")
 (split-exclude "bugs-foo" "rambling-foo")
 (admin-address . "foo-request@nowhere.gov"))
nnml:mail.others:
((split-spec . catch-all))

Calling (gnus-group-split-fancy nil nil "mail.misc") returns:

(| (& (any "\\(bar@femail\\.com\\|.*@femail\\.com\\)"
	   "mail.bar")
      (any "\\(foo@nowhere\\.gov\\|foo@localhost\\|foo-redist@home\\)"
           - "bugs-foo" - "rambling-foo" "mail.foo"))
   "mail.others")
(defalias 'gnus-group-split-fancy #[(&optional groups no-crosspost catch-all) "A\306	\306\211\203J\f@\211@\3078\"#\203: #<\203+ \"#>\204: #;\203B\310#\"\"\203B\311\312\"\306$\n\310\313\"\"\211$\203X \"$T\306O\202Z \"$\n\203\205 \nA\211\n\203A\n\314=\203} \f\203A$\f\202A\n\nB\202A\311\315\"A\311\316\"A\311\317\"A\311\320\"A\311\321\"A\211\204\273 \204\273 \204\273 \203@\322\323\324\325\205\311 \326!C\205\323 \326!C\205\351 <\203\346 \327\326\"\202\351 C\205\361 C$\330#\331Q\325\332D<\203*\306%&&\203 \333&\211A&@B%B%\202\n\334\335%\237\"*\202.\333D$C#\nB\310\336\"\203@\306\f-**\fA\211\204 *\f\203Z'\203Z\f\nB\337\n!'\203g\340\202h\341\nB\f\203{'\204{\340\n\fE\n*\207" [gnus-newsrc-alist newsrc split info #1=#:--dolist-temp--88789 params nil 5 string-match assoc split-spec ":" catch-all to-address to-list extra-aliases split-regexp split-exclude "\\(" mapconcat identity append regexp-quote mapcar "\\|" "\\)" any - apply nconc "" reverse | & group groups group-clean res seq no-crosspost] 10 (#$ . 3328)])
(provide 'gnus-mlspl)
