\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Gnus 5.6.7 Manual
+@settitle Semi-gnus 6.7.9 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@c @direntry
-@c * Gnus: (gnus). The news reader Gnus.
+@c * Gnus: (gnus). The news reader gnus.
@c @end direntry
@iftex
@finalout
@ifinfo
-This file documents Gnus, the GNU Emacs newsreader.
+This file documents gnus, the GNU Emacs newsreader.
Copyright (C) 1995,96 Free Software Foundation, Inc.
@tex
@titlepage
-@title Gnus 5.6.7 Manual
+@title Semi-gnus 6.7.9 Manual
@author by Lars Magne Ingebrigtsen
@page
@node Top
-@top The Gnus Newsreader
+@top The gnus Newsreader
@ifinfo
-You can read news (and mail) from within Emacs by using Gnus. The news
+You can read news (and mail) from within Emacs by using gnus. The news
can be gotten by any nefarious means you can think of---@sc{nntp}, local
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Gnus 5.6.7.
+Semi-gnus provides MIME features based on SEMI API. So Semi-gnus
+supports your right to read strange messages including big images or
+other various kinds of formats. Semi-gnus also supports
+internationalization/localization and multiscript features based on MULE
+API. So Semi-gnus does not discriminate various language communities.
+Oh, if you are a Klingon, please wait Unicode Next Generation.
+
+This manual corresponds to Semi-gnus 6.7.9.
@end ifinfo
Gnus tries to empower people who read news the same way Emacs empowers
people who edit text. Gnus sets no limits to what the user should be
-allowed to do. Users are encouraged to extend Gnus to make it behave
+allowed to do. Users are encouraged to extend gnus to make it behave
like they want it to behave. A program should not control people;
people should be empowered to do what they want by using (or abusing)
the program.
@end menu
@node Starting Up
-@chapter Starting Gnus
+@chapter Starting gnus
@cindex starting up
@kindex M-x gnus
@findex gnus
-If your system administrator has set things up properly, starting Gnus
+If your system administrator has set things up properly, starting gnus
and reading news is extremely easy---you just type @kbd{M-x gnus} in
your Emacs.
@findex gnus-other-frame
@kindex M-x gnus-other-frame
-If you want to start Gnus in a different frame, you can use the command
+If you want to start gnus in a different frame, you can use the command
@kbd{M-x gnus-other-frame} instead.
If things do not go smoothly at startup, you have to twiddle some
@menu
* Finding the News:: Choosing a method for getting news.
-* The First Time:: What does Gnus do the first time you start it?
+* The First Time:: What does gnus do the first time you start it?
* The Server is Down:: How can I read my mail then?
-* Slave Gnusae:: You can have more than one Gnus active at a time.
-* Fetching a Group:: Starting Gnus just to read a group.
-* New Groups:: What is Gnus supposed to do with new groups?
+* Slave Gnusae:: You can have more than one gnus active at a time.
+* Fetching a Group:: Starting gnus just to read a group.
+* New Groups:: What is gnus supposed to do with new groups?
* Startup Files:: Those pesky startup files---@file{.newsrc}.
* Auto Save:: Recovering from a crash.
* The Active File:: Reading the active file over a slow line Takes Time.
@vindex gnus-select-method
@c @head
-The @code{gnus-select-method} variable says where Gnus should look for
+The @code{gnus-select-method} variable says where gnus should look for
news. This variable should be a list where the first element says
@dfn{how} and the second element says @dfn{where}. This method is your
-native method. All groups not fetched with this method are
-foreign groups.
+native method. All groups not fetched with this method are foreign
+groups.
For instance, if the @samp{news.somewhere.edu} @sc{nntp} server is where
you want to get your daily dosage of news from, you'd say:
@vindex gnus-nntpserver-file
@cindex NNTPSERVER
@cindex @sc{nntp} server
-If this variable is not set, Gnus will take a look at the
+If this variable is not set, gnus will take a look at the
@code{NNTPSERVER} environment variable. If that variable isn't set,
-Gnus will see whether @code{gnus-nntpserver-file}
+gnus will see whether @code{gnus-nntpserver-file}
(@file{/etc/nntpserver} by default) has any opinions on the matter. If
-that fails as well, Gnus will try to use the machine running Emacs as an @sc{nntp} server. That's a long shot, though.
+that fails as well, gnus will try to use the machine running Emacs as an
+@sc{nntp} server. That's a long shot, though.
@vindex gnus-nntp-server
If @code{gnus-nntp-server} is set, this variable will override
@code{gnus-nntp-server} to @code{nil}, which is what it is by default.
@vindex gnus-secondary-servers
-You can also make Gnus prompt you interactively for the name of an
+You can also make gnus prompt you interactively for the name of an
@sc{nntp} server. If you give a non-numerical prefix to @code{gnus}
-(i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
+(i.e., @kbd{C-u M-x gnus}), gnus will let you choose between the servers
in the @code{gnus-secondary-servers} list (if any). You can also just
type in the name of any server you feel like visiting.
@section The First Time
@cindex first time usage
-If no startup files exist, Gnus will try to determine what groups should
+If no startup files exist, gnus will try to determine what groups should
be subscribed by default.
@vindex gnus-default-subscribed-newsgroups
-If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
+If the variable @code{gnus-default-subscribed-newsgroups} is set, gnus
will subscribe you to just those groups in that list, leaving the rest
killed. Your system administrator should have set this variable to
something useful.
-Since she hasn't, Gnus will just subscribe you to a few arbitrarily
+Since she hasn't, gnus will just subscribe you to a few arbitrarily
picked groups (i.e., @samp{*.newusers}). (@dfn{Arbitrary} is defined
here as @dfn{whatever Lars thinks you should read}.)
-You'll also be subscribed to the Gnus documentation group, which should
+You'll also be subscribed to the gnus documentation group, which should
help you with most common problems.
-If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
+If @code{gnus-default-subscribed-newsgroups} is @code{t}, gnus will just
use the normal functions for handling new groups, and not do anything
special.
@section The Server is Down
@cindex server errors
-If the default server is down, Gnus will understandably have some
+If the default server is down, gnus will understandably have some
problems starting. However, if you have some mail groups in addition to
-the news groups, you may want to start Gnus anyway.
+the news groups, you may want to start gnus anyway.
Gnus, being the trusting sort of program, will ask whether to proceed
without a native select method if that server can't be contacted. This
@c @head
If you know that the server is definitely down, or you just want to read
your mail without bothering with the server at all, you can use the
-@code{gnus-no-server} command to start Gnus. That might come in handy
+@code{gnus-no-server} command to start gnus. That might come in handy
if you're in a hurry as well. This command will not attempt to contact
your primary server---instead, it will just activate all groups on level
1 and 2. (You should preferably keep no native groups on those two
@section Slave Gnusae
@cindex slave
-You might want to run more than one Emacs with more than one Gnus at the
-same time. If you are using different @file{.newsrc} files (e.g., if you
-are using the two different Gnusae to read from two different servers),
-that is no problem whatsoever. You just do it.
+You might want to run more than one Emacs with more than one gnus at the
+same time. If you are using different @file{.newsrc} files (e.g., if
+you are using the two different gnusae to read from two different
+servers), that is no problem whatsoever. You just do it.
The problem appears when you want to run two Gnusae that use the same
@code{.newsrc} file.
-To work around that problem some, we here at the Think-Tank at the Gnus
-Towers have come up with a new concept: @dfn{Masters} and
-@dfn{slaves}. (We have applied for a patent on this concept, and have
-taken out a copyright on those words. If you wish to use those words in
-conjunction with each other, you have to send $1 per usage instance to
-me. Usage of the patent (@dfn{Master/Slave Relationships In Computer
-Applications}) will be much more expensive, of course.)
+To work around that problem some, we here at the Think-Tank at the gnus
+Towers have come up with a new concept: @dfn{Masters} and @dfn{slaves}.
+(We have applied for a patent on this concept, and have taken out a
+copyright on those words. If you wish to use those words in conjunction
+with each other, you have to send $1 per usage instance to me. Usage of
+the patent (@dfn{Master/Slave Relationships In Computer Applications})
+will be much more expensive, of course.)
-Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
-however you do it). Each subsequent slave Gnusae should be started with
+Anyways, you start one gnus up the normal way with @kbd{M-x gnus} (or
+however you do it). Each subsequent slave gnusae should be started with
@kbd{M-x gnus-slave}. These slaves won't save normal @file{.newsrc}
files, but instead save @dfn{slave files} that contain information only
-on what groups have been read in the slave session. When a master Gnus
+on what groups have been read in the slave session. When a master gnus
starts, it will read (and delete) these slave files, incorporating all
information from them. (The slave files will be read in the sequence
they were created, so the latest changes will have precedence.)
@findex gnus-fetch-group
It is sometimes convenient to be able to just say ``I want to read this
-group and I don't care whether Gnus has been started or not''. This is
+group and I don't care whether gnus has been started or not''. This is
perhaps more useful for people who write code than for users, but the
command @code{gnus-fetch-group} provides this functionality in any case.
It takes the group name as a parameter.
@code{nil}, you can always subscribe to the new groups just by pressing
@kbd{U} in the group buffer (@pxref{Group Maintenance}). This variable
is @code{ask-server} by default. If you set this variable to
-@code{always}, then Gnus will query the backends for new groups even
+@code{always}, then gnus will query the backends for new groups even
when you do the @kbd{g} command (@pxref{Scanning New Messages}).
@menu
* Checking New Groups:: Determining what groups are new.
-* Subscription Methods:: What Gnus should do with new groups.
-* Filtering New Groups:: Making Gnus ignore certain new groups.
+* Subscription Methods:: What gnus should do with new groups.
+* Filtering New Groups:: Making gnus ignore certain new groups.
@end menu
Gnus normally determines whether a group is new or not by comparing the
list of groups from the active file(s) with the lists of subscribed and
dead groups. This isn't a particularly fast method. If
-@code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the
+@code{gnus-check-new-newsgroups} is @code{ask-server}, gnus will ask the
server for new groups since the last time. This is both faster and
cheaper. This also means that you can get rid of the list of killed
groups altogether, so you may set @code{gnus-save-killed-list} to
server supports @code{ask-server}? No? Good, because I don't have a
fail-safe answer. I would suggest just setting this variable to
@code{ask-server} and see whether any new groups appear within the next
-few days. If any do, then it works. If none do, then it doesn't
-work. I could write a function to make Gnus guess whether the server
-supports @code{ask-server}, but it would just be a guess. So I won't.
-You could @code{telnet} to the server and say @code{HELP} and see
-whether it lists @samp{NEWGROUPS} among the commands it understands. If
-it does, then it might work. (But there are servers that lists
-@samp{NEWGROUPS} without supporting the function properly.)
-
-This variable can also be a list of select methods. If so, Gnus will
+few days. If any do, then it works. If none do, then it doesn't work.
+I could write a function to make gnus guess whether the server supports
+@code{ask-server}, but it would just be a guess. So I won't. You could
+@code{telnet} to the server and say @code{HELP} and see whether it lists
+@samp{NEWGROUPS} among the commands it understands. If it does, then it
+might work. (But there are servers that lists @samp{NEWGROUPS} without
+supporting the function properly.)
+
+This variable can also be a list of select methods. If so, gnus will
issue an @code{ask-server} command to each of the select methods, and
subscribe them (or not) using the normal methods. This might be handy
if you are monitoring a few servers for new groups. A side effect is
@subsection Subscription Methods
@vindex gnus-subscribe-newsgroup-method
-What Gnus does when it encounters a new group is determined by the
+What gnus does when it encounters a new group is determined by the
@code{gnus-subscribe-newsgroup-method} variable.
This variable should contain a function. This function will be called
@item gnus-subscribe-interactively
@vindex gnus-subscribe-interactively
-Subscribe new groups interactively. This means that Gnus will ask
-you about @strong{all} new groups. The groups you choose to subscribe
-to will be subscribed hierarchically.
+Subscribe new groups interactively. This means that gnus will ask 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
@vindex gnus-subscribe-hierarchical-interactive
A closely related variable is
@code{gnus-subscribe-hierarchical-interactive}. (That's quite a
-mouthful.) If this variable is non-@code{nil}, Gnus will ask you in a
+mouthful.) If this variable is non-@code{nil}, gnus will ask you in a
hierarchical fashion whether to subscribe to new groups or not. Gnus
will ask you for each sub-hierarchy whether you want to descend the
hierarchy or not.
Now, you all know about the @file{.newsrc} file. All subscription
information is traditionally stored in this file.
-Things got a bit more complicated with @sc{gnus}. In addition to
+Things got a bit more complicated with @sc{GNUS}. In addition to
keeping the @file{.newsrc} file updated, it also used a file called
@file{.newsrc.el} for storing all the information that didn't fit into
the @file{.newsrc} file. (Actually, it also duplicated everything in
-the @file{.newsrc} file.) @sc{gnus} would read whichever one of these
+the @file{.newsrc} file.) @sc{GNUS} would read whichever one of these
files was the most recently saved, which enabled people to swap between
@sc{gnus} and other newsreaders.
never delete the @file{.newsrc.eld} file---it contains much information
not stored in the @file{.newsrc} file.
+In addition, gnus does not change anything. Hail comrade Lars!
+
@vindex gnus-save-newsrc-file
You can turn off writing the @file{.newsrc} file by setting
@code{gnus-save-newsrc-file} to @code{nil}, which means you can delete
-the file and save some space, as well as making exit from Gnus faster.
+the file and save some space, as well as exiting from gnus faster.
However, this will make it impossible to use other newsreaders than
-Gnus. But hey, who would want to, right?
+gnus. But hey, who would want to, right?
@vindex gnus-save-killed-list
If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
@end lisp
@vindex gnus-init-file
-When Gnus starts, it will read the @code{gnus-site-init-file}
+When gnus starts, it will read the @code{gnus-site-init-file}
(@file{.../site-lisp/gnus} by default) and @code{gnus-init-file}
(@file{~/.gnus} by default) files. These are normal Emacs Lisp files
and can be used to avoid cluttering your @file{~/.emacs} and
-@file{site-init} files with Gnus stuff. Gnus will also check for files
+@file{site-init} files with gnus stuff. Gnus will also check for files
with the same names as these, but with @file{.elc} and @file{.el}
suffixes. In other words, if you have set @code{gnus-init-file} to
@file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el},
@cindex dribble file
@cindex auto-save
-Whenever you do something that changes the Gnus data (reading articles,
+Whenever you do something that changes the gnus data (reading articles,
catching up, killing/subscribing groups), the change is added to a
special @dfn{dribble buffer}. This buffer is auto-saved the normal
Emacs way. If your Emacs should crash before you have saved the
@file{.newsrc} files, all changes you have made can be recovered from
this file.
-If Gnus detects this file at startup, it will ask the user whether to
-read it. The auto save file is deleted whenever the real startup file is
-saved.
+If gnus detects this file at startup, it will ask the user whether to
+read it. The auto save file is deleted whenever the real startup file
+is saved.
@vindex gnus-use-dribble-file
-If @code{gnus-use-dribble-file} is @code{nil}, Gnus won't create and
+If @code{gnus-use-dribble-file} is @code{nil}, gnus won't create and
maintain a dribble buffer. The default is @code{t}.
@vindex gnus-dribble-directory
Gnus will put the dribble file(s) in @code{gnus-dribble-directory}. If
-this variable is @code{nil}, which it is by default, Gnus will dribble
+this variable is @code{nil}, which it is by default, gnus will dribble
into the directory where the @file{.newsrc} file is located. (This is
normally the user's home directory.) The dribble file will get the same
file permissions as the @code{.newsrc} file.
+@vindex gnus-always-read-dribble-file
+If @code{gnus-always-read-dribble-file} is non-@code{nil}, Gnus will
+read the dribble file on startup without querying the user.
+
@node The Active File
@section The Active File
@cindex active file
@cindex ignored groups
-When Gnus starts, or indeed whenever it tries to determine whether new
+When gnus starts, or indeed whenever it tries to determine whether new
articles have arrived, it reads the active file. This is a very large
file that lists all the active groups and articles on the server.
@vindex gnus-ignored-newsgroups
-Before examining the active file, Gnus deletes all lines that match the
+Before examining the active file, gnus deletes all lines that match the
regexp @code{gnus-ignored-newsgroups}. This is done primarily to reject
-any groups with bogus names, but you can use this variable to make Gnus
+any groups with bogus names, but you can use this variable to make gnus
ignore hierarchies you aren't ever interested in. However, this is not
recommended. In fact, it's highly discouraged. Instead, @pxref{New
Groups} for an overview of other variables that can be used instead.
@vindex gnus-read-active-file
@c @head
The active file can be rather Huge, so if you have a slow network, you
-can set @code{gnus-read-active-file} to @code{nil} to prevent Gnus from
+can set @code{gnus-read-active-file} to @code{nil} to prevent gnus from
reading the active file. This variable is @code{some} by default.
Gnus will try to make do by getting information just on the groups that
you actually subscribe to.
Note that if you subscribe to lots and lots of groups, setting this
-variable to @code{nil} will probably make Gnus slower, not faster. At
-present, having this variable @code{nil} will slow Gnus down
+variable to @code{nil} will probably make gnus slower, not faster. At
+present, having this variable @code{nil} will slow gnus down
considerably, unless you read news over a 2400 baud modem.
This variable can also have the value @code{some}. Gnus will then
at all. In any case, @code{some} should be faster than @code{nil}, and
is certainly faster than @code{t} over slow lines.
-If this variable is @code{nil}, Gnus will ask for group info in total
+If this variable is @code{nil}, gnus will ask for group info in total
lock-step, which isn't very fast. If it is @code{some} and you use an
-@sc{nntp} server, Gnus will pump out commands as fast as it can, and
+@sc{nntp} server, gnus will pump out commands as fast as it can, and
read all the replies in one swoop. This will normally result in better
performance, but if the server does not support the aforementioned
@code{LIST ACTIVE group} command, this isn't very nice to the server.
@item gnus-load-hook
@vindex gnus-load-hook
-A hook run while Gnus is being loaded. Note that this hook will
+A hook run while gnus is being loaded. Note that this hook will
normally be run just once in each Emacs session, no matter how many
-times you start Gnus.
+times you start gnus.
@item gnus-before-startup-hook
@vindex gnus-before-startup-hook
-A hook run after starting up Gnus successfully.
+A hook run after starting up gnus successfully.
@item gnus-startup-hook
@vindex gnus-startup-hook
-A hook run as the very last thing after starting up Gnus
+A hook run as the very last thing after starting up gnus
@item gnus-started-hook
@vindex gnus-started-hook
-A hook that is run as the very last thing after starting up Gnus
+A hook that is run as the very last thing after starting up gnus
successfully.
@item gnus-started-hook
@item gnus-check-bogus-newsgroups
@vindex gnus-check-bogus-newsgroups
-If non-@code{nil}, Gnus will check for and delete all bogus groups at
+If non-@code{nil}, gnus will check for and delete all bogus groups at
startup. A @dfn{bogus group} is a group that you have in your
@file{.newsrc} file, but doesn't exist on the news server. Checking for
bogus groups can take quite a while, so to save time and resources it's
@item gnus-no-groups-message
@vindex gnus-no-groups-message
-Message displayed by Gnus when no groups are available.
+Message displayed by gnus when no groups are available.
@item gnus-play-startup-jingle
@vindex gnus-play-startup-jingle
-If non-@code{nil}, play the Gnus jingle at startup.
+If non-@code{nil}, play the gnus jingle at startup.
@item gnus-startup-jingle
@vindex gnus-startup-jingle
@cindex group buffer
The @dfn{group buffer} lists all (or parts) of the available groups. It
-is the first buffer shown when Gnus starts, and will never be killed as
-long as Gnus is active.
+is the first buffer shown when gnus starts, and will never be killed as
+long as gnus is active.
@iftex
@iflatex
There should always be a colon on the line; the cursor always moves to
the colon after performing an operation. Nothing else is required---not
even the group name. All displayed text is just window dressing, and is
-never examined by Gnus. Gnus stores all real information it needs using
+never examined by gnus. Gnus stores all real information it needs using
text properties.
(Note that if you make a really strange, wonderful, spreadsheet-like
@vindex gnus-group-mode-line-format
The mode line can be changed by setting
-@code{gnus-group-mode-line-format} (@pxref{Formatting Variables}). It
+@code{gnus-group-mode-line-format} (@pxref{Mode Line Formatting}). It
doesn't understand that many format specifiers:
@table @samp
@end table
When the forms are @code{eval}ed, point is at the beginning of the line
-of the group in question, so you can use many of the normal Gnus
+of the group in question, so you can use many of the normal gnus
functions for snarfing info on the group.
@vindex gnus-group-update-hook
@findex gnus-group-prev-group
Go to the previous group (@code{gnus-group-prev-group}).
-@item M-p
-@kindex M-p (Group)
+@item M-n
+@kindex M-n (Group)
@findex gnus-group-next-unread-group-same-level
Go to the next unread group on the same (or lower) level
(@code{gnus-group-next-unread-group-same-level}).
-@item M-n
-@kindex M-n (Group)
+@item M-p
+@kindex M-p (Group)
@findex gnus-group-prev-unread-group-same-level
Go to the previous unread group on the same (or lower) level
(@code{gnus-group-prev-unread-group-same-level}).
Select the current group, switch to the summary buffer and display the
first unread article (@code{gnus-group-read-group}). If there are no
unread articles in the group, or if you give a non-numerical prefix to
-this command, Gnus will offer to fetch all the old articles in this
+this command, gnus will offer to fetch all the old articles in this
group from the server. If you give a numerical prefix @var{N}, @var{N}
-determines the number of articles Gnus will fetch. If @var{N} is
-positive, Gnus fetches the @var{N} newest articles, if @var{N} is
-negative, Gnus fetches the @var{abs(N)} oldest articles.
+determines the number of articles gnus will fetch. If @var{N} is
+positive, gnus fetches the @var{N} newest articles, if @var{N} is
+negative, gnus fetches the @var{abs(N)} oldest articles.
@item RET
@kindex RET (Group)
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,
+(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}).
@end table
@vindex gnus-large-newsgroup
-The @code{gnus-large-newsgroup} variable says what Gnus should consider
+The @code{gnus-large-newsgroup} variable says what gnus should consider
to be a big group. This is 200 by default. If the group has more
-(unread and/or ticked) articles than this, Gnus will query the user
+(unread and/or ticked) articles than this, gnus will query the user
before entering the group. The user can then specify how many articles
should be fetched from the server. If the user specifies a negative
number (@code{-n}), the @code{n} oldest articles will be fetched. If it
Select the first unread article when entering the group.
@item best
-Select the most high-scored article in the group when entering the
+Select the highest scored article in the group when entering the
group.
@end table
@c @icon{gnus-group-catchup-current}
Mark all unticked articles in this group as read
(@code{gnus-group-catchup-current}).
-@code{gnus-group-catchup-group-hook} is called when catching up a group from
-the group buffer.
+@code{gnus-group-catchup-group-hook} is called when catching up a group
+from the group buffer.
@item C
@kindex C (Group)
All groups have a level of @dfn{subscribedness}. For instance, if a
group is on level 2, it is more subscribed than a group on level 5. You
-can ask Gnus to just list groups on a given level or lower
+can ask gnus to just list groups on a given level or lower
(@pxref{Listing Groups}), or to just check for new articles in groups on
a given level or lower (@pxref{Scanning New Messages}).
@kindex G h (Group)
@cindex help group
@findex gnus-group-make-help-group
-Make the Gnus help group (@code{gnus-group-make-help-group}).
+Make the gnus help group (@code{gnus-group-make-help-group}).
@item G a
@kindex G a (Group)
@findex gnus-group-make-archive-group
@vindex gnus-group-archive-directory
@vindex gnus-group-recent-archive-directory
-Make a Gnus archive group (@code{gnus-group-make-archive-group}). By
+Make a gnus archive group (@code{gnus-group-make-archive-group}). By
default a group pointing to the most recent articles will be created
(@code{gnus-group-recent-archive-directory}), but given a prefix, a full
group will be created from @code{gnus-group-archive-directory}.
Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
@code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs},
@code{rfc934}, @code{rfc822-forward}, and @code{forward}. If you run
-this command without a prefix, Gnus will guess at the file type.
+this command without a prefix, gnus will guess at the file type.
@xref{Document Groups}.
@item G w
@vindex gnus-activate-foreign-newsgroups
If @code{gnus-activate-foreign-newsgroups} is a positive number,
-Gnus will check all foreign groups with this level or lower at startup.
+gnus will check all foreign groups with this level or lower at startup.
This might take quite a while, especially if you subscribe to lots of
-groups from different @sc{nntp} servers.
+groups from different @sc{nntp} servers. Also @pxref{Group Levels};
+@code{gnus-activate-level} also affects activation of foreign
+newsgroups.
@node Group Parameters
(auto-expire . t))
@end example
-We see that each element consists of a "dotted pair"---the thing before
-the dot is the key, while the thing after the dot is the value. All the
-parameters have this form @emph{except} local variable specs, which are
-not dotted pairs, but proper lists.
+We see that each element consists of a ``dotted pair''---the thing
+before the dot is the key, while the thing after the dot is the value.
+All the parameters have this form @emph{except} local variable specs,
+which are not dotted pairs, but proper lists.
The following group parameters can be used:
you'll get mail group semantics when doing @kbd{f}.
If you do an @kbd{a} command in a mail group and you have neither a
-@code{to-list} group parameter nor a @code{to-address} group paramater,
+@code{to-list} group parameter nor a @code{to-address} group parameter,
then a @code{to-list} group parameter will be added automatically upon
sending the message if @code{gnus-add-to-list} is set to @code{t}.
@vindex gnus-add-to-list
@item newsgroup
@cindex newsgroup
-If you have @code{(newsgroup . t)} in the group parameter list, Gnus
+If you have @code{(newsgroup . t)} in the group parameter list, gnus
will treat all responses as if they were responses to news articles.
This can be useful if you have a mail group that's really a mirror of a
news group.
@end table
@item comment
-Elements that look like @code{(comment . "This is a comment")}
-are arbitrary comments on the group. They are currently ignored by
-Gnus, but provide a place for you to store information on particular
-groups.
+Elements that look like @code{(comment . "This is a comment")} are
+arbitrary comments on the group. They are currently ignored by gnus,
+but provide a place for you to store information on particular groups.
@item @var{(variable form)}
You can use the group parameters to set variables local to the group you
@node Exiting Gnus
-@section Exiting Gnus
-@cindex exiting Gnus
+@section Exiting gnus
+@cindex exiting gnus
-Yes, Gnus is ex(c)iting.
+Yes, gnus is ex(c)iting.
@table @kbd
@item z
@kindex z (Group)
@findex gnus-group-suspend
-Suspend Gnus (@code{gnus-group-suspend}). This doesn't really exit Gnus,
-but it kills all buffers except the Group buffer. I'm not sure why this
-is a gain, but then who am I to judge?
+Suspend gnus (@code{gnus-group-suspend}). This doesn't really exit
+gnus, but it kills all buffers except the Group buffer. I'm not sure
+why this is a gain, but then who am I to judge?
@item q
@kindex q (Group)
@findex gnus-group-exit
@c @icon{gnus-group-exit}
-Quit Gnus (@code{gnus-group-exit}).
+Quit gnus (@code{gnus-group-exit}).
@item Q
@kindex Q (Group)
@findex gnus-group-quit
-Quit Gnus without saving the @file{.newsrc} files (@code{gnus-group-quit}).
-The dribble file will be saved, though (@pxref{Auto Save}).
+Quit gnus without saving the @file{.newsrc} files
+(@code{gnus-group-quit}). The dribble file will be saved, though
+(@pxref{Auto Save}).
@end table
@vindex gnus-exit-gnus-hook
@vindex gnus-suspend-gnus-hook
-@code{gnus-suspend-gnus-hook} is called when you suspend Gnus and
-@code{gnus-exit-gnus-hook} is called when you quit Gnus, while
+@code{gnus-suspend-gnus-hook} is called when you suspend gnus and
+@code{gnus-exit-gnus-hook} is called when you quit gnus, while
@code{gnus-after-exiting-gnus-hook} is called as the final item when
-exiting Gnus.
+exiting gnus.
@findex gnus-unload
@cindex unloading
-If you wish to completely unload Gnus and all its adherents, you can use
+If you wish to completely unload gnus and all its adherents, you can use
the @code{gnus-unload} command. This command is also very handy when
trying to customize meta-variables.
@kindex T D (Topic)
@findex gnus-topic-remove-group
Remove a group from the current topic (@code{gnus-topic-remove-group}).
+This command is mainly useful if you have the same group in several
+topics and wish to remove it from one of the topics. You may also
+remove a group from all topics, but in that case, Gnus will add it to
+the root topic the next time you start Gnus. In fact, all new groups
+(which, naturally, don't belong to any topic) will show up in the root
+topic.
+
This command uses the process/prefix convention
(@pxref{Process/Prefix}).
@item A T
@kindex A T (Topic)
@findex gnus-topic-list-active
-List all groups that Gnus knows about in a topics-ified way
+List all groups that gnus knows about in a topics-ified way
(@code{gnus-topic-list-active}).
@item G p
@section Misc Group Stuff
@menu
-* Scanning New Messages:: Asking Gnus to see whether new messages have arrived.
-* Group Information:: Information and help on groups and Gnus.
-* Group Timestamp:: Making Gnus keep track of when you last read a group.
-* File Commands:: Reading and writing the Gnus files.
+* Scanning New Messages:: Asking gnus to see whether new messages have arrived.
+* Group Information:: Information and help on groups and gnus.
+* Group Timestamp:: Making gnus keep track of when you last read a group.
+* File Commands:: Reading and writing the gnus files.
@end menu
@table @kbd
@kindex R (Group)
@cindex restarting
@findex gnus-group-restart
-Restart Gnus (@code{gnus-group-restart}). This saves the @file{.newsrc}
+Restart gnus (@code{gnus-group-restart}). This saves the @file{.newsrc}
file(s), closes the connection to all servers, clears up all run-time
-Gnus variables, and then starts Gnus all over again.
+gnus variables, and then starts gnus all over again.
@end table
between the various sites. @code{ange-ftp} (or @code{efs}) will be used
for fetching the file.
-If fetching from the first site is unsuccessful, Gnus will attempt to go
+If fetching from the first site is unsuccessful, gnus will attempt to go
through @code{gnus-group-faq-directory} and try to open them one by one.
@item H d
@kindex M-d (Group)
@findex gnus-group-describe-all-groups
Describe all groups (@code{gnus-group-describe-all-groups}). If given a
-prefix, force Gnus to re-read the description file from the server.
+prefix, force gnus to re-read the description file from the server.
@item H v
@itemx V
@kindex H v (Group)
@cindex version
@findex gnus-version
-Display current Gnus version numbers (@code{gnus-version}).
+Display current gnus version numbers (@code{gnus-version}).
@item ?
@kindex ? (Group)
@cindex info
@cindex manual
@findex gnus-info-find-node
-Go to the Gnus info node (@code{gnus-info-find-node}).
+Go to the gnus info node (@code{gnus-info-find-node}).
@end table
@cindex timestamps
@cindex group timestamps
-It can be convenient to let Gnus keep track of when you last read a
+It can be convenient to let gnus keep track of when you last read a
group. To set the ball rolling, you should add
@code{gnus-group-set-timestamp} to @code{gnus-select-group-hook}:
@vindex gnus-extract-address-components
Gnus will use the value of the @code{gnus-extract-address-components}
variable as a function for getting the name and address parts of a
-@code{From} header. Two pre-defined functions exist:
+@code{From} header. Three pre-defined functions exist:
@code{gnus-extract-address-components}, which is the default, quite
-fast, and too simplistic solution; and
-@code{mail-extract-address-components}, which works very nicely, but is
-slower. The default function will return the wrong answer in 5% of the
-cases. If this is unacceptable to you, use the other function instead.
+fast, and too simplistic solution;
+@code{mail-extract-address-components}, which works nicely, but is
+slower; and @code{std11-extract-address-components}, which works very
+nicely, but is slower. The default function will return the wrong
+answer in 5% of the cases. If this is unacceptable to you, use the
+other function instead.
@vindex gnus-summary-same-subject
@code{gnus-summary-same-subject} is a string indicating that the current
@vindex gnus-summary-zcore-fuzz
Zcore, @samp{+} if above the default level and @samp{-} if below the
default level. If the difference between
-@code{gnus-summary-default-level} and the score is less than
+@code{gnus-summary-default-score} and the score is less than
@code{gnus-summary-zcore-fuzz}, this spec will not be used.
@item V
Total thread score.
@end table
The @samp{%U} (status), @samp{%R} (replied) and @samp{%z} (zcore) specs
-have to be handled with care. For reasons of efficiency, Gnus will
+have to be handled with care. For reasons of efficiency, gnus will
compute what column these characters will end up in, and ``hard-code''
that. This means that it is invalid to have these specs after a
variable-length spec. Well, you might not be arrested, but your summary
The smart choice is to have these specs as far to the left as possible.
(Isn't that the case with everything, though? But I digress.)
-This restriction may disappear in later versions of Gnus.
+This restriction may disappear in later versions of gnus.
@node Summary Buffer Mode Line
@subsection Summary Buffer Mode Line
@vindex gnus-summary-mode-line-format
-You can also change the format of the summary mode bar. Set
-@code{gnus-summary-mode-line-format} to whatever you like. The default
-is @samp{Gnus: %%b [%A] %Z}.
+You can also change the format of the summary mode bar (@pxref{Mode Line
+Formatting}). Set @code{gnus-summary-mode-line-format} to whatever you
+like. The default is @samp{Gnus: %%b [%A] %Z}.
Here are the elements you can play with:
Unprefixed group name.
@item A
Current article number.
+@item z
+Current article score.
@item V
Gnus version.
@item U
without displaying the article (@code{gnus-summary-goto-subject}).
@end table
-If Gnus asks you to press a key to confirm going to the next group, you
+If gnus asks you to press a key to confirm going to the next group, you
can use the @kbd{C-n} and @kbd{C-p} keys to move around the group
buffer, searching for the next group to read without actually returning
to the group buffer.
@vindex gnus-auto-select-next
@item gnus-auto-select-next
If you issue one of the movement commands (like @kbd{n}) and there are
-no more unread articles after the current one, Gnus will offer to go to
+no more unread articles after the current one, gnus will offer to go to
the next group. If this variable is @code{t} and the next group is
-empty, Gnus will exit summary mode and return to the group buffer. If
-this variable is neither @code{t} nor @code{nil}, Gnus will select the
+empty, gnus will exit summary mode and return to the group buffer. If
+this variable is neither @code{t} nor @code{nil}, gnus will select the
next group, no matter whether it has any unread articles or not. As a
-special case, if this variable is @code{quietly}, Gnus will select the
+special case, if this variable is @code{quietly}, gnus will select the
next group without asking for confirmation. If this variable is
@code{almost-quietly}, the same will happen only if you are located on
the last article in the group. Finally, if this variable is
@item gnus-auto-center-summary
@vindex gnus-auto-center-summary
-If non-@code{nil}, Gnus will keep the point in the summary buffer
+If non-@code{nil}, gnus will keep the point in the summary buffer
centered at all times. This makes things quite tidy, but if you have a
slow network connection, or simply do not like this un-Emacsism, you can
set this variable to @code{nil} to get the normal Emacs scrolling
resend that bounced mail (@code{gnus-summary-resend-bounced-mail}). You
will be popped into a mail buffer where you can edit the headers before
sending the mail off again. If you give a prefix to this command, and
-the bounced mail is a reply to some other mail, Gnus will try to fetch
+the bounced mail is a reply to some other mail, gnus will try to fetch
that mail and display it for easy perusal of its headers. This might
very well fail, though.
current article (@code{gnus-summary-mail-crosspost-complaint}).
@findex gnus-crosspost-complaint
-This command is provided as a way to fight back agains the current
+This command is provided as a way to fight back against the current
crossposting pandemic that's sweeping Usenet. It will compose a reply
using the @code{gnus-crosspost-complaint} variable as a preamble. This
command understands the process/prefix convention
Post a followup to the current article via news, even if you got the
message through mail (@code{gnus-summary-followup-to-mail}).
-@item S n
-@kindex S n (Summary)
-@findex gnus-summary-followup-to-mail
+@item S N
+@kindex S N (Summary)
+@findex gnus-summary-followup-to-mail-with-original
Post a followup to the current article via news, even if you got the
message through mail and include the original message
(@code{gnus-summary-followup-to-mail-with-original}). This command uses
live on here and there, while most sites will delete the article in
question.
-Gnus will use the ``current'' select method when cancelling. If you
+Gnus will use the ``current'' select method when canceling. If you
want to use the standard posting method, use the @samp{a} symbolic
prefix (@pxref{Symbolic Prefixes}).
you would do normally. The previous article will be
canceled/superseded.
-Just remember, kids: There is no 'c' in 'supersede'.
+Just remember, kids: There is no `c' in `supersede'.
@node Marking Articles
Marking articles as @dfn{expirable} (or have them marked as such
automatically) doesn't make much sense in normal groups---a user doesn't
control expiring of news articles, but in mail groups, for instance,
-articles marked as @dfn{expirable} can be deleted by Gnus at
-any time.
+articles marked as @dfn{expirable} can be deleted by gnus at any time.
@end table
You can set a bookmark in the current article. Say you are reading a
long thesis on cats' urinary tracts, and have to go home for dinner
before you've finished reading the thesis. You can then set a bookmark
-in the article, and Gnus will jump to this bookmark the next time it
+in the article, and gnus will jump to this bookmark the next time it
encounters the article. @xref{Setting Marks}
@item
@item / m
@kindex / m (Summary)
@findex gnus-summary-limit-to-marks
-Ask for a mark and then limit to all articles that have not been marked
+Ask for a mark and then limit to all articles that have been marked
with that mark (@code{gnus-summary-limit-to-marks}).
@item / t
@kindex M S (Summary)
@kindex / E (Summary)
@findex gnus-summary-limit-include-expunged
-Display all expunged articles
+Include all expunged articles in the limit
(@code{gnus-summary-limit-include-expunged}).
@item / D
@kindex / D (Summary)
@findex gnus-summary-limit-include-dormant
-Display all dormant articles (@code{gnus-summary-limit-include-dormant}).
+Include all dormant articles in the limit
+(@code{gnus-summary-limit-include-dormant}).
@item / *
@kindex / * (Summary)
@findex gnus-summary-limit-include-cached
-Display all cached articles (@code{gnus-summary-limit-include-cached}).
+Include all cached articles in the limit
+(@code{gnus-summary-limit-include-cached}).
@item / d
@kindex / d (Summary)
@findex gnus-summary-limit-exclude-dormant
-Hide all dormant articles (@code{gnus-summary-limit-exclude-dormant}).
+Exclude all dormant articles from the limit
+(@code{gnus-summary-limit-exclude-dormant}).
@item / T
@kindex / T (Summary)
@findex gnus-summary-limit-include-thread
-Include all the articles in the current thread.
+Include all the articles in the current thread in the limit.
@item / c
@kindex / c (Summary)
@findex gnus-summary-limit-exclude-childless-dormant
-Hide all dormant articles that have no children
+Exclude all dormant articles that have no children from the limit
(@code{gnus-summary-limit-exclude-childless-dormant}).
@item / C
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,
+or simply missing. Weird news propagation 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}.
@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
+summary buffer. We then typically have many sub-threads that really
belong to one thread, but are without connecting roots. These are
called loose threads.
@cindex customizing threading
@menu
-* Loose Threads:: How Gnus gathers loose threads into bigger threads.
+* Loose Threads:: How gnus gathers loose threads into bigger threads.
* Filling In Threads:: Making the threads displayed look fuller.
* More Threading:: Even more variables for fiddling with threads.
* Low-Level Threading:: You thought it was over... but you were wrong!
@table @code
@item gnus-summary-make-false-root
@vindex gnus-summary-make-false-root
-If non-@code{nil}, Gnus will gather all loose subtrees into one big tree
+If non-@code{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.
+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:
@iftex
@item gnus-summary-gather-subject-limit
@vindex gnus-summary-gather-subject-limit
Loose threads are gathered by comparing subjects of articles. If this
-variable is @code{nil}, Gnus requires an exact match between the
+variable is @code{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
+variable to a really low number, you'll find that gnus will gather
everything in sight into one thread, which isn't very helpful.
@cindex fuzzy article gathering
-If you set this variable to the special value @code{fuzzy}, Gnus will
+If you set this variable to the special value @code{fuzzy}, gnus will
use a fuzzy string comparison algorithm on the subjects (@pxref{Fuzzy
Matching}).
@table @code
@item gnus-fetch-old-headers
@vindex gnus-fetch-old-headers
-If non-@code{nil}, Gnus will attempt to build old threads by fetching
-more old headers---headers to articles marked as read. If you
-would like to display as few summary lines as possible, but still
-connect as many loose threads as possible, you should set this variable
-to @code{some} or a number. If you set it to a number, no more than
-that number of extra old headers will be fetched. In either case,
-fetching old headers only works if the backend you are using carries
-overview files---this would normally be @code{nntp}, @code{nnspool} and
+If non-@code{nil}, gnus will attempt to build old threads by fetching
+more old headers---headers to articles marked as read. If you would
+like to display as few summary lines as possible, but still connect as
+many loose threads as possible, you should set this variable to
+@code{some} or a number. If you set it to a number, no more than that
+number of extra old headers will be fetched. In either case, fetching
+old headers only works if the backend you are using carries overview
+files---this would normally be @code{nntp}, @code{nnspool} and
@code{nnml}. Also remember that if the root of the thread has been
-expired by the server, there's not much Gnus can do about that.
+expired by the server, there's not much gnus can do about that.
This variable can also be set to @code{invisible}. This won't have any
visible effects, but is useful if you use the @kbd{A T} command a lot
gotten by setting this variable to @code{some}. Gnus will then look at
the complete @code{References} headers of all articles and try to string
together articles that belong in the same thread. This will leave
-@dfn{gaps} in the threading display where Gnus guesses that an article
+@dfn{gaps} in the threading display where gnus guesses that an article
is missing from the thread. (These gaps appear like normal summary
-lines. If you select a gap, Gnus will try to fetch the article in
-question.) If this variable is @code{t}, Gnus will display all these
+lines. If you select a gap, gnus will try to fetch the article in
+question.) If this variable is @code{t}, gnus will display all these
``gaps'' without regard for whether they are useful for completing the
-thread or not. Finally, if this variable is @code{more}, Gnus won't cut
+thread or not. Finally, if this variable is @code{more}, gnus won't cut
off sparse leaf nodes that don't lead anywhere. This variable is
@code{nil} by default.
@item gnus-parse-headers-hook
@vindex gnus-parse-headers-hook
Hook run before parsing any headers. The default value is
-@code{(gnus-decode-rfc1522)}, which means that QPized headers will be
-slightly decoded in a hackish way. This is likely to change in the
-future when Gnus becomes @sc{MIME}ified.
+@code{(gnus-set-summary-default-charset)}, which sets up local value of
+@code{default-mime-charset} in summary buffer based on variable
+@code{gnus-newsgroup-default-charset-alist}.
@item gnus-alter-header-function
@vindex gnus-alter-header-function
If you read your news from an @sc{nntp} server that's far away, the
network latencies may make reading articles a chore. You have to wait
for a while after pressing @kbd{n} to go to the next article before the
-article appears. Why can't Gnus just go ahead and fetch the article
+article appears. Why can't gnus just go ahead and fetch the article
while you are reading the previous one? Why not, indeed.
First, some caveats. There are some pitfalls to using asynchronous
-article fetching, especially the way Gnus does it.
+article fetching, especially the way gnus does it.
Let's say you are reading article 1, which is short, and article 2 is
quite long, and you are not interested in reading that. Gnus does not
know this, so it goes ahead and fetches article 2. You decide to read
-article 3, but since Gnus is in the process of fetching article 2, the
+article 3, but since gnus is in the process of fetching article 2, the
connection is blocked.
-To avoid these situations, Gnus will open two (count 'em two)
+To avoid these situations, gnus will open two (count 'em two)
connections to the server. Some people may think this isn't a very nice
thing to do, but I don't see any real alternatives. Setting up that
-extra connection takes some time, so Gnus startup will be slower.
+extra connection takes some time, so gnus startup will be slower.
Gnus will fetch more articles than you will read. This will mean that
the link between your machine and the @sc{nntp} server will become more
@code{nil} on read articles. The function is called with an article
data structure as the only parameter.
-If, for instance, you wish to pre-fetch only unread articles shorter than 100 lines, you could say something like:
+If, for instance, you wish to pre-fetch only unread articles shorter
+than 100 lines, you could say something like:
@lisp
(defun my-async-short-unread-p (data)
@end lisp
These functions will be called many, many times, so they should
-preferably be short and sweet to avoid slowing down Gnus too much.
-It's probably a good idea to byte-compile things like this.
+preferably be short and sweet to avoid slowing down gnus too much. It's
+probably a good idea to byte-compile things like this.
@vindex gnus-prefetched-article-deletion-strategy
Articles have to be removed from the asynch buffer sooner or later. The
@vindex gnus-cache-active-file
The cache stores information on what articles it contains in its active
file (@code{gnus-cache-active-file}). If this file (or any other parts
-of the cache) becomes all messed up for some reason or other, Gnus
+of the cache) becomes all messed up for some reason or other, gnus
offers two functions that will try to set things right. @kbd{M-x
gnus-cache-generate-nov-databases} will (re)build all the @sc{nov}
files, and @kbd{gnus-cache-generate-active} will (re)generate the active
If you have a slow connection, but the idea of using caching seems
unappealing to you (and it is, really), you can help the situation some
-by switching on the @dfn{backlog}. This is where Gnus will buffer
+by switching on the @dfn{backlog}. This is where gnus will buffer
already read articles so that it doesn't have to re-fetch articles
you've already read. This only helps if you are in the habit of
re-selecting articles you've recently read, of course. If you never do
-that, turning the backlog on will slow Gnus down a little bit, and
+that, turning the backlog on will slow gnus down a little bit, and
increase memory usage some.
@vindex gnus-keep-backlog
-If you set @code{gnus-keep-backlog} to a number @var{n}, Gnus will store
+If you set @code{gnus-keep-backlog} to a number @var{n}, gnus will store
at most @var{n} old articles in a buffer for later re-fetching. If this
-variable is non-@code{nil} and is not a number, Gnus will store
+variable is non-@code{nil} and is not a number, gnus will store
@emph{all} read articles, which means that your Emacs will grow without
bound before exploding and taking your machine down with you. I put
that in there just to keep y'all on your toes.
(@pxref{Decoding Articles}).
@vindex gnus-save-all-headers
-If @code{gnus-save-all-headers} is non-@code{nil}, Gnus will not delete
+If @code{gnus-save-all-headers} is non-@code{nil}, gnus will not delete
unwanted headers before saving the article.
@vindex gnus-saved-headers
@vindex gnus-default-article-saver
You can customize the @code{gnus-default-article-saver} variable to make
-Gnus do what you want it to. You can use any of the four ready-made
+gnus do what you want it to. You can use any of the four ready-made
functions below, or you can create your own.
@table @code
@end table
@vindex gnus-split-methods
-You can have Gnus suggest where to save articles by plonking a regexp into
-the @code{gnus-split-methods} alist. For instance, if you would like to
-save articles related to Gnus in the file @file{gnus-stuff}, and articles
-related to VM in @code{vm-stuff}, you could set this variable to something
-like:
+You can have gnus suggest where to save articles by plonking a regexp
+into the @code{gnus-split-methods} alist. For instance, if you would
+like to save articles related to gnus in the file @file{gnus-stuff}, and
+articles related to VM in @code{vm-stuff}, you could set this variable
+to something like:
@lisp
(("^Subject:.*gnus\\|^Newsgroups:.*gnus" "gnus-stuff")
name completion over the results from applying this variable.
This variable is @code{((gnus-article-archive-name))} by default, which
-means that Gnus will look at the articles it saves for an
-@code{Archive-name} line and use that as a suggestion for the file
-name.
+means that gnus will look at the articles it saves for an
+@code{Archive-name} line and use that as a suggestion for the file name.
Here's an example function to clean up file names somewhat. If you have
lots of mail groups called things like
@code{nil}, all the preceding functions will replace all periods
(@samp{.}) in the group names with slashes (@samp{/})---which means that
the functions will generate hierarchies of directories instead of having
-all the files in the toplevel directory
+all the files in the top level directory
(@file{~/News/alt/andrea-dworkin} instead of
@file{~/News/alt.andrea-dworkin}.) This variable is @code{t} by default
on most systems. However, for historical reasons, this is @code{nil} on
Then just save with @kbd{o}. You'd then read this hierarchy with
ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and
-the toplevel directory as the argument (@file{~/News/}). Then just walk
+the top level directory as the argument (@file{~/News/}). Then just walk
around to the groups/directories with @code{nneething}.
simplish rule: The subjects must be (nearly) identical, except for the
last two numbers of the line. (Spaces are largely ignored, however.)
-For example: If you choose a subject called @samp{cat.gif (2/3)}, Gnus
+For example: If you choose a subject called @samp{cat.gif (2/3)}, gnus
will find all the articles that match the regexp @samp{^cat.gif
([0-9]+/[0-9]+).*$}.
(@code{gnus-uu-decode-uu-and-save}).
All this is very much different from how @code{gnus-uu} worked with
-@sc{gnus 4.1}, where you had explicit keystrokes for everything under
+@sc{GNUS 4.1}, where you had explicit keystrokes for everything under
the sun. This version of @code{gnus-uu} generally assumes that you mark
articles in some way (@pxref{Setting Process Marks}) and then press
@kbd{X u}.
@item gnus-uu-user-view-rules-end
@vindex gnus-uu-user-view-rules-end
-This variable is consulted if Gnus couldn't make any matches from the
+This variable is consulted if gnus couldn't make any matches from the
user and default view rules.
@item gnus-uu-user-archive-rules
@cindex viewing files
@cindex pseudo-articles
-After decoding, if the file is some sort of archive, Gnus will attempt
+After decoding, if the file is some sort of archive, gnus will attempt
to unpack the archive and see if any of the files in the archive can be
viewed. For instance, if you have a gzipped tar file @file{pics.tar.gz}
-containing the files @file{pic1.jpg} and @file{pic2.gif}, Gnus will
+containing the files @file{pic1.jpg} and @file{pic2.gif}, gnus will
uncompress and de-tar the main file, and then view the two pictures.
This unpacking process is recursive, so if the archive contains archives
of archives, it'll all be unpacked.
-Finally, Gnus will normally insert a @dfn{pseudo-article} for each
+Finally, gnus will normally insert a @dfn{pseudo-article} for each
extracted file into the summary buffer. If you go to these
``articles'', you will be prompted for a command to run (usually Gnus
will make a suggestion), and then the command will be run.
@menu
* Article Highlighting:: You want to make the article look like fruit salad.
-* Article Fontisizing:: Making emphasized text look niced.
+* Article Fontisizing:: Making emphasized text look nice.
* Article Hiding:: You also want to make certain info go away.
* Article Washing:: Lots of way-neat functions to make life better.
* Article Buttons:: Click on URLs, Message-IDs, addresses and the like.
@vindex gnus-cite-face-list
List of faces used for highlighting citations (@pxref{Faces and Fonts}).
When there are citations from multiple articles in the same message,
-Gnus will try to give each citation from each article its own face.
+gnus will try to give each citation from each article its own face.
This should make it easier to see who wrote what.
@item gnus-supercite-regexp
@kindex W l (Summary)
@findex gnus-summary-stop-page-breaking
Remove page breaks from the current article
-(@code{gnus-summary-stop-page-breaking}).
+(@code{gnus-summary-stop-page-breaking}). @xref{Misc Article} for page
+delimiters.
@item W r
@kindex W r (Summary)
It's commonly called ``rot13'' because each letter is rotated 13
positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter
#15). It is sometimes referred to as ``Caesar rotate'' because Caesar
-is rumoured to have employed this form of, uh, somewhat weak encryption.
+is rumored to have employed this form of, uh, somewhat weak encryption.
@item W t
@kindex W t (Summary)
@item W m
@kindex W m (Summary)
@findex gnus-summary-toggle-mime
-Toggle whether to run the article through @sc{mime} before displaying
+Toggle whether to display the article as @sc{mime} message
(@code{gnus-summary-toggle-mime}).
@item W o
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)
@cindex x-face
If given a positive numerical prefix, fetch that many articles back into
the ancestry. If given a negative numerical prefix, fetch just that
-ancestor. So if you say @kbd{3 ^}, Gnus will fetch the parent, the
+ancestor. So if you say @kbd{3 ^}, gnus will fetch the parent, the
grandparent and the grandgrandparent of the current article. If you say
-@kbd{-3 ^}, Gnus will only fetch the grandgrandparent of the current
+@kbd{-3 ^}, gnus will only fetch the grandgrandparent of the current
article.
@item A R (Summary)
@section Alternative Approaches
Different people like to read news using different methods. This being
-Gnus, we offer a small selection of minor modes for the summary buffers.
+gnus, we offer a small selection of minor modes for the summary buffers.
@menu
* Pick and Read:: First mark articles and then read them.
@cindex trees
@vindex gnus-use-trees
-If you don't like the normal Gnus summary display, you might try setting
+If you don't like the normal gnus summary display, you might try setting
@code{gnus-use-trees} to @code{t}. This will create (by default) an
additional @dfn{tree buffer}. You can execute all summary mode commands
in the tree buffer.
@item gnus-tree-mode-line-format
@vindex gnus-tree-mode-line-format
-A format string for the mode bar in the tree mode buffers. The default
-is @samp{Gnus: %%b %S %Z}. For a list of valid specs, @pxref{Summary
-Buffer Mode Line}.
+A format string for the mode bar in the tree mode buffers (@pxref{Mode
+Line Formatting}). The default is @samp{Gnus: %%b %S %Z}. For a list
+of valid specs, @pxref{Summary Buffer Mode Line}.
@item gnus-selected-tree-face
@vindex gnus-selected-tree-face
@item gnus-tree-minimize-window
@vindex gnus-tree-minimize-window
-If this variable is non-@code{nil}, Gnus will try to keep the tree
-buffer as small as possible to allow more room for the other Gnus
+If this variable is non-@code{nil}, gnus will try to keep the tree
+buffer as small as possible to allow more room for the other gnus
windows. If this variable is a number, the tree buffer will never be
higher than that number. The default is @code{t}. Note that if you
have several windows displayed side-by-side in a frame and the tree
Edit the current article (@code{gnus-summary-edit-article}). To finish
editing and make the changes permanent, type @kbd{C-c C-c}
(@kbd{gnus-summary-edit-article-done}). If you give a prefix to the
-@kbd{C-c C-c} command, Gnus won't re-highlight the article.
+@kbd{C-c C-c} command, gnus won't re-highlight the article.
@item B q
@kindex B q (Summary)
@vindex gnus-move-split-methods
@cindex moving articles
-If you move (or copy) articles regularly, you might wish to have Gnus
+If you move (or copy) articles regularly, you might wish to have gnus
suggest where to put the articles. @code{gnus-move-split-methods} is a
variable that uses the same syntax as @code{gnus-split-methods}
(@pxref{Saving Articles}). You may customize that variable to create
@vindex gnus-summary-ignore-duplicates
@item gnus-summary-ignore-duplicates
-When Gnus discovers two articles that have the same @code{Message-ID},
+When gnus discovers two articles that have the same @code{Message-ID},
it has to do something drastic. No articles are allowed to have the
same @code{Message-ID}, but this may happen when reading mail from some
sources. Gnus allows you to customize what happens with this variable.
-If it is @code{nil} (which is the default), Gnus will rename the
+If it is @code{nil} (which is the default), gnus will rename the
@code{Message-ID} (for display purposes only) and display the article as
any other article. If this variable is @code{t}, it won't display the
article---it'll be as if it never existed.
@item H i
@kindex H i (Summary)
@findex gnus-info-find-node
-Go to the Gnus info node (@code{gnus-info-find-node}).
+Go to the gnus info node (@code{gnus-info-find-node}).
@end table
@vindex gnus-kill-summary-on-exit
If you're in the habit of exiting groups, and then changing your mind
about it, you might set @code{gnus-kill-summary-on-exit} to @code{nil}.
-If you do that, Gnus won't kill the summary buffer when you exit it.
+If you do that, gnus won't kill the summary buffer when you exit it.
(Quelle surprise!) Instead it will change the name of the buffer to
something like @samp{*Dead Summary ... *} and install a minor mode
called @code{gnus-dead-summary-mode}. Now, if you switch back to this
@node Duplicate Suppression
@section Duplicate Suppression
-By default, Gnus tries to make sure that you don't have to read the same
+By default, gnus tries to make sure that you don't have to read the same
article more than once by utilizing the crossposting mechanism
(@pxref{Crosspost Handling}). However, that simple and efficient
-approach may not work satisfactory for some users for various
-reasons.
+approach may not work satisfactory for some users for various reasons.
@enumerate
@item
@vindex gnus-save-duplicate-list
If non-@code{nil}, save the list of duplicates to a file. This will
make startup and shutdown take longer, so the default is @code{nil}.
-However, this means that only duplicate articles read in a single Gnus
+However, this means that only duplicate articles read in a single gnus
session are suppressed.
@item gnus-duplicate-list-length
default is @file{~/News/suppression}.
@end table
-If you have a tendency to stop and start Gnus often, setting
+If you have a tendency to stop and start gnus often, setting
@code{gnus-save-duplicate-list} to @code{t} is probably a good idea. If
-you leave Gnus running for weeks on end, you may have it @code{nil}. On
+you leave gnus running for weeks on end, you may have it @code{nil}. On
the other hand, saving the list makes startup and shutdown much slower,
-so that means that if you stop and start Gnus often, you should set
+so that means that if you stop and start gnus often, you should set
@code{gnus-save-duplicate-list} to @code{nil}. Uhm. I'll leave this up
to you to figure out, I think.
The articles are displayed in the article buffer, of which there is only
one. All the summary buffers share the same article buffer unless you
-tell Gnus otherwise.
+tell gnus otherwise.
@menu
* Hiding Headers:: Deciding what headers should be displayed.
-* Using MIME:: Pushing articles through @sc{mime} before reading them.
+* Using MIME:: Pushing to mime articles as @sc{mime} messages.
* Customizing Articles:: Tailoring the look of the articles.
* Article Keymap:: Keystrokes available in the article buffer.
* Misc Article:: Other stuff.
should be a regular expression that matches all lines that you want to
hide. All lines that do not match this variable will remain visible.
-For instance, if you just want to get rid of the @code{References} line
-and the @code{Xref} line, you might say:
+For instance, if you just want to get rid of the @code{References} field
+and the @code{Xref} field, you might say:
@lisp
(setq gnus-ignored-headers "^References:\\|^Xref:")
@end lisp
Any headers that are to remain visible, but are not listed in this
-variable, will be displayed in random order after all the headers listed in this variable.
+variable, will be displayed in random order after all the headers listed
+in this variable.
@findex gnus-article-hide-boring-headers
@vindex gnus-article-display-hook
@code{gnus-article-display-hook}. What this function does depends on
the @code{gnus-boring-article-headers} variable. It's a list, but this
list doesn't actually contain header names. Instead is lists various
-@dfn{boring conditions} that Gnus can check and remove from sight.
+@dfn{boring conditions} that gnus can check and remove from sight.
These conditions are:
@table @code
other naughty stuff in innocent-looking articles.
@vindex gnus-show-mime
-@vindex gnus-show-mime-method
+@vindex gnus-article-display-method-for-mime
@vindex gnus-strict-mime
-@findex metamail-buffer
+@findex gnus-article-display-mime-message
Gnus handles @sc{mime} by pushing the articles through
-@code{gnus-show-mime-method}, which is @code{metamail-buffer} by
-default. This function calls the external @code{metamail} program to
-actually do the work. One common problem with this program is that is
-thinks that it can't display 8-bit things in the Emacs buffer. To tell
-it the truth, put something like the following in your
-@file{.bash_profile} file. (You do use @code{bash}, don't you?)
-
-@example
-export MM_CHARSET="iso-8859-1"
-@end example
-
-For more information on @code{metamail}, see its manual page.
+@code{gnus-article-display-method-for-mime}, which is
+@code{gnus-article-display-mime-message} by default. This function
+calls the SEMI MIME-View program to actually do the work. For more
+information on SEMI MIME-View, see its manual page (however it is not
+existed yet, sorry).
Set @code{gnus-show-mime} to @code{t} if you want to use
@sc{mime} all the time. However, if @code{gnus-strict-mime} is
set, then you'll see some unfortunate display glitches in the article
buffer. These can't be avoided.
-It might be best to just use the toggling functions from the summary
-buffer to avoid getting nasty surprises. (For instance, you enter the
-group @samp{alt.sing-a-long} and, before you know it, @sc{mime} has
-decoded the sound file in the article and some horrible sing-a-long song
-comes screaming out your speakers, and you can't find the volume
-button, because there isn't one, and people are starting to look at you,
-and you try to stop the program, but you can't, and you can't find the
-program to control the volume, and everybody else in the room suddenly
-decides to look at you disdainfully, and you'll feel rather stupid.)
+In GNUS or Gnus, it might be best to just use the toggling functions
+from the summary buffer to avoid getting nasty surprises. (For instance,
+you enter the group @samp{alt.sing-a-long} and, before you know it,
+@sc{mime} has decoded the sound file in the article and some horrible
+sing-a-long song comes screaming out your speakers, and you can't find
+the volume button, because there isn't one, and people are starting to
+look at you, and you try to stop the program, but you can't, and you
+can't find the program to control the volume, and everybody else in the
+room suddenly decides to look at you disdainfully, and you'll feel
+rather stupid.)
Any similarity to real events and people is purely coincidental. Ahem.
+To avoid such kind of situation, gnus stops to use
+@code{metamail-buffer}. So now, you can set @code{gnus-show-mime} to
+non-@code{nil} every-time, then you can push button in the article
+buffer when there are nobody else.
+
@node Customizing Articles
@section Customizing Articles
@kindex C-c ^ (Article)
@findex gnus-article-refer-article
If point is in the neighborhood of a @code{Message-ID} and you press
-@kbd{r}, Gnus will try to get that article from the server
+@kbd{C-c ^}, gnus will try to get that article from the server
(@code{gnus-article-refer-article}).
@item C-c C-m
@vindex gnus-article-mode-line-format
@item gnus-article-mode-line-format
This variable is a format string along the same lines as
-@code{gnus-summary-mode-line-format}. It accepts the same
-format specifications as that variable, with one extension:
+@code{gnus-summary-mode-line-format} (@pxref{Mode Line Formatting}). It
+accepts the same format specifications as that variable, with one
+extension:
@table @samp
@item w
by pressing @kbd{C-c C-c}. @xref{Top, , Top, message, The Message
Manual}. If you are in a foreign news group, and you wish to post the
article using the foreign server, you can give a prefix to @kbd{C-c C-c}
-to make Gnus try to post using the foreign server.
+to make gnus try to post using the foreign server.
@menu
* Mail:: Mailing and replying.
* Post:: Posting and following up.
* Posting Server:: What server should you post via?
* Mail and Post:: Mailing and posting at the same time.
-* Archived Messages:: Where Gnus stores the messages you've sent.
+* Archived Messages:: Where gnus stores the messages you've sent.
* Drafts:: Postponing messages and rejected messages.
* Rejected Articles:: What happens if the server doesn't like your article?
@end menu
dealing with @sc{soup} packets and the like where one is apt to send the
same packet multiple times.) This variable says what the name of this
history file is. It is @file{~/News/Sent-Message-IDs} by default. Set
-this variable to @code{nil} if you don't want Gnus to keep a history
+this variable to @code{nil} if you don't want gnus to keep a history
file.
@item gnus-sent-message-ids-length
@vindex gnus-post-method
-It can be quite complicated. Normally, Gnus will use the same native
+It can be quite complicated. Normally, gnus will use the same native
server. However. If your native server doesn't allow posting, just
reading, you probably want to use some other server to post your
(extremely intelligent and fabulously interesting) articles. You can
the ``current'' server for posting.
If you give a zero prefix (i.e., @kbd{C-u 0 C-c C-c}) to that command,
-Gnus will prompt you for what method to use for posting.
+gnus will prompt you for what method to use for posting.
You can also set @code{gnus-post-method} to a list of select methods.
-If that's the case, Gnus will always prompt you for what method to use
+If that's the case, gnus will always prompt you for what method to use
for posting.
Finally, if you want to always post using the same select method as
is the default.
@vindex gnus-message-archive-method
-@code{gnus-message-archive-method} says what virtual server Gnus is to
+@code{gnus-message-archive-method} says what virtual server gnus is to
use to store sent messages. The default is:
@lisp
group. (If you want to disable storing for just one particular message,
you can just remove the @code{Gcc} header that has been inserted.) The
archive group will appear in the group buffer the next time you start
-Gnus, or the next time you press @kbd{F} in the group buffer. You can
+gnus, or the next time you press @kbd{F} in the group buffer. You can
enter it and read the articles in it just like you'd read any other
group. If the group gets really big and annoying, you can simply rename
if (using @kbd{G r} in the group buffer) to something
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
+some sort using the gnus mail and post commands, the buffer you get will
automatically associate to an article in a special @dfn{draft} group.
If you save the buffer the normal way (@kbd{C-x C-s}, for instance), the
article will be saved there. (Auto-save files also go to the draft
@emph{there be demons}. Perhaps you have included too much cited text.
Perhaps the disk is full. Perhaps the server is down.
-These situations are, of course, totally beyond the control of Gnus.
+These situations are, of course, totally beyond the control of gnus.
(Gnus, of course, loves the way you look, always feels great, has angels
fluttering around inside of it, doesn't care about how much cited text
-you include, never runs full and never goes down.) So Gnus saves these
+you include, never runs full and never goes down.) So gnus saves these
articles until some later time when the server feels better.
The rejected articles will automatically be put in a special draft group
@vindex gnus-server-mode-line-format
The mode line can also be customized by using the
-@code{gnus-server-mode-line-format} variable. The following specs are
-understood:
+@code{gnus-server-mode-line-format} variable (@pxref{Mode Line
+Formatting}). The following specs are understood:
@table @samp
@item S
@findex nntp-open-network-stream
@item nntp-open-connection-function
@vindex nntp-open-connection-function
-This function is used to connect to the remote system. Three pre-made
-functions are @code{nntp-open-network-stream}, which is the default, and
-simply connects to some port or other on the remote system. The other
-two are @code{nntp-open-rlogin}, which does an @samp{rlogin} on the
+This function is used to connect to the remote system. Four pre-made
+functions are supplied:
+
+@table @code
+@item nntp-open-network-stream
+This is the default, and simply connects to some port or other on the
+remote system.
+
+@item nntp-open-rlogin
+Does an @samp{rlogin} on the
remote system, and then does a @samp{telnet} to the @sc{nntp} server
-available there, and @code{nntp-open-telnet}, which does a @samp{telnet}
-to the remote system and then another @samp{telnet} to get to the
-@sc{nntp} server.
+available there.
@code{nntp-open-rlogin}-related variables:
@end table
+@item nntp-open-telnet
+Does a @samp{telnet} to the remote system and then another @samp{telnet}
+to get to the @sc{nntp} server.
+
@code{nntp-open-telnet}-related variables:
@table @code
@end table
+@findex nntp-open-ssl-stream
+@item nntp-open-ssl-stream
+Opens a connection to a server over a @dfn{secure} channel. To use this
+you must have SSLay installed
+(@file{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
+@file{ssl.el} (from the W3 distributeion, for instance). You then
+define a server as follows:
+
+@lisp
+;; Type `C-c C-c' after you've finished editing.
+;;
+;; "snews" is port 563 and is predefined in our /etc/services
+;;
+(nntp "snews.bar.com"
+ (nntp-open-connection-function nntp-open-ssl-stream)
+ (nntp-port-number "snews")
+ (nntp-address "snews.bar.com"))
+@end lisp
+
+@end table
+
@item nntp-end-of-line
@vindex nntp-end-of-line
String to use as end-of-line marker when talking to the @sc{nntp}
@enumerate
@item
-@samp{group}: If the split is a string, that will be taken as a group name.
+@samp{group}: If the split is a string, that will be taken as a group
+name. Normal regexp match expansion will be done. See below for
+examples.
@item
@var{(FIELD VALUE SPLIT)}: If the split is a list, the first element of
If you want to have Gnus create groups dynamically based on some
information in the headers (i.e., do @code{replace-match}-like
-substitions in the group names), you can say things like:
+substitutions in the group names), you can say things like:
@example
(any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1")
@end example
+If the string contains the element @samp{\&}, then the previously
+matched string will be substituted. Similarly, the elements @samp{\1}
+up to @samp{\9} will be substituted with the text matched by the
+groupings 1 through 9.
+
+
@node Mail and Procmail
@subsection Mail and Procmail
@cindex procmail
To: alt-religion-emacs@@GATEWAY
@end example
+The following pre-defined functions exist:
+
+@findex nngateway-simple-header-transformation
+@table @code
+
+@item nngateway-simple-header-transformation
+Creates a @code{To} header that looks like
+@var{newsgroup}@@@code{nngateway-address}.
+
+@findex nngateway-mail2news-header-transformation
+
+@item nngateway-mail2news-header-transformation
+Creates a @code{To} header that looks like
+@code{nngateway-address}.
+
+Here's an example:
+
+@lisp
+(setq gnus-post-method
+ '(nngateway "mail2news@@replay.com"
+ (nngateway-header-transformation
+ nngateway-mail2news-header-transformation)))
+@end lisp
+
+@end table
+
+
@end table
So, to use this, simply say something like:
Agent is @dfn{plugged}.
The @dfn{local} machine is the one you're running on, and which isn't
-connected to the net continously.
+connected to the net continuously.
@dfn{Downloading} means fetching things from the net to your local
machine. @dfn{Uploading} is doing the opposite.
@item gnus-category-mode-line-format
@vindex gnus-category-mode-line-format
-Format of the category mode line.
+Format of the category mode line (@pxref{Mode Line Formatting}).
@item gnus-agent-short-article
@vindex gnus-agent-short-article
around with your score files behind Gnus' back and want to see the
effect you're having.
-@item V a
-@kindex V a (Summary)
-@findex gnus-summary-score-entry
-Add a new score entry, and allow specifying all elements
-(@code{gnus-summary-score-entry}).
-
@item V c
@kindex V c (Summary)
@findex gnus-score-change-score-file
@item Lines, Chars
These two headers use different match types: @code{<}, @code{>},
-@code{=}, @code{>=} and @code{<=}. When matching on @code{Lines}, be
-careful because some backends (like @code{nndir}) do not generate
-@code{Lines} header, so every article ends up being marked as having 0
-lines. This can lead to strange results if you happen to lower score of
-the articles with few lines.
+@code{=}, @code{>=} and @code{<=}.
+
+These predicates are true if
+
+@example
+(PREDICATE HEADER MATCH)
+@end example
+
+evaluates to non-@code{nil}. For instance, the advanced match
+@code{("lines" 4 <)} (@pxref{Advanced Scoring}) will result in the
+following form:
+
+@lisp
+(< header-value 4)
+@end lisp
+
+Or to put it another way: When using @code{<} on @code{Lines} with 4 as
+the match, we get the score added if the article has less than 4 lines.
+(It's easy to get confused and think it's the other way around. But
+it's not. I think.)
+
+When matching on @code{Lines}, be careful because some backends (like
+@code{nndir}) do not generate @code{Lines} header, so every article ends
+up being marked as having 0 lines. This can lead to strange results if
+you happen to lower score of the articles with few lines.
@item Date
For the Date header we have three kinda silly match types:
The kill to score conversion package isn't included in Gnus by default.
You can fetch it from
-@file{http://www.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}.
+@file{http://www.stud.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}.
If your old kill files are very complex---if they contain more
non-@code{gnus-kill} forms than not, you'll have to convert them by
* Moderation:: What to do if you're a moderator.
* XEmacs Enhancements:: There are more pictures and stuff under XEmacs.
* Fuzzy Matching:: What's the big fuzz?
-* Thwarting Email Spam:: A how-to on avoiding unsolited commercial email.
+* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email.
* Various Various:: Things that are really various.
@end menu
@cindex symbolic prefixes
Quite a lot of Emacs commands react to the (numeric) prefix. For
-instance, @kbd{C-u 4 C-f} moves point four charaters forward, and
+instance, @kbd{C-u 4 C-f} moves point four characters forward, and
@kbd{C-u 9 0 0 I s s p} adds a permanent @code{Subject} substring score
rule of 900 to the current article.
@section Formatting Variables
@cindex formatting variables
-Throughout this manual you've probably noticed lots of variables called things like @code{gnus-group-line-format} and
+Throughout this manual you've probably noticed lots of variables called
+things like @code{gnus-group-line-format} and
@code{gnus-summary-mode-line-format}. These control how Gnus is to
output lines in the various buffers. There's quite a lot of them.
Fortunately, they all use the same syntax, so there's not that much to
@menu
* Formatting Basics:: A formatting variable is basically a format string.
+* Mode Line Formatting:: Some rules about mode line formatting variables.
* Advanced Formatting:: Modifying output in various ways.
* User-Defined Specs:: Having Gnus call your own functions.
* Formatting Fonts:: Making the formatting look colorful and nice.
less than 4 characters wide.
+@node Mode Line Formatting
+@subsection Mode Line Formatting
+
+Mode line formatting variables (e.g.,
+@code{gnus-summary-mode-line-format}) follow the same rules as other,
+buffer line oriented formatting variables (@pxref{Formatting Basics})
+with the following two differences:
+
+@enumerate
+
+@item
+There must be no newline (@samp{\n}) at the end.
+
+@item
+The special @samp{%%b} spec can be used to display the buffer name.
+Well, it's no spec at all, really---@samp{%%} is just a way to quote
+@samp{%} to allow it to pass through the formatting machinery unmangled,
+so that Emacs receives @samp{%b}, which is something the Emacs mode line
+display interprets to mean ``show the buffer name''. For a full list of
+mode line specs Emacs understands, see the documentation of the
+@code{mode-line-format} variable.
+
+@end enumerate
+
+
@node Advanced Formatting
@subsection Advanced Formatting
highlighted (with @code{gnus-mouse-face}) when you put the mouse pointer
over it.
-Text inside the @samp{%[} and @samp{%]} specifiers will have their
+Text inside the @samp{%@{} and @samp{%@}} specifiers will have their
normal faces set using @code{gnus-face-0}, which is @code{bold} by
-default. If you say @samp{%1[}, you'll get @code{gnus-face-1} instead,
+default. If you say @samp{%1@{}, you'll get @code{gnus-face-1} instead,
and so on. Create as many faces as you wish. The same goes for the
@code{mouse-face} specs---you can say @samp{%3(hello%)} to have
@samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}.
run @code{gnus-demon-init} to make the changes take hold. To cancel all
daemons, you can use the @code{gnus-demon-cancel} function.
-Note that adding daemons can be pretty naughty if you overdo it. Adding
+Note that adding daemons can be pretty naughty if you over do it. Adding
functions that scan all news and mail from all servers every two seconds
is a sure-fire way of getting booted off any respectable system. So
behave.
false pretenses. I press @kbd{g} and Gnus merrily informs me that I
have 10 new emails. I say ``Golly gee! Happy is me!'' and select the
mail group, only to find two pyramid schemes, seven advertisements
-(``New! Miracle tonic for growing full, lustrouos hair on your toes!'')
+(``New! Miracle tonic for growing full, lustrous hair on your toes!'')
and one mail asking me to repent and find some god.
This is annoying.
In addition, many mail spammers talk directly to your @code{smtp} server
and do not include your email address explicitly in the @code{To}
header. Why they do this is unknown---perhaps it's to thwart this
-twarting scheme? In any case, this is trivial to deal with---you just
+thwarting scheme? In any case, this is trivial to deal with---you just
put anything not addressed to you in the @samp{spam} group by ending
your fancy split rule in this way:
each unsolicited commercial email---at your leisure.
If you are also a lazy net citizen, you will probably prefer complaining
-automatically with the @file{gnus-junk.el} package, availiable FOR FREE
+automatically with the @file{gnus-junk.el} package, available FOR FREE
at @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
Since most e-mail spam is sent automatically, this may reconcile the
cosmic balance somewhat.
This works for me. It allows people an easy way to contact me (they can
just press @kbd{r} in the usual way), and I'm not bothered at all with
spam. It's a win-win situation. Forging @code{From} headers to point
-to non-existant domains is yucky, in my opinion.
+to non-existent domains is yucky, in my opinion.
@node Various Various
which defaults to the @samp{SAVEDIR} environment variable, or
@file{~/News/} if that variable isn't set.
-Note that Gnus is mostly loaded when the @file{.gnus.el} file is read.
+Note that gnus is mostly loaded when the @file{.gnus.el} file is read.
This means that other directory variables that are initialized from this
variable won't be set properly if you set this variable in
@file{.gnus.el}. Set this variable in @file{.emacs} instead.
If you want to investigate the person responsible for this outrage, you
can point your (feh!) web browser to
-@file{http://www.ifi.uio.no/~larsi/}. This is also the primary
+@file{http://www.stud.ifi.uio.no/~larsi/}. This is also the primary
distribution point for the new and spiffy versions of Gnus, and is known
as The Site That Destroys Newsrcs And Drives People Mad.
@sc{gnus} internals should suffer no problems. If problems occur,
please let me know by issuing that magic command @kbd{M-x gnus-bug}.
+@vindex gnus-bug-create-help-buffer
+If you are in the habit of sending bug reports @emph{very} often, you
+may find the helpful help buffer annoying after a while. If so, set
+@code{gnus-bug-create-help-buffer} to @code{nil} to avoid having it pop
+up at you.
+
@node Conformity
@subsection Conformity
Vladimir Alexiev---the refcard and reference booklets.
@item
-Felix Lee & Jamie Zawinsky---I stole some pieces from the XGnus
+Felix Lee & Jamie Zawinski---I stole some pieces from the XGnus
distribution by Felix Lee and JWZ.
@item
Jari Aalto,
Adrian Aichner,
+Vladimir Alexiev,
Russ Allbery,
Peter Arius,
Matt Armstrong,
Marc Auslander,
+Frank Bennett,
Robert Bihlmeyer,
Chris Bone,
Mark Borges,
Lance A. Brown,
Kees de Bruin,
Martin Buchholz,
+Joe Buehler,
Kevin Buhr,
Alastair Burt,
Joao Cachopo,
Zlatko Calusic,
Massimo Campostrini,
+Castor,
Dan Christensen,
+Kevin Christian,
Michael R. Cook,
Glenn Coombs,
Frank D. Cringle,
Sam Falkner,
Nelson Jose dos Santos Ferreira,
Sigbjorn Finne,
+Decklin Foster,
Gary D. Foster,
Paul Franklin,
Guy Geens,
Magnus Hammerin,
Kenichi Handa, @c Handa
Raja R. Harinath,
+Yoshiki Hayashi, @c ?
+P. E. Jareth Hein,
Hisashige Kenji, @c Hisashige
Marc Horowitz,
Gunnar Horrigmo,
Christian Limpach,
Markus Linnala,
Dave Love,
+Mike McEwan,
Tonny Madsen,
Shlomo Mahlab,
Nat Makarevitch,
Istvan Marko,
David Martin,
-Jason R Mastaler,
+Jason R. Mastaler,
Gordon Matzigkeit,
Timo Metzemakers,
Richard Mlynarik,
Jens-Ulrik Holger Petersen,
Ulrich Pfeifer,
John McClary Prevost,
+Mike Pullen,
+Jim Radford,
Colin Rafferty,
Lasse Rasinen,
Lars Balker Rasmussen,
Bart Robinson,
Christian von Roques,
Jason Rumney,
+Wolfgang Rupprecht,
Jay Sachs,
Dewey M. Sasser,
Loren Schall,
Dan Schmidt,
Ralph Schleicher,
Philippe Schnoebelen,
+Andreas Schwab,
Randal L. Schwartz,
Justin Sheehy,
Danny Siu,
Darren Stalder,
Richard Stallman,
Greg Stark,
+Sam Steingold,
Paul Stodghill,
Kurt Swanson,
Samuel Tardieu,
* ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus.
* September Gnus:: The Thing Formally Known As Gnus 5.3/5.3.
* Red Gnus:: Third time best---Gnus 5.4/5.5.
-* Quassia Gnus:: Two times two is four, or Gnus 5.6.7.
+* Quassia Gnus:: Two times two is four, or Gnus 5.6.23.
@end menu
These lists are, of course, just @emph{short} overviews of the
@node Quassia Gnus
@subsubsection Quassia Gnus
-New features in Gnus 5.6.7:
+New features in Gnus 5.6.23:
@itemize @bullet
rewrite them to use @code{face-spec-set} instead.
@item
- Cancelling now uses the current select method. Symbolic prefix
+ Canceling now uses the current select method. Symbolic prefix
@kbd{a} forces normal posting method.
@item
nnmh-be-safe means that crossposted articles will
be marked as unread.
@item
- Orphan score entries dont show on "V t" score trace
+ Orphan score entries don't show on "V t" score trace
@item
when clearing out data, the cache data should also be reset.
@item
rewrite gnus-summary-limit-children to be non-recursive
to avoid exceeding lisp nesting on huge groups.
@item
- expinged articles are counted when computing scores.
+ expunged articles are counted when computing scores.
@item
implement gnus-batch-brew-soup
@item
the server?
@item
sort after gathering threads -- make false roots have the
-headers of the oldest orhpan with a 0 article number?
+headers of the oldest orphan with a 0 article number?
@item
nndoc groups should inherit the score files of their parents? Also
inherit copy prompts and save files.
on. Eg. -- `(("nnml:" . 1))'.
@item
easier interface to nnkiboze to create ephemeral groups that
-contaion groups that match a regexp.
+contain groups that match a regexp.
@item
allow newlines in <URL:> urls, but remove them before using
the URL.
@item
hide-pgp should also hide PGP public key blocks.
@item
- Command in the group buffer to respoll process-marked groups.
+ Command in the group buffer to respool process-marked groups.
@item
`gnus-summary-find-matching' should accept
pseudo-"headers" like "body", "head" and "all"
@item
checking for bogus groups should clean topic alists as well.
@item
- cancelling articles in foreign groups.
+ canceling articles in foreign groups.
@item
article number in folded topics isn't properly updated by
Xref handling.
server mode command for clearing read marks from all groups
from a server.
@item
- when following up mulitple articles, include all To, Cc, etc headers
+ when following up multiple articles, include all To, Cc, etc headers
from all articles.
@item
a command for deciding what the total score of the current
a way to visually distinguish slave Gnusae from masters. (Whip instead
of normal logo?)
@item
- Use DJ Bernstein "From " quoting/dequoting, where appliccable.
+ Use DJ Bernstein "From " quoting/dequoting, where applicable.
@item
Why is hide-citation-maybe and hide-citation different? Also
clear up info.
@end example
@item
- tanken var at når du bruker `gnus-startup-file' som prefix (FOO) til å lete
+ tanken var at når du bruker `gnus-startup-file' som prefix (FOO) til lete
opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den være en
liste hvor du bruker hvert element i listen som FOO, istedet. da kunne man
hatt forskjellige serveres startup-filer forskjellige steder.
would show all the messages which are labeled `bug' but not labeled
`fixed'.
-One could also immagine the labels being used for highliting, or
+One could also imagine the labels being used for highlighting, or
affect the summary line format.
- If it is a directory containing numbered files, create an nndir
summary buffer.
-- For other directories, create a nneething summaru buffer.
+- For other directories, create a nneething summary buffer.
- For files matching "\\`From ", create a nndoc/mbox summary.
decend into ucd?
The problem above is that since there is really only one subsection of
-science, shouldn't it prompt you for only decending sci.something? If
+science, shouldn't it prompt you for only descending sci.something? If
there was a sci.somethingelse group or section, then it should prompt
for sci? first the sci.something? then sci.somethingelse?...
@item
-Ja, det burde være en måte å si slikt. Kanskje en ny variabel?
-`gnus-use-few-score-files'? Så kunne score-regler legges til den
+Ja, det burde være en måte si slikt. Kanskje en ny variabel?
+`gnus-use-few-score-files'? S kunne score-regler legges til den
"mest" lokale score-fila. F. eks. ville no-gruppene betjenes av
"no.all.SCORE", osv.
`x' should retain any sortings that have been performed.
@item
- allow the user to specify the presedence of the secondary marks. Also
+ allow the user to specify the precedence of the secondary marks. Also
allow them to be displayed separately.
@item
@item
gnus-article-hide-pgp
-Selv ville jeg nok ha valgt å slette den dersom teksten matcher
+Selv ville jeg nok ha valgt slette den dersom teksten matcher
@example
"\\(This\s+\\)?[^ ]+ has been automatically signed by"
@end example
Allow Gnus Agent scoring to use normal score files.
@item
+Rething the Agent active file thing. `M-g' doesn't update the active
+file, for instance.
+
+@item
+With dummy roots, `^' and then selecing the first article
+in any other dummy thread will make gnus highlight the
+dummy root instead of the first article.
+
+@item
+Propagate all group properties (marks, article numbers, etc) up to the
+topics for displaying.
+
+@item
+`n' in the group buffer with topics should go to the next group
+with unread articles, even if that group is hidden in a topic.
+
+@item
Solve the halting problem.
@c TODO
@node Score File Syntax
@subsection Score File Syntax
-Score files are meant to be easily parsable, but yet extremely
+Score files are meant to be easily parseable, but yet extremely
mallable. It was decided that something that had the same read syntax
as an Emacs Lisp list would fit that spec.