*** empty log message ***
[gnus] / texi / gnus.texi
index 4d153a4..292ae85 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Gnus 5.4.31 Manual
+@settitle Gnus 5.4.47 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -287,7 +287,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
 @tex
 
 @titlepage
-@title Gnus 5.4.31 Manual
+@title Gnus 5.4.47 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -323,7 +323,7 @@ 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.
 
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.4.31.
+This manual corresponds to Gnus 5.4.47.
 
 @end ifinfo
 
 
 @end ifinfo
 
@@ -641,8 +641,10 @@ Use the mantra ``dingnusdingnusdingnus'' to achieve permanent bliss.
 What Gnus does when it encounters a new group is determined by the
 @code{gnus-subscribe-newsgroup-method} variable.
 
 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.  Some handy pre-fab values
-are:
+This variable should contain a function.  This function will be called
+with the name of the new group as the only parameter.
+
+Some handy pre-fab functions are:
 
 @table @code
 
 
 @table @code
 
@@ -2013,7 +2015,7 @@ Also @pxref{Topic Parameters}.
 Here's an example group parameter list:
 
 @example
 Here's an example group parameter list:
 
 @example
-((to-address . "ding@@ifi.uio.no")
+((to-address . "ding@@gnus.org")
  (auto-expiry . t))
 @end example
 
  (auto-expiry . t))
 @end example
 
@@ -2908,8 +2910,10 @@ a prefix, force Gnus to re-read the description from the server.
 Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 prefix, force Gnus to re-read the description file from the server.
 
 Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 prefix, force Gnus to re-read the description file from the server.
 
-@item V
+@item H v
+@itemx V
 @kindex V (Group)
 @kindex V (Group)
+@kindex H v (Group)
 @cindex version
 @findex gnus-version
 Display current Gnus version numbers (@code{gnus-version}).
 @cindex version
 @findex gnus-version
 Display current Gnus version numbers (@code{gnus-version}).
@@ -3723,8 +3727,11 @@ headers of the forwarded article.
 @item S O p
 @kindex S O p (Summary)
 @findex gnus-uu-digest-post-forward
 @item S O p
 @kindex S O p (Summary)
 @findex gnus-uu-digest-post-forward
+@cindex digests
+@cindex making digests
 Digest the current series and forward the result to a newsgroup
 Digest the current series and forward the result to a newsgroup
-(@code{gnus-uu-digest-mail-forward}).  
+(@code{gnus-uu-digest-mail-forward}).  This command uses the
+process/prefix convention.
 
 @item S u
 @kindex S u (Summary)
 
 @item S u
 @kindex S u (Summary)
@@ -4727,7 +4734,7 @@ number, you could do something like:
 (setq gnus-thread-sort-functions 
       '(gnus-thread-sort-by-number
         gnus-thread-sort-by-subject
 (setq gnus-thread-sort-functions 
       '(gnus-thread-sort-by-number
         gnus-thread-sort-by-subject
-        gnus-thread-sort-by-score))
+        gnus-thread-sort-by-total-score))
 @end lisp
 
 The threads that have highest score will be displayed first in the
 @end lisp
 
 The threads that have highest score will be displayed first in the
@@ -6329,6 +6336,10 @@ matter what group it belongs to.  @kbd{M-^}
 that look something like @samp{<38o6up$6f2@@hymir.ifi.uio.no>}.  You
 have to get it all exactly right.  No fuzzy searches, I'm afraid.
 
 that look something like @samp{<38o6up$6f2@@hymir.ifi.uio.no>}.  You
 have to get it all exactly right.  No fuzzy searches, I'm afraid.
 
+The current select method will be used when fetching by
+@code{Message-ID} from non-news select method, but you can override this
+by giving this command a prefix.
+
 @vindex gnus-refer-article-method
 If the group you are reading is located on a backend that does not
 support fetching by @code{Message-ID} very well (like @code{nnspool}),
 @vindex gnus-refer-article-method
 If the group you are reading is located on a backend that does not
 support fetching by @code{Message-ID} very well (like @code{nnspool}),
@@ -6361,10 +6372,10 @@ Gnus, we offer a small selection of minor modes for the summary buffers.
 @subsection Pick and Read
 @cindex pick and read
 
 @subsection Pick and Read
 @cindex pick and read
 
-Some newsreaders (like @code{nn} and, uhm, @code{nn}) use a two-phased
-reading interface.  The user first marks the articles she wants to read
-from a summary buffer.  Then she starts reading the articles with just
-an article buffer displayed.
+Some newsreaders (like @code{nn} and, uhm, @code{Netnews} on VM/CMS) use
+a two-phased reading interface.  The user first marks the articles she
+wants to read from a summary buffer.  Then she starts reading the
+articles with just an article buffer displayed.
 
 @findex gnus-pick-mode
 @kindex M-x gnus-pick-mode
 
 @findex gnus-pick-mode
 @kindex M-x gnus-pick-mode
@@ -6572,7 +6583,10 @@ nodes to their children.  The default is @code{(?- ?\\ ?|)}.
 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
 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}.
+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
+buffer is one of these, minimizing the tree window will also resize all
+other windows that are displayed next to it.
 
 @item gnus-generate-tree-function
 @vindex gnus-generate-tree-function
 
 @item gnus-generate-tree-function
 @vindex gnus-generate-tree-function
@@ -7518,6 +7532,11 @@ Variables for customizing outgoing mail:
 List of regexps to match headers included in digested messages.  The
 headers will be included in the sequence they are matched.
 
 List of regexps to match headers included in digested messages.  The
 headers will be included in the sequence they are matched.
 
+@item gnus-add-to-list
+@vindex gnus-add-to-list
+If non-@code{nil}, add a @code{to-list} group parameter to mail groups
+that have none when you do a @kbd{a}.
+
 @end table
 
 
 @end table
 
 
@@ -8240,12 +8259,12 @@ actually the case or not.
 
 That might seem quite naughty, but it does make sense most of the time.
 Let's say you have 10 groups subscribed to the server
 
 That might seem quite naughty, but it does make sense most of the time.
 Let's say you have 10 groups subscribed to the server
-@samp{nepholococcygia.com}.  This server is located somewhere quite far
-away from you, the machine is quite, so it takes 1 minute just to find
-out that it refuses connection from you today.  If Gnus were to attempt
-to do that 10 times, you'd be quite annoyed, so Gnus won't attempt to do
-that.  Once it has gotten a single ``connection refused'', it will
-regard that server as ``down''.
+@samp{nephelococcygia.com}.  This server is located somewhere quite far
+away from you and the machine is quite slow, so it takes 1 minute just
+to find out that it refuses connection from you today.  If Gnus were to
+attempt to do that 10 times, you'd be quite annoyed, so Gnus won't
+attempt to do that.  Once it has gotten a single ``connection refused'',
+it will regard that server as ``down''.
 
 So, what happens if the machine was only feeling unwell temporarily?
 How do you test to see whether the machine has come up again?
 
 So, what happens if the machine was only feeling unwell temporarily?
 How do you test to see whether the machine has come up again?
@@ -8434,20 +8453,58 @@ This hook is run as the last step when connecting to an @sc{nntp}
 server.
 
 @findex nntp-open-rlogin
 server.
 
 @findex nntp-open-rlogin
+@findex nntp-open-telnet
 @findex nntp-open-network-stream
 @item nntp-open-connection-function
 @vindex nntp-open-connection-function
 @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.  Two pre-made
+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
 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
-is @code{nntp-open-rlogin}, which does an rlogin on the remote system,
-and then does a telnet to the @sc{nntp} server available there.
+two are @code{nntp-open-rlogin}, which 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.
+
+@code{nntp-open-rlogin}-related variables:
+
+@table @code
 
 @item nntp-rlogin-parameters
 @vindex nntp-rlogin-parameters
 
 @item nntp-rlogin-parameters
 @vindex nntp-rlogin-parameters
-If you use @code{nntp-open-rlogin} as the
-@code{nntp-open-connection-function}, this list will be used as the
-parameter list given to @code{rsh}.
+This list will be used as the parameter list given to @code{rsh}.
+
+@item nntp-rlogin-user-name
+@vindex nntp-rlogin-user-name
+User name on the remote system.
+
+@end table
+
+@code{nntp-open-telnet}-related variables:
+
+@table @code
+@item nntp-telnet-command
+@vindex nntp-telnet-command
+Command used to start @samp{telnet}.
+
+@item nntp-telnet-switches
+@vindex nntp-telnet-switches
+List of strings to be used as the switches to the telnet command.
+
+@item nntp-telnet-user-name
+@vindex nntp-telnet-user-name
+User name to log in on the remote system as.
+
+@item nntp-telnet-passwd
+@vindex nntp-telnet-passwd
+Password to use when logging in.
+
+@item nntp-telnet-parameters
+@vindex nntp-telnet-parameters
+A list of strings that will be executed as a command after logging in
+via telnet.
+
+@end table
 
 @item nntp-end-of-line
 @vindex nntp-end-of-line
 
 @item nntp-end-of-line
 @vindex nntp-end-of-line
@@ -8911,7 +8968,7 @@ Let's look at an example value of this variable first:
       (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list")
       (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list")
       ;; People...
       (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list")
       (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list")
       ;; People...
-      (any "larsi@@ifi\\.uio\\.no" "people.Lars Magne Ingebrigtsen"))
+      (any "larsi@@ifi\\.uio\\.no" "people.Lars_Magne_Ingebrigtsen"))
    ;; Unmatched mail goes to the catch all group.
    "misc.misc")
 @end lisp
    ;; Unmatched mail goes to the catch all group.
    "misc.misc")
 @end lisp
@@ -11577,12 +11634,12 @@ or each score file directory.  Gnus will decide by itself what score
 files are applicable to which group.
 
 Say you want to use the score file
 files are applicable to which group.
 
 Say you want to use the score file
-@file{/ftp@@ftp.ifi.uio.no:/pub/larsi/ding/score/soc.motss.SCORE} and
+@file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
 all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
 
 @lisp
 (setq gnus-global-score-files
 all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
 
 @lisp
 (setq gnus-global-score-files
-      '("/ftp@@ftp.ifi.uio.no:/pub/larsi/ding/score/soc.motss.SCORE"
+      '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE"
         "/ftp@@ftp.some-where:/pub/score/"))
 @end lisp
 
         "/ftp@@ftp.some-where:/pub/score/"))
 @end lisp
 
@@ -12186,6 +12243,7 @@ four days, Gnus will decay the scores four times, for instance.
 * 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?
 * 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.
 * Various Various::            Things that are really various.
 @end menu
 
 * Various Various::            Things that are really various.
 @end menu
 
@@ -12985,7 +13043,7 @@ daemons, you can use the @code{gnus-demon-cancel} function.
 Note that adding daemons can be pretty naughty if you overdo 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
 Note that adding daemons can be pretty naughty if you overdo 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. 
+behave.
 
 
 @node NoCeM
 
 
 @node NoCeM
@@ -13065,6 +13123,22 @@ says she is.  The default is @code{mc-verify}, which is a Mailcrypt
 function.  If this is too slow and you don't care for verification
 (which may be dangerous), you can set this variable to @code{nil}.
 
 function.  If this is too slow and you don't care for verification
 (which may be dangerous), you can set this variable to @code{nil}.
 
+If you want signed NoCeM messages to be verified and unsigned messages
+not to be verified (but used anyway), you could do something like:
+
+@lisp
+(setq gnus-nocem-verifyer 'my-gnus-mc-verify)
+
+(defun my-gnus-mc-verify ()
+  (not (eq 'forged
+           (ignore-errors
+             (if (mc-verify)
+                 t
+               'forged)))))
+@end lisp
+
+This might be dangerous, though.
+
 @item gnus-nocem-directory
 @vindex gnus-nocem-directory
 This is where Gnus will store its NoCeM cache files.  The default is
 @item gnus-nocem-directory
 @vindex gnus-nocem-directory
 This is where Gnus will store its NoCeM cache files.  The default is
@@ -13301,7 +13375,7 @@ command.
 
 If you are a moderator, you can use the @file{gnus-mdrtn.el} package.
 It is not included in the standard Gnus package.  Write a mail to
 
 If you are a moderator, you can use the @file{gnus-mdrtn.el} package.
 It is not included in the standard Gnus package.  Write a mail to
-@samp{larsi@@ifi.uio.no} and state what group you moderate, and you'll
+@samp{larsi@@gnus.org} and state what group you moderate, and you'll
 get a copy.
 
 The moderation package is implemented as a minor mode for summary
 get a copy.
 
 The moderation package is implemented as a minor mode for summary
@@ -13410,6 +13484,98 @@ adequate results---even when faced with strings generated by text
 manglers masquerading as newsreaders.
 
 
 manglers masquerading as newsreaders.
 
 
+@node Thwarting Email Spam
+@section Thwarting Email Spam
+@cindex email spam
+@cindex spam
+@cindex UCE
+@cindex unsolicited commercial email
+
+In these last days of the Usenet, commercial vultures are hanging about
+and grepping through news like crazy to find email addresses they can
+foist off their scams and products to.  As a reaction to this, many
+people have started putting nonsense addresses into their @code{From}
+lines.  I think this is counterproductive---it makes it difficult for
+people to send you legitimate mail in response to things you write, as
+well as making it difficult to see who wrote what.  This rewriting may
+perhaps be a bigger menace than the unsolicited commercial email itself
+in the end.
+
+The biggest problem I have with email spam is that it comes in under
+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 selects the
+mail group, only to find two pyramid schemes, seven advertisements
+(``New!  Miracle tonic for growing full, lustrouos hair on your toes!'')
+and one mail asking me to repent and find some god.
+
+This is annoying.
+
+The way to deal with this is having Gnus split out all spam into a
+@samp{spam} mail group (@pxref{Splitting Mail}).
+
+First, pick one (1) legal mail address that you can be reached at, and
+put it in your @code{From} header of all your news articles.  (I've
+chosen @samp{larsi@@trym.ifi.uio.no}, but for many addresses on the form
+@samp{larsi+usenet@@ifi.uio.no} will be a better choice.  Ask your
+sysadm whether your sendmail installation accepts keywords in the local
+part of the mail address.)
+
+@lisp
+(setq message-default-news-headers
+      "From: Lars Magne Ingebrigtsen <larsi@@trym.ifi.uio.no>\n")
+@end lisp
+
+Then put the following split rule in @code{nnmail-split-fancy}
+(@pxref{Fancy Mail Splitting}):
+
+@lisp
+(
+ ...
+ (to "larsi@@trym.ifi.uio.no"
+      (| ("subject" "re:.*" "misc")
+         ("references" ".*@@.*" "misc")
+         "spam"))
+ ...
+)
+@end lisp
+
+This says that all mail to this address is suspect, but if it has a
+@code{Subject} that starts with a @samp{Re:} or has a @code{References}
+header, it's probably ok.  All the rest goes to the @samp{spam} group.
+(This idea probably comes from Tim Pierce.)
+
+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
+put anything not addressed to you in the @samp{spam} group by ending
+your fancy split rule in this way:
+
+@lisp
+(
+ ...
+ (to "larsi" "misc")
+ "spam")
+@end lisp
+
+In my experience, this will sort virtually everything into the right
+group.  You still have to check the @samp{spam} group from time to time to
+check for legitimate mail, though.  If you feel like being a good net
+citizen, you can even send off complaints to the proper authorities on
+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
+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.
+
+
 @node Various Various
 @section Various Various
 @cindex mode lines
 @node Various Various
 @section Various Various
 @cindex mode lines
@@ -13894,6 +14060,7 @@ Andre Deparade,
 Ulrik Dickow,
 Dave Disser,
 Joev Dubach,
 Ulrik Dickow,
 Dave Disser,
 Joev Dubach,
+Michael Welsh Duggan,
 Paul Eggert,
 Michael Ernst,
 Luc Van Eycken,
 Paul Eggert,
 Michael Ernst,
 Luc Van Eycken,
@@ -13905,12 +14072,15 @@ Magnus Hammerin,
 Raja R. Harinath,
 Hisashige Kenji, @c Hisashige
 Marc Horowitz,
 Raja R. Harinath,
 Hisashige Kenji, @c Hisashige
 Marc Horowitz,
+Gunnar Horrigmo,
+Brad Howes,
 François Felix Ingrand,
 Ishikawa Ichiro, @c Ishikawa
 Lee Iverson, 
 Rajappa Iyer,
 Randell Jesup,
 Fred Johansen, 
 François Felix Ingrand,
 Ishikawa Ichiro, @c Ishikawa
 Lee Iverson, 
 Rajappa Iyer,
 Randell Jesup,
 Fred Johansen, 
+Kim-Minh Kaplan,
 Greg Klanderman,
 Karl Kleinpaste,
 Peter Skov Knudsen,
 Greg Klanderman,
 Karl Kleinpaste,
 Peter Skov Knudsen,
@@ -13946,6 +14116,7 @@ John McClary Prevost,
 Colin Rafferty,
 Bart Robinson,
 Jason Rumney,
 Colin Rafferty,
 Bart Robinson,
 Jason Rumney,
+Dewey M. Sasser,
 Loren Schall,
 Dan Schmidt,
 Ralph Schleicher,
 Loren Schall,
 Dan Schmidt,
 Ralph Schleicher,
@@ -13954,6 +14125,7 @@ Randal L. Schwartz,
 Danny Siu, 
 Paul D. Smith,
 Jeff Sparkes,
 Danny Siu, 
 Paul D. Smith,
 Jeff Sparkes,
+Toby Speight,
 Michael Sperber,
 Richard Stallman,
 Greg Stark, 
 Michael Sperber,
 Richard Stallman,
 Greg Stark, 
@@ -13963,6 +14135,7 @@ Samuel Tardieu,
 Teddy,
 Chuck Thompson,
 Philippe Troin,
 Teddy,
 Chuck Thompson,
 Philippe Troin,
+Aaron M. Ucko,
 Jan Vroonhof,
 Barry A. Warsaw,
 Christoph Wedler,
 Jan Vroonhof,
 Barry A. Warsaw,
 Christoph Wedler,
@@ -14940,8 +15113,8 @@ If you just need help, you are better off asking on
 
 @cindex gnu.emacs.gnus
 @cindex ding mailing list
 
 @cindex gnu.emacs.gnus
 @cindex ding mailing list
-You can also ask on the ding mailing list---@samp{ding@@ifi.uio.no}.
-Write to @samp{ding-request@@ifi.uio.no} to subscribe.
+You can also ask on the ding mailing list---@samp{ding@@gnus.org}.
+Write to @samp{ding-request@@gnus.org} to subscribe.
 
 
 @node A Programmers Guide to Gnus
 
 
 @node A Programmers Guide to Gnus
@@ -14960,6 +15133,7 @@ backends (this is written in stone), the format of the score files
 and general method of operations.
 
 @menu 
 and general method of operations.
 
 @menu 
+* Gnus Utility Functions::   Common functions and variable to use.
 * Backend Interface::        How Gnus communicates with the servers.
 * Score File Syntax::        A BNF definition of the score file standard.
 * Headers::                  How Gnus stores headers internally.
 * Backend Interface::        How Gnus communicates with the servers.
 * Score File Syntax::        A BNF definition of the score file standard.
 * Headers::                  How Gnus stores headers internally.
@@ -14970,6 +15144,114 @@ and general method of operations.
 @end menu
 
 
 @end menu
 
 
+@node Gnus Utility Functions
+@subsection Gnus Utility Functions
+@cindex Gnus utility functions
+@cindex utility functions
+@cindex functions
+@cindex internal variables
+
+When writing small functions to be run from hooks (and stuff), it's
+vital to have access to the Gnus internal functions and variables.
+Below is a list of the most common ones.
+
+@table @code
+
+@item gnus-newsgroup-name
+@vindex gnus-newsgroup-name
+This variable holds the name of the current newsgroup.
+
+@item gnus-find-method-for-group
+@findex gnus-find-method-for-group
+A function that returns the select method for @var{group}.
+
+@item gnus-group-real-name
+@findex gnus-group-real-name
+Takes a full (prefixed) Gnus group name, and returns the unprefixed
+name.
+
+@item gnus-group-prefixed-name
+@findex gnus-group-prefixed-name
+Takes an unprefixed group name and a select method, and returns the full
+(prefixed) Gnus group name.
+
+@item gnus-get-info
+@findex gnus-get-info
+Return the group info list for @var{group}.
+
+@item gnus-add-current-to-buffer-list
+@findex gnus-add-current-to-buffer-list
+Add the current buffer to the list of buffers to be killed on Gnus
+exit.
+
+@item gnus-continuum-version
+@findex gnus-continuum-version
+Take a Gnus version string as a parameter and returns a floating point
+number.  Earlier versions will always get a lower number than later
+versions.
+
+@item gnus-group-read-only-p
+@findex gnus-group-read-only-p
+Say whether @var{group} is read-only or not.
+
+@item gnus-news-group-p
+@findex gnus-news-group-p
+Say whether @var{group} came from a news backend.
+
+@item gnus-ephemeral-group-p
+@findex gnus-ephemeral-group-p
+Say whether @var{group} is ephemeral or not.
+
+@item gnus-server-to-method
+@findex gnus-server-to-method
+Return the select method corresponding to @var{server}.
+
+@item gnus-server-equal
+@findex gnus-server-equal
+Say whether two virtual servers are equal.
+
+@item gnus-group-native-p
+@findex gnus-group-native-p
+Say whether @var{group} is native or not.
+
+@item gnus-group-secondary-p
+@findex gnus-group-secondary-p
+Say whether @var{group} is secondary or not.
+
+@item gnus-group-foreign-p
+@findex gnus-group-foreign-p
+Say whether @var{group} is foreign or not.
+
+@item group-group-find-parameter
+@findex group-group-find-parameter
+Return the parameter list of @var{group}.  If given a second parameter,
+return the value of that parameter for @var{group}.
+
+@item gnus-group-set-parameter
+@findex gnus-group-set-parameter
+Takes three parameters; @var{group}, @var{parameter} and @var{value}.
+
+@item gnus-narrow-to-body
+@findex gnus-narrow-to-body
+Narrow the current buffer to the body of the article.
+
+@item gnus-check-backend-function
+@findex gnus-check-backend-function
+Takes two parameters, @var{function} and @var{group}.  If the backend
+@var{group} comes from supports @var{function}, return non-@code{nil}.
+
+@lisp
+(gnus-check-backend-function "request-scan" "nnml:misc")
+=> t
+@end lisp
+
+@item gnus-read-method
+@findex gnus-read-method
+Prompt the user for a select method.
+
+@end table
+
+
 @node Backend Interface
 @subsection Backend Interface
 
 @node Backend Interface
 @subsection Backend Interface
 
@@ -15792,7 +16074,7 @@ mark-and-expunge = "mark-and-expunge" space nil-or-number
 files            = "files" *[ space <string> ]
 exclude-files    = "exclude-files" *[ space <string> ]
 read-only        = "read-only" [ space "nil" / space "t" ]
 files            = "files" *[ space <string> ]
 exclude-files    = "exclude-files" *[ space <string> ]
 read-only        = "read-only" [ space "nil" / space "t" ]
-adapt            = "adapt" [ space "nil" / space "t" / space adapt-rule ]
+adapt            = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
 adapt-rule       = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
 local            = "local" *[ space "(" <string> space <form> ")" ]
 eval             = "eval" space <form>
 adapt-rule       = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
 local            = "local" *[ space "(" <string> space <form> ")" ]
 eval             = "eval" space <form>
@@ -15933,7 +16215,7 @@ second is a more complex one:
 ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55))
                 ((tick (15 . 19)) (replied 3 6 (19 . 3)))
                 (nnml "")
 ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55))
                 ((tick (15 . 19)) (replied 3 6 (19 . 3)))
                 (nnml "")
-                (auto-expire (to-address "ding@@ifi.uio.no")))
+                (auto-expire (to-address "ding@@gnus.org")))
 @end example
 
 The first element is the @dfn{group name}---as Gnus knows the group,
 @end example
 
 The first element is the @dfn{group name}---as Gnus knows the group,
@@ -15967,6 +16249,67 @@ Actually that @samp{marks} rule is a fib.  A @samp{marks} is a
 @samp{<string>} consed on to a @samp{range}, but that's a bitch to say
 in pseudo-BNF.
 
 @samp{<string>} consed on to a @samp{range}, but that's a bitch to say
 in pseudo-BNF.
 
+If you have a Gnus info and want to access the elements, Gnus offers a
+series of macros for getting/setting these elements.
+
+@table @code
+@item gnus-info-group
+@itemx gnus-info-set-group
+@findex gnus-info-group
+@findex gnus-info-set-group
+Get/set the group name.
+
+@item gnus-info-rank
+@itemx gnus-info-set-rank
+@findex gnus-info-rank
+@findex gnus-info-set-rank
+Get/set the group rank.
+
+@item gnus-info-level
+@itemx gnus-info-set-level
+@findex gnus-info-level
+@findex gnus-info-set-level
+Get/set the group level.
+
+@item gnus-info-score
+@itemx gnus-info-set-score
+@findex gnus-info-score
+@findex gnus-info-set-score
+Get/set the group score.
+
+@item gnus-info-read
+@itemx gnus-info-set-read
+@findex gnus-info-read
+@findex gnus-info-set-read
+Get/set the ranges of read articles.
+
+@item gnus-info-marks
+@itemx gnus-info-set-marks
+@findex gnus-info-marks
+@findex gnus-info-set-marks
+Get/set the lists of ranges of marked articles.
+
+@item gnus-info-method
+@itemx gnus-info-set-method
+@findex gnus-info-method
+@findex gnus-info-set-method
+Get/set the group select method.
+
+@item gnus-info-params
+@itemx gnus-info-set-params
+@findex gnus-info-params
+@findex gnus-info-set-params
+Get/set the group parameters.
+@end table
+
+All the getter functions take one parameter---the info list.  The setter
+functions take two parameters---the info list and the new value.
+
+The last three elements in the group info aren't mandatory, so it may be
+necessary to extend the group info before setting the element.  If this
+is necessary, you can just pass on a non-@code{nil} third parameter to
+the three final setter functions to have this happen automatically.
+
 
 @node Emacs/XEmacs Code
 @subsection Emacs/XEmacs Code
 
 @node Emacs/XEmacs Code
 @subsection Emacs/XEmacs Code
@@ -16005,6 +16348,11 @@ not redefine any native Emacs functions while running under XEmacs---it
 does this @code{defalias} thing with Gnus equivalents instead.  Cleaner
 all over.
 
 does this @code{defalias} thing with Gnus equivalents instead.  Cleaner
 all over.
 
+In the cases when the XEmacs function interface was obviously
+cleaner, I used it instead.  For example @code{gnus-region-active-p}
+is an alias for @code{region-active-p} in XEmacs, whereas in Emacs
+it is a function.
+
 Of course, I could have chosen XEmacs as my native platform and done
 mapping functions the other way around.  But I didn't.  The performance
 hit these indirections impose on Gnus under XEmacs should be slight.
 Of course, I could have chosen XEmacs as my native platform and done
 mapping functions the other way around.  But I didn't.  The performance
 hit these indirections impose on Gnus under XEmacs should be slight.