Function: gnus-registry-split-fancy-with-parent
gnus-registry-split-fancy-with-parent is a byte-compiled function
defined in gnus-registry.el.gz.
Signature
(gnus-registry-split-fancy-with-parent)
Documentation
Split this message into the same group as its parent.
The parent is obtained from the registry. This function can be used as an
entry in nnmail-split-fancy(var)/nnmail-split-fancy(fun) or nnimap-split-fancy, for example like
this: (: gnus-registry-split-fancy-with-parent)
This function tracks ALL backends, unlike
nnmail-split-fancy-with-parent which tracks only nnmail
messages.
For a message to be split, it looks for the parent message in the
References or In-Reply-To header and then looks in the registry
to see which group that message was put in. This group is
returned, unless gnus-registry-follow-group-p return nil for
that group.
See the Info node (gnus)Fancy Mail Splitting for more details.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-registry.el.gz
;; Function for nn{mail|imap}-split-fancy: look up all references in
;; the cache and if a match is found, return that group.
(defun gnus-registry-split-fancy-with-parent ()
"Split this message into the same group as its parent.
The parent is obtained from the registry. This function can be used as an
entry in `nnmail-split-fancy' or `nnimap-split-fancy', for example like
this: (: gnus-registry-split-fancy-with-parent)
This function tracks ALL backends, unlike
`nnmail-split-fancy-with-parent' which tracks only nnmail
messages.
For a message to be split, it looks for the parent message in the
References or In-Reply-To header and then looks in the registry
to see which group that message was put in. This group is
returned, unless `gnus-registry-follow-group-p' return nil for
that group.
See the Info node `(gnus)Fancy Mail Splitting' for more details."
(let* ((refstr (or (message-fetch-field "references") "")) ; guaranteed
(reply-to (message-fetch-field "in-reply-to")) ; may be nil
;; now, if reply-to is valid, append it to the References
(refstr (if reply-to
(concat refstr " " reply-to)
refstr))
(references (and refstr (gnus-extract-references refstr)))
;; these may not be used, but the code is cleaner having them up here
(sender (gnus-string-remove-all-properties
(message-fetch-field "from")))
(recipients (gnus-registry-sort-addresses
(or (message-fetch-field "cc") "")
(or (message-fetch-field "to") "")))
(subject (gnus-string-remove-all-properties
(gnus-registry-simplify-subject
(message-fetch-field "subject"))))
(nnmail-split-fancy-with-parent-ignore-groups
(if (listp nnmail-split-fancy-with-parent-ignore-groups)
nnmail-split-fancy-with-parent-ignore-groups
(list nnmail-split-fancy-with-parent-ignore-groups))))
(gnus-registry--split-fancy-with-parent-internal
:references references
:refstr refstr
:sender sender
:recipients recipients
:subject subject
:log-agent "Gnus registry fancy splitting with parent")))