nil, Gnus will gather all loose subtrees into one big tree and create a dummy root at the top. (Wait a minute. Root at the top? Yup.) Loose subtrees occur when the real root has expired, or you've read or killed the root in a previous session.
When there is no real root of a thread, Gnus will have to fudge something. This variable says what fudging method Gnus should use. There are four possible values:
gnus-summary-dummy-line-formatis used to specify the format of the dummy roots. It accepts only one format spec: ‘S’, which is the subject of the article. See Formatting Variables. If you want all threads to have a dummy root, even the non-gathered ones, set
gnus-summary-same-subjectas the subject (see Summary Buffer Format).)
nil, Gnus requires an exact match between the subjects of the loose threads before gathering them into one big super-thread. This might be too strict a requirement, what with the presence of stupid newsreaders that chop off long subject lines. If you think so, set this variable to, say, 20 to require that only the first 20 characters of the subjects have to match. If you set this variable to a really low number, you'll find that Gnus will gather everything in sight into one thread, which isn't very helpful.
If you set this variable to the special value
fuzzy, Gnus will
use a fuzzy string comparison algorithm on the subjects (see Fuzzy Matching).
gnus-summary-gather-subject-limitto something as low as 10, you might consider setting this variable to something sensible:
(setq gnus-simplify-ignored-prefixes (concat "\\`\\[?\\(" (mapconcat 'identity '("looking" "wanted" "followup" "summary\\( of\\)?" "help" "query" "problem" "question" "answer" "reference" "announce" "How can I" "How to" "Comparison of" ;; ... ) "\\|") "\\)\\s *\\(" (mapconcat 'identity '("for" "for reference" "with" "about") "\\|") "\\)?\\]?:?[ \t]*"))
All words that match this regexp will be removed before comparing two
nil, this variable overrides
gnus-summary-gather-subject-limit. This variable should be a list of functions to apply to the
Subjectstring iteratively to arrive at the simplified version of the string.
Useful functions to put in this list include:
You may also write your own functions, of course.
gnus-summary-gather-exclude-subjectto say what subjects should be excluded from the gathering process.
Subjectheaders. This means that totally unrelated articles may end up in the same “thread”, which is confusing. An alternate approach is to look at all the
Message-IDs in all the
Referencesheaders to find matches. This will ensure that no gathered threads ever include unrelated articles, but it also means that people who have posted with broken newsreaders won't be gathered properly. The choice is yours—plague or cholera:
If you want to test gathering by
References, you could say
(setq gnus-summary-thread-gathering-function 'gnus-gather-threads-by-references)