;ELC   
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require gnus gnus-sum gnus-group nnmail] 2)
#@86 Hook called just after `nnmail-split-fancy' is updated by
`gnus-group-split-update'.
(defvar gnus-group-split-updated-hook nil (#$ . 195))
#@195 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" (#$ . 341))
#@1077 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
`gnus-get-top-new-news-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.

(fn &optional AUTO-UPDATE CATCH-ALL)
(defalias 'gnus-group-split-setup #[512 "\302\211\203 \211\303\203 \304\202 \305\306\"\207" [nnmail-split-methods gnus-group-split-default-catch-all-group nnmail-split-fancy add-hook gnus-get-top-new-news-hook gnus-read-newsrc-el-hook gnus-group-split-update] 5 (#$ . 616) "P"])
#@291 Computes `nnmail-split-fancy' from group params and CATCH-ALL.
It does this 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'.

(fn &optional CATCH-ALL)
(defalias 'gnus-group-split-update #[256 "\303\304?\206	 	#\305\306!\207" [nnmail-crosspost gnus-group-split-default-catch-all-group nnmail-split-fancy gnus-group-split-fancy nil run-hooks gnus-group-split-updated-hook] 5 (#$ . 1984) nil])
#@179 Use 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 #[0 "\301\302 \210\300 )\207" [nnmail-split-fancy nil gnus-group-split-update] 1 (#$ . 2524)])
#@2061 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 omitted or nil, all
existing groups are considered.

if NO-CROSSPOST is omitted 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.others") 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")

(fn &optional GROUPS NO-CROSSPOST CATCH-ALL)
(defalias 'gnus-group-split-fancy #[768 "<\203 \203 \202 \302\303\304\305\306\307\"\310	\"\"\"!\304\211\203,\211@\311!\211\203$\312\236\304\313\314\"\262\211\203B T\304O\202C \262\203n A\211\262\203\"\315=\203c \203i \262\266\202%B\262\266\202%\316\236A\317\236A\320\236A\321\236A\322\236A\323\236A\204\231 \204\231 \204\231 \203 \324\325\326\310	\205\247 \327\n!C	\205\261 \327\n!C	\205\307 	<\203\304 \305\327\"\202\307 	C	\205\317 	C$\330#\331Q\262\332\333\334#<\203\353 \335\310\305\336\"\"\202\356 \337D\203\310\340DC#B\262\266\202\310\341DC#B\262\266\342\343\"\203 \304\262\266\266\210A\266\202\202 \210\203:\203:B\262\344!\262\203G\345\202H\346B\262\203Z\204Z\345E\262\207" [gnus-newsrc-alist gnus-parameters delete-dups delq nil mapcar make-closure #[257 "\211@\300\203 \300;\205 \301\300\"\205 \211\207" [V0 string-match] 5 "\n\n(fn INFO)"] append gnus-group-find-parameter split-spec string-search ":" catch-all to-address to-list extra-aliases split-regexp split-exclude match-list "\\(" mapconcat identity regexp-quote "\\|" "\\)" string-replace "@" "[@.]" apply #[257 "\300D\207" [-] 3 "\n\n(fn ARG)"] - list any string-match "" reverse | &] 25 (#$ . 2834)])
(provide 'gnus-mlspl)
