(gnus-group-make-articles-read name idlist))))
xref-hashtb)))))
-(defun gnus-group-make-articles-read (group articles)
- "Update the info of GROUP to say that ARTICLES are read."
- (let* ((num 0)
- (entry (gnus-gethash group gnus-newsrc-hashtb))
+(defun gnus-compute-read-articles (group articles)
+ (let* ((entry (gnus-gethash group gnus-newsrc-hashtb))
(info (nth 2 entry))
- (active (gnus-active group))
- range)
+ (active (gnus-active group)))
(when entry
;; First peel off all illegal article numbers.
(when active
(when (or (> id (cdr active))
(< id (car active)))
(setq articles (delq id articles))))))
+ ;; If the read list is nil, we init it.
+ (if (and active
+ (null (gnus-info-read info))
+ (> (car active) 1))
+ (setq ninfo (cons 1 (1- (car active))))
+ (setq ninfo (gnus-info-read info)))
+ ;; Then we add the read articles to the range.
+ (gnus-add-to-range
+ ninfo (setq articles (sort articles '<))))))
+
+(defun gnus-group-make-articles-read (group articles)
+ "Update the info of GROUP to say that ARTICLES are read."
+ (let* ((num 0)
+ (entry (gnus-gethash group gnus-newsrc-hashtb))
+ (info (nth 2 entry))
+ (active (gnus-active group))
+ range)
+ (when entry
+ (setq range (gnus-compute-read-articles group articles))
(save-excursion
(set-buffer gnus-group-buffer)
(gnus-undo-register
(gnus-info-set-read ',info ',(gnus-info-read info))
(gnus-get-unread-articles-in-group ',info (gnus-active ,group))
(gnus-group-update-group ,group t))))
- ;; If the read list is nil, we init it.
- (and active
- (null (gnus-info-read info))
- (> (car active) 1)
- (gnus-info-set-read info (cons 1 (1- (car active)))))
- ;; Then we add the read articles to the range.
- (gnus-info-set-read
- info
- (setq range
- (gnus-add-to-range
- (gnus-info-read info) (setq articles (sort articles '<)))))
+ ;; Add the read articles to the range.
+ (gnus-info-set-read info range)
;; Then we have to re-compute how many unread
;; articles there are in this group.
(when active
(gnus-summary-goto-subject article))))
(defun gnus-summary-goto-article (article &optional all-headers force)
- "Fetch ARTICLE and display it if it exists.
+ "Fetch ARTICLE (article number or Message-ID) and display it if it exists.
If ALL-HEADERS is non-nil, no header lines are hidden."
(interactive
(list
- (string-to-int
- (completing-read
- "Article number: "
- (mapcar (lambda (number) (list (int-to-string number)))
- gnus-newsgroup-limit)))
+ (completing-read
+ "Article number or Message-ID: "
+ (mapcar (lambda (number) (list (int-to-string number)))
+ gnus-newsgroup-limit))
current-prefix-arg
t))
(prog1
- (if (gnus-summary-goto-subject article force)
- (gnus-summary-display-article article all-headers)
- (gnus-message 4 "Couldn't go to article %s" article) nil)
+ (if (and (stringp article)
+ (string-match "@" article))
+ (gnus-summary-refer-article article)
+ (when (stringp article)
+ (setq article (string-to-number article)))
+ (if (gnus-summary-goto-subject article force)
+ (gnus-summary-display-article article all-headers)
+ (gnus-message 4 "Couldn't go to article %s" article) nil))
(gnus-summary-position-point)))
(defun gnus-summary-goto-last-article ()
(funcall gnus-summary-highlight-line-function article face))))
(goto-char p)))
-(defun gnus-update-read-articles (group unread)
+(defun gnus-update-read-articles (group unread &optional compute)
"Update the list of read articles in GROUP."
(let* ((active (or gnus-newsgroup-active (gnus-active group)))
(entry (gnus-gethash group gnus-newsrc-hashtb))
(setq unread (cdr unread)))
(when (<= prev (cdr active))
(push (cons prev (cdr active)) read))
- (save-excursion
- (set-buffer gnus-group-buffer)
- (gnus-undo-register
- `(progn
- (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
- (gnus-info-set-read ',info ',(gnus-info-read info))
- (gnus-get-unread-articles-in-group ',info (gnus-active ,group))
- (gnus-group-update-group ,group t))))
- ;; Enter this list into the group info.
- (gnus-info-set-read
- info (if (> (length read) 1) (nreverse read) read))
- ;; Set the number of unread articles in gnus-newsrc-hashtb.
- (gnus-get-unread-articles-in-group info (gnus-active group))
- t)))
+ (if compute
+ (if (> (length read) 1) (nreverse read) read)
+ (save-excursion
+ (set-buffer gnus-group-buffer)
+ (gnus-undo-register
+ `(progn
+ (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
+ (gnus-info-set-read ',info ',(gnus-info-read info))
+ (gnus-get-unread-articles-in-group ',info (gnus-active ,group))
+ (gnus-group-update-group ,group t))))
+ ;; Enter this list into the group info.
+ (gnus-info-set-read
+ info (if (> (length read) 1) (nreverse read) read))
+ ;; Set the number of unread articles in gnus-newsrc-hashtb.
+ (gnus-get-unread-articles-in-group info (gnus-active group))
+ t))))
(defun gnus-offer-save-summaries ()
"Offer to save all active summary buffers."
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Quassia Gnus 0.3 Manual
+@settitle Quassia Gnus 0.4 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Quassia Gnus 0.3 Manual
+@title Quassia Gnus 0.4 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Quassia Gnus 0.3.
+This manual corresponds to Quassia Gnus 0.4.
@end ifinfo
@kbd{M-x gnus-other-frame} instead.
If things do not go smoothly at startup, you have to twiddle some
-variables.
+variables in your @file{~/.gnus} file. This file is similar to
+@file{~/.emacs}, but is read when gnus starts.
@menu
* Finding the News:: Choosing a method for getting news.
@item gnus-subscribe-randomly
@vindex gnus-subscribe-randomly
-Subscribe all new groups randomly.
+Subscribe all new groups in arbitrary order. This really means that all
+new groups will be added at ``the top'' of the grop buffer.
@item gnus-subscribe-alphabetically
@vindex gnus-subscribe-alphabetically
-Subscribe all new groups alphabetically.
+Subscribe all new groups in alphabetical order.
@item gnus-subscribe-hierarchically
@vindex gnus-subscribe-hierarchically
@item gnus-subscribe-interactively
@vindex gnus-subscribe-interactively
Subscribe new groups interactively. This means that Gnus will ask
-you about @strong{all} new groups.
+you about @strong{all} new groups. The groups you choose to subscribe
+to will be subscribed hierarchically.
@item gnus-subscribe-killed
@vindex gnus-subscribe-killed
scoring/killing will be performed, there will be no highlights and no
expunging. This might be useful if you're in a real hurry and have to
enter some humongous group. If you give a 0 prefix to this command
-(i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer.
-This might be useful if you want to toggle threading before entering the
-group.
+(i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer,
+which is useful if you want to toggle threading before generating the
+summary buffer (@pxref{Summary Generation Commands}).
@item M-SPACE
@kindex M-SPACE (Group)
use this level as the ``work'' level.
@vindex gnus-activate-level
-Gnus will normally just activate groups on level
-@code{gnus-activate-level} or less. If you don't want to activate
-unsubscribed groups, for instance, you might set this variable to
-5. The default is 6.
+Gnus will normally just activate (i. e., query the server about) groups
+on level @code{gnus-activate-level} or less. If you don't want to
+activate unsubscribed groups, for instance, you might set this variable
+to 5. The default is 6.
@node Group Score
(@code{gnus-group-delete-group}). If given a prefix, this function will
actually delete all the articles in the group, and forcibly remove the
group itself from the face of the Earth. Use a prefix only if you are
-absolutely sure of what you are doing.
+absolutely sure of what you are doing. This command can't be used on
+read-only groups (like @code{nntp} group), though.
@item G V
@kindex G V (Group)
@code{t}, newly composed messages will be @code{Gcc}'d to the current
group. If it is present and set to @code{none}, no @code{Gcc:} header
will be generated, if it is present and a string, this string will be
-inserted literally as a @code{gcc} header (this symbol takes precedence over
-any default @code{Gcc} rules as described later).
+inserted literally as a @code{gcc} header (this symbol takes precedence
+over any default @code{Gcc} rules as described later). @xref{Archived
+Messages}
@item auto-expire
@cindex auto-expire
@item a
@kindex a (Group)
@findex gnus-group-post-news
-Post an article to a group (@code{gnus-group-post-news}). The current
-group name will be used as the default.
+Post an article to a group (@code{gnus-group-post-news}). If given a
+prefix, the current group name will be used as the default.
@item m
@kindex m (Group)
@item S
Subject string.
@item s
-Subject if the article is the root or the previous article had a
-different subject, @code{gnus-summary-same-subject} otherwise.
+Subject if the article is the root of the thread or the previous article
+had a different subject, @code{gnus-summary-same-subject} otherwise.
(@code{gnus-summary-same-subject} defaults to @samp{}.)
@item F
Full @code{From} header.
@item R
Replied.
@item i
-Score as a number.
+Score as a number (@pxref{Scoring}).
@item z
@vindex gnus-summary-zcore-fuzz
Zcore, @samp{+} if above the default level and @samp{-} if below the
@item U
Number of unread articles in this group.
@item e
-Number of unselected articles in this group.
+Number of unread articles in this group that aren't displayed in the
+summary buffer.
@item Z
A string with the number of unread and unselected articles represented
either as @samp{<%U(+%e) more>} if there are both unread and unselected
@item S
Subject of the current article.
@item u
-User-defined spec.
+User-defined spec (@pxref{User-Defined Specs}).
@item s
-Name of the current score file.
+Name of the current score file (@pxref{Scoring}).
@item d
-Number of dormant articles.
+Number of dormant articles (@pxref{Unread Articles}).
@item t
-Number of ticked articles.
+Number of ticked articles (@pxref{Unread Articles}).
@item r
Number of articles that have been marked as read in this session.
@item E
@kindex j (Summary)
@kindex G j (Summary)
@findex gnus-summary-goto-article
-Ask for an article number and then go to that article
-(@code{gnus-summary-goto-article}).
+Ask for an article number or @code{Message-ID}, and then go to that
+article (@code{gnus-summary-goto-article}).
@item G g
@kindex G g (Summary)
@item G o
@kindex G o (Summary)
@findex gnus-summary-pop-article
+@cindex history
+@cindex article history
Pop an article off the summary history and go to this article
(@code{gnus-summary-pop-article}). This command differs from the
command above in that you can pop as many previous articles off the
-history as you like.
+history as you like. For a somewhat related issue (if you use this
+command a lot), @pxref{Article Backlog}.
@end table
@item S O m
@kindex S O m (Summary)
@findex gnus-uu-digest-mail-forward
-Digest the current series and forward the result using mail
-(@code{gnus-uu-digest-mail-forward}). This command uses the
-process/prefix convention (@pxref{Process/Prefix}).
+Digest the current series (@pxref{Decoding Articles}) and forward the
+result using mail (@code{gnus-uu-digest-mail-forward}). This command
+uses the process/prefix convention (@pxref{Process/Prefix}).
@item S M-c
@kindex S M-c (Summary)
Marked as dormant (@code{gnus-dormant-mark}).
@dfn{Dormant articles} will only appear in the summary buffer if there
-are followups to it.
+are followups to it. If you want to see them even if they don't have
+followups, you can use the @kbd{/ D} command (@pxref{Limiting}).
@item SPACE
@vindex gnus-unread-mark
@item
@vindex gnus-cached-mark
-Articles stored in the article cache will be marked with an
-@samp{*} in the second column (@code{gnus-cached-mark}).
+Articles stored in the article cache will be marked with an @samp{*} in
+the second column (@code{gnus-cached-mark}). @xref{Article Caching}
@item
@vindex gnus-saved-mark
All the marking commands understand the numeric prefix.
@table @kbd
+@item M c
+@itemx M-u
+@kindex M c (Summary)
+@kindex M-u (Summary)
+@findex gnus-summary-clear-mark-forward
+@cindex mark as unread
+Clear all readedness-marks from the current article
+(@code{gnus-summary-clear-mark-forward}). In other words, mark the
+article as unread.
+
@item M t
@itemx !
@kindex ! (Summary)
@kindex M t (Summary)
@findex gnus-summary-tick-article-forward
Tick the current article (@code{gnus-summary-tick-article-forward}).
+@xref{Article Caching}
@item M ?
@itemx ?
@kindex M ? (Summary)
@findex gnus-summary-mark-as-dormant
Mark the current article as dormant
-(@code{gnus-summary-mark-as-dormant}).
+(@code{gnus-summary-mark-as-dormant}). @xref{Article Caching}
@item M d
@itemx d
Kill all articles with scores below the default score (or below the
numeric prefix) (@code{gnus-summary-kill-below}).
-@item M c
-@itemx M-u
-@kindex M c (Summary)
-@kindex M-u (Summary)
-@findex gnus-summary-clear-mark-forward
-@cindex mark as unread
-Clear all readedness-marks from the current article
-(@code{gnus-summary-clear-mark-forward}).
-
@item M e
@itemx E
@kindex M e (Summary)
to articles directly after the articles they respond to---in a
hierarchical fashion.
+Threading is done by looking at the @code{References} headers of the
+articles. In a perfect world, this would be enough to build pretty
+trees, but unfortunately, the @code{References} header is often broken
+or simply missing. Weird news propagration excarcerbates the problem,
+so one has to employ other heuristics to get pleasing results. A
+plethora of approaches exists, as detailed in horrible detail in
+@pxref{Customizing Threading}.
+
+First, a quick overview of the concepts:
+
+@table @dfn
+@item root
+The top-most article in a thread; the first article in the thread.
+
+@item thread
+A tree-like article structure.
+
+@item sub-thread
+A small(er) section of this tree-like structure.
+
+@item loose threads
+Threads often lose their roots due to article expiry, or due to the root
+already having been read in a previous session, and not displayed in the
+summary buffer. We then typicall have many sub-threads that really
+belong to one thread, but are without connecting roots. These are
+called loose threads.
+
+@item thread gathering
+An attempt to gather loose threads into bigger threads.
+
+@item sparse threads
+A thread where the missing articles have been ``guessed'' at, and are
+displayed as empty lines in the summary buffer.
+
+@end table
+
+
@menu
* Customizing Threading:: Variables you can change to affect the threading.
* Thread Commands:: Thread based commands in the summary buffer.
@findex gnus-jog-cache
So where does the massive article-fetching and storing come into the
picture? The @code{gnus-jog-cache} command will go through all
-subscribed newsgroups, request all unread articles, and store them in
-the cache. You should only ever, ever ever ever, use this command if 1)
-your connection to the @sc{nntp} server is really, really, really slow
-and 2) you have a really, really, really huge disk. Seriously.
+subscribed newsgroups, request all unread articles, score them, and
+store them in the cache. You should only ever, ever ever ever, use this
+command if 1) your connection to the @sc{nntp} server is really, really,
+really slow and 2) you have a really, really, really huge disk.
+Seriously.
@vindex gnus-uncacheable-groups
It is likely that you do not want caching on some groups. For instance,
@menu
* Uuencoded Articles:: Uudecode articles.
-* Shared Articles:: Unshar articles.
+* Shell Archives:: Unshar articles.
* PostScript Files:: Split PostScript.
* Other Files:: Plain save and binhex.
* Decoding Variables:: Variables for a happy decoding.
* Viewing Files:: You want to look at the result of the decoding?
@end menu
+@cindex series
+@cindex article series
All these functions use the process/prefix convention
(@pxref{Process/Prefix}) for finding out what articles to work on, with
the extension that a ``single article'' means ``a single series''. Gnus
off.
-@node Shared Articles
-@subsection Shared Articles
+@node Shell Archives
+@subsection Shell Archives
@cindex unshar
+@cindex shell archives
@cindex shared articles
+Shell archives (``shar files'') used to be a popular way to distribute
+sources, but it isn't used all that much today. In any case, we have
+some commands to deal with these:
+
@table @kbd
@item X s
@item W c
@kindex W c (Summary)
@findex gnus-article-remove-cr
-Remove CR (@code{gnus-article-remove-cr}).
+Remove CR (i. e., @samp{^M}s on the end of the lines)
+(@code{gnus-article-remove-cr}).
@item W q
@kindex W q (Summary)
@findex gnus-article-de-quoted-unreadable
Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
+Quoted-Printable is one common @sc{mime} encoding employed when sending
+non-ASCII (i. e., 8-bit) articles. It typically makes strings like
+@samp{déjà vu} look like @samp{d=E9j=E0 vu}, which doesn't look very
+readable to me.
@item W f
@kindex W f (Summary)
@item W b
@kindex W b (Summary)
@findex gnus-article-add-buttons
-Add clickable buttons to the article (@code{gnus-article-add-buttons}).
+Add clickable buttons to the article (@code{gnus-article-add-buttons}).
+@xref{Article Buttons}
@item W B
@kindex W B (Summary)
People often include references to other stuff in articles, and it would
be nice if Gnus could just fetch whatever it is that people talk about
-with the minimum of fuzz.
+with the minimum of fuzz when you hit @kbd{RET} or use the middle mouse
+button on these references.
Gnus adds @dfn{buttons} to certain standard references by default:
Well-formed URLs, mail addresses and Message-IDs. This is controlled by
@end enumerate
This variable can also be a list where the elements may be of the types
-listed above.
+listed above. Here's an example:
+
+@lisp
+(setq gnus-signature-limit
+ '(200.0 "^---*Forwarded article"))
+@end lisp
+
+This means that if there are more than 200 lines after the signature
+separator, or the text after the signature separator is matched by
+the regular expression @samp{^---*Forwarded article}, then it isn't a
+signature after all.
@node Article Commands
If you are writing a message (mail or news) and suddenly remember that
you have a steak in the oven (or some pesto in the food processor, you
-craazy vegetarians), you'll probably wish there was a method to save the
-message you are writing so that you can continue editing it some other
-day, and send it when you feel its finished.
+craaazy vegetarians), you'll probably wish there was a method to save
+the message you are writing so that you can continue editing it some
+other day, and send it when you feel its finished.
Well, don't worry about it. Whenever you start composing a message of
some sort using the Gnus mail and post commands, the buffer you get will
group.)
@cindex nndraft
-@vindex gnus-draft-group-directory
+@vindex nndraft-directory
The draft group is a special group (which is implemented as an
@code{nndraft} group, if you absolutely have to know) called
-@samp{nndraft:drafts}. The variable @code{gnus-draft-group-directory}
-controls both the name of the group and the location---the leaf element
-in the path will be used as the name of the group. What makes this
-group special is that you can't tick any articles in it or mark any
-articles as read---all articles in the group are permanently unread.
+@samp{nndraft:drafts}. The variable @code{nndraft-directory} says where
+@code{nndraft} is to store its files. What makes this group special is
+that you can't tick any articles in it or mark any articles as
+read---all articles in the group are permanently unread.
If the group doesn't exist, it will be created and you'll be subscribed
-to it.
-
-@findex gnus-dissociate-buffer-from-draft
-@kindex C-c M-d (Mail)
-@kindex C-c M-d (Post)
-@findex gnus-associate-buffer-with-draft
-@kindex C-c C-d (Mail)
-@kindex C-c C-d (Post)
-If you're writing some super-secret message that you later want to
-encode with PGP before sending, you may wish to turn the auto-saving
-(and association with the draft group) off. You never know who might be
-interested in reading all your extremely valuable and terribly horrible
-and interesting secrets. The @kbd{C-c M-d}
-(@code{gnus-dissociate-buffer-from-draft}) command does that for you.
-If you change your mind and want to turn the auto-saving back on again,
-@kbd{C-c C-d} (@code{gnus-associate-buffer-with-draft} does that.
-
-@vindex gnus-use-draft
-To leave association with the draft group off by default, set
-@code{gnus-use-draft} to @code{nil}. It is @code{t} by default.
-
-@findex gnus-summary-send-draft
-@kindex S D c (Summary)
+to it. The only way to make it disappear from the Group buffer is to
+unsubscribe it.
+
+@c @findex gnus-dissociate-buffer-from-draft
+@c @kindex C-c M-d (Mail)
+@c @kindex C-c M-d (Post)
+@c @findex gnus-associate-buffer-with-draft
+@c @kindex C-c C-d (Mail)
+@c @kindex C-c C-d (Post)
+@c If you're writing some super-secret message that you later want to
+@c encode with PGP before sending, you may wish to turn the auto-saving
+@c (and association with the draft group) off. You never know who might be
+@c interested in reading all your extremely valuable and terribly horrible
+@c and interesting secrets. The @kbd{C-c M-d}
+@c (@code{gnus-dissociate-buffer-from-draft}) command does that for you.
+@c If you change your mind and want to turn the auto-saving back on again,
+@c @kbd{C-c C-d} (@code{gnus-associate-buffer-with-draft} does that.
+@c
+@c @vindex gnus-use-draft
+@c To leave association with the draft group off by default, set
+@c @code{gnus-use-draft} to @code{nil}. It is @code{t} by default.
+
+@findex gnus-draft-edit-message
+@kindex D e (Draft)
When you want to continue editing the article, you simply enter the
-draft group and push @kbd{S D c} (@code{gnus-summary-send-draft}) to do
+draft group and push @kbd{D e} (@code{gnus-draft-edit-message}) to do
that. You will be placed in a buffer where you left off.
Rejected articles will also be put in this draft group (@pxref{Rejected
Articles}).
-@findex gnus-summary-send-all-drafts
+@findex gnus-draft-send-all-messages
+@findex gnus-draft-send-message
If you have lots of rejected messages you want to post (or mail) without
-doing further editing, you can use the @kbd{S D a} command
-(@code{gnus-summary-send-all-drafts}). This command understands the
-process/prefix convention (@pxref{Process/Prefix}).
+doing further editing, you can use the @kbd{D s} command
+(@code{gnus-draft-send-message}). This command understands the
+process/prefix convention (@pxref{Process/Prefix}). The @kbd{D S}
+command (@code{gnus-draft-send-all-messages}) will ship off all messages
+in the buffer.
+
+If you have some messages that you wish not to send, you can use the
+@kbd{D t} (@code{gnus-draft-toggle-sending}) command to mark the message
+as unsendable. This is a toggling command.
@node Rejected Articles
* Agent Basics:: How it all is supposed to work.
* Agent Categories:: How to tell the Gnus Agent what to download.
* Agent Commands:: New commands for all the buffers.
+* Outgoing Messages:: What happens when you post/mail something?
* Agent Variables:: Customizing is fun.
@end menu
And then you go to step 2.
@end itemize
+Here are some things you should do the first time (or so) that you use
+the Agent.
+
+@itemize @bullet
+
+@item
+Decide which servers should be covered by the Agent. If you have a mail
+backend, it would probably be nonsensical to have it covered by the
+Agent. Go to the server buffer (@kbd{^} in the group buffer) and press
+@kbd{J a} the server (or servers) that you wish to have covered by the
+Agent (@pxref{Server Agent Commands}). This will typically be only the
+primary select method, which is listed on the bottom in the buffer.
+
+@item
+Decide on download policy. @xref{Agent Categories}
+
+@item
+Uhm... that's it.
+@end itemize
+
@node Agent Categories
@subsection Agent Categories
Fetch all eligible articles in all groups
(@code{gnus-agent-fetch-session}).
+@item J S
+@kindex J S (Agent Group)
+@findex gnus-group-send-drafts
+Send all sendable messages in the draft group
+(@code{gnus-agent-fetch-session}). @xref{Drafts}
+
@item J a
@kindex J a (Agent Group)
@findex gnus-agent-add-group
@end table
+@node Outgoing Messages
+@subsection Outgoing Messages
+
+When Gnus is unplugged, all outgoing messages (both mail and news) are
+stored in the draft groups (@pxref{Drafts}). You can view them there
+after posting, and edit them at will.
+
+When Gnus is plugged again, you can send the messages either from the
+draft group with the special commands available there, or you can use
+the @kbd{J S} command in the group buffer to send all the sendable
+messages in the draft group.
+
+
+
@node Agent Variables
@subsection Agent Variables
(files "/hom/larsi/News/gnu.SCORE")
(exclude-files "all.SCORE")
(local (gnus-newsgroup-auto-expire t)
- (gnus-summary-make-false-root 'empty))
+ (gnus-summary-make-false-root empty))
(eval (ding)))
@end lisp
Each @var{var} will be made buffer-local to the current summary buffer,
and set to the value specified. This is a convenient, if somewhat
strange, way of setting variables in some groups if you don't like hooks
-much.
+much. Note that the @var{value} won't be evaluated.
@end table
These are article placeholders shown in the summary buffer when
@code{gnus-build-sparse-threads} has been switched on.
+@item threading
+@cindex threading
+To put responses to articles directly after the articles they respond
+to---in a hierarchical fashion.
+
+@item root
+@cindex root
+@cindex thread root
+The first article in a thread is the root. It is the ancestor of all
+articles in the thread.
+
+@item parent
+@cindex parent
+An article that has responses.
+
+@item child
+@cindex child
+An article that responds to a different article---its parent.
+
+@item digest
+@cindex digest
+A collection of messages in one file. The most common digest format is
+specified by RFC1153.
+
@end table