\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Semi-gnus 6.10.032 Manual
+@settitle Semi-gnus 6.10.051 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Semi-gnus 6.10.032 Manual
+@title Semi-gnus 6.10.051 Manual
@author by Lars Magne Ingebrigtsen
@page
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.10.032.
+This manual corresponds to Semi-gnus 6.10.051.
@end ifinfo
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:
@code{NNTPSERVER} environment variable. If that variable isn't set,
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
+@vindex gnus-nntp-server
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
in the @code{gnus-secondary-servers} list (if any). You can also just
-type in the name of any server you feel like visiting.
+type in the name of any server you feel like visiting. (Note that this
+will set @code{gnus-nntp-server}, which means that if you then @kbd{M-x
+gnus} later in the same Emacs session, Gnus will contact the same
+server.)
@findex gnus-group-browse-foreign-server
@kindex B (Group)
@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.
+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.)
+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
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.)
+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
@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
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
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.
+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
@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)
(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:
@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 charset
Elements that look like @code{(charset . iso-8859-1)} will make
group. @code{dummy-variable} will be set to the result of the
@code{(ding)} form, but who cares?
+@item posting-style
+You can store additional posting style information for this group only
+here (@pxref{Posting Styles}). The format is that of an entry in the
+@code{gnus-posting-styles} alist, except that there's no regexp matching
+the group name (of course). Style elements in this group parameter will
+take precedence over the ones found in @code{gnus-posting-styles}.
+
+For instance, if you want a funky name and signature in this group only,
+instead of hacking @code{gnus-posting-styles}, you could put something
+like this in the group parameters:
+
+@example
+(posting-style
+ (name "Funky Name")
+ (signature "Funky Signature"))
+@end example
+
@end table
Use the @kbd{G p} command to edit group parameters of a group. You
@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)
@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
Remove the process mark from all groups in the current topic
(@code{gnus-topic-unmark-topic}).
-@item RET
-@kindex RET (Topic)
-@findex gnus-topic-select-group
-@itemx SPACE
-Either select a group or fold a topic (@code{gnus-topic-select-group}).
-When you perform this command on a group, you'll enter the group, as
-usual. When done on a topic line, the topic will be folded (if it was
-visible) or unfolded (if it was folded already). So it's basically a
-toggling command on topics. In addition, if you give a numerical
-prefix, group on that level (and lower) will be displayed.
-
@item T TAB
@itemx TAB
@kindex T TAB (Topic)
``Un-indent'' the current topic so that it becomes a sub-topic of the
parent of its current parent (@code{gnus-topic-unindent}).
+@item RET
+@kindex RET (Topic)
+@findex gnus-topic-select-group
+@itemx SPACE
+Either select a group or fold a topic (@code{gnus-topic-select-group}).
+When you perform this command on a group, you'll enter the group, as
+usual. When done on a topic line, the topic will be folded (if it was
+visible) or unfolded (if it was folded already). So it's basically a
+toggling command on topics. In addition, if you give a numerical
+prefix, group on that level (and lower) will be displayed.
+
+@item C-c C-x
+@kindex C-c C-x (Topic)
+@findex gnus-topic-expire-articles
+Run all expirable articles in the current group or topic through the expiry
+process (if any) (@code{gnus-topic-expire-articles}).
+
@item C-k
@kindex C-k (Topic)
@findex gnus-topic-kill-group
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:
-
+
@lisp
(setq gnus-extract-address-components
'mail-extract-address-components)
@end lisp
-
+
@vindex gnus-summary-same-subject
@code{gnus-summary-same-subject} is a string indicating that the current
article has the same subject as the previous. This string will be used
"Your Name Here")
@end lisp
+Now, this is mostly useful for mail groups, where you have control over
+the @sc{nov} files that are created. However, if you can persuade your
+nntp admin to add:
+
+@example
+Newsgroups:full
+@end example
+
+to the end of her @file{overview.fmt} file, then you can use that just
+as you would the extra headers from the mail groups.
+
@node Summary Buffer Mode Line
@subsection Summary Buffer Mode Line
ship a mail to a different account of yours. (If you're both
@code{root} and @code{postmaster} and get a mail for @code{postmaster}
to the @code{root} account, you may want to resend it to
-@code{postmaster}. Ordnung mu\e,A_\e(B sein!
+@code{postmaster}. Ordnung muß sein!
This command understands the process/prefix convention
(@pxref{Process/Prefix}).
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
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
-encounters the article. @xref{Setting Marks}
+encounters the article. @xref{Setting Marks}.
@item
@vindex gnus-replied-mark
@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
+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.
@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
@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")
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.
+@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
@cindex Latin 1
Treat M******** sm*rtq**t*s according to
@code{gnus-article-dumbquotes-map}
-(@code{gnus-article-treat-dumbquotes}).
+(@code{gnus-article-treat-dumbquotes}). Note that this function guesses
+whether a character is a sm*rtq**t* or not, so it should only be used
+interactively.
@item W w
@kindex W w (Summary)
Remove all white space from the beginning of all lines of the article
body (@code{gnus-article-strip-leading-space}).
+@item W E e
+@kindex W E e (Summary)
+@findex gnus-article-strip-trailing-space
+Remove all white space from the end of all lines of the article
+body (@code{gnus-article-strip-trailing-space}).
+
@end table
@xref{Customizing Articles} for how to wash articles automatically.
@cindex MIME decoding
@table @kbd
+@item M-t
+@kindex M-t (Summary)
+@findex gnus-summary-display-buttonized
+Toggle the buttonized display of the article buffer
+(@code{gnus-summary-toggle-display-buttonized}).
+
@item W M w
@kindex W M w (Summary)
Decode RFC2047-encoded words in the article headers
'("text/x-vcard"))
@end lisp
+@item gnus-unbuttonized-mime-types
+@vindex gnus-unbuttonized-mime-types
+This is a list of regexps. @sc{mime} types that match a regexp from
+this list won't have @sc{mime} buttons inserted unless they aren't
+displayed. The default value is @code{(".*/.*")}.
+
+@item gnus-article-mime-part-function
+@vindex gnus-article-mime-part-function
+For each @sc{mime} part, this function will be called with the @sc{mime}
+handle as the parameter. The function is meant to be used to allow
+users to gather information from the article (e. g., add Vcard info to
+the bbdb database) or to do actions based on parts (e. g., automatically
+save all jpegs into some directory).
+
+Here's an example function the does the latter:
+
+@lisp
+(defun my-save-all-jpeg-parts (handle)
+ (when (equal (car (mm-handle-type handle)) "image/jpeg")
+ (with-temp-buffer
+ (insert (mm-get-part handle))
+ (write-region (point-min) (point-max)
+ (read-file-name "Save jpeg to: ")))))
+(setq gnus-article-mime-part-function
+ 'my-save-all-jpeg-parts)
+@end lisp
+
@end table
Edit the group parameters (@pxref{Group Parameters}) of the current
group (@code{gnus-summary-edit-parameters}).
+@item M-C-g
+@kindex M-C-g (Summary)
+@findex gnus-summary-customize-parameters
+Customize the group parameters (@pxref{Group Parameters}) of the current
+group (@code{gnus-summary-customize-parameters}).
+
@end table
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
@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
The @dfn{wash status} of the article. This is a short string with one
character for each possible article wash operation that may have been
performed.
+@item m
+The number of @sc{mime} parts in the article.
@end table
@vindex gnus-break-pages
Most people make most of their mail groups total-expirable, though.
+@vindex gnus-inhibit-user-auto-expire
+If @code{gnus-inhibit-user-auto-expire} is non-@code{nil}, user marking
+commands will not mark an article as expirable, even if the group has
+auto-expire turned on.
+
@node Washing Mail
@subsection Washing Mail
All files that match this regexp will be ignored. Nice to use to exclude
auto-save files and the like, which is what it does by default.
+@item nneething-include-files
+@vindex nneething-include-files
+Regexp saying what files to include in the group. If this variable is
+non-@code{nil}, only files matching this regexp will be included.
+
@item nneething-map-file
@vindex nneething-map-file
Name of the map files.
If the search engine changes its output substantially, @code{nnweb}
won't be able to parse it and will fail. One could hardly fault the Web
-providers if they were to do this---their @emph{raison d'\e,Aj\e(Btre} is to
+providers if they were to do this---their @emph{raison d'être} is to
make money off of advertisements, not to provide services to the
community. Since @code{nnweb} washes the ads off all the articles, one
might think that the providers might be somewhat miffed. We'll see.
@item !
@itemx not
-@itemx \e,A,\e(B
+@itemx ¬
This logical operator only takes a single argument. It returns the
logical negation of the value of its argument.
Ordered list of suffixes on picon file names to try. Defaults to
@code{("xpm" "gif" "xbm")} minus those not builtin your XEmacs.
+@item gnus-picons-setup-hook
+@vindex gnus-picons-setup-hook
+Hook run in the picon buffer, if that is displayed.
+
@item gnus-picons-display-article-move-p
@vindex gnus-picons-display-article-move-p
Whether to move point to first empty line when displaying picons. This
has only an effect if `gnus-picons-display-where' has value `article'.
+If @code{nil}, display the picons in the @code{From} and
+@code{Newsgroups} lines. This is the defailt.
+
@item gnus-picons-clear-cache-on-shutdown
@vindex gnus-picons-clear-cache-on-shutdown
Whether to clear the picons cache when exiting gnus. Gnus caches every
@itemize @bullet
@item
-Emacs 20.2 and up.
+Emacs 20.3 and up.
@item
XEmacs 20.4 and up.
@end itemize
-Gnus will absolutely not work on any Emacsen older than that. Not
-reliably, at least.
+This Gnus version will absolutely not work on any Emacsen older than
+that. Not reliably, at least. Older versions of Gnus may work on older
+Emacs versions.
There are some vague differences between Gnus on the various
platforms---XEmacs features more graphics (a logo and a toolbar)---but
Kevin Davidson---came up with the name @dfn{ding}, so blame him.
@item
-Fran\e,Ag\e(Bois Pinard---many, many interesting and thorough bug reports, as
+François Pinard---many, many interesting and thorough bug reports, as
well as autoconf support.
@end itemize
Christopher Davis,
Andrew Eskilsson,
Kai Grossjohann,
-David K\e,Ae\e(Bgedal,
+David Kågedal,
Richard Pieri,
Fabrice Popineau,
Daniel Quinlan,
Gunnar Horrigmo,
Richard Hoskins,
Brad Howes,
-Fran\e,Ag\e(Bois Felix Ingrand,
+François Felix Ingrand,
Ishikawa Ichiro, @c Ishikawa
Lee Iverson,
Iwamuro Motonori, @c Iwamuro
@end example
@item
- tanken var at n\e,Ae\e(Br du bruker `gnus-startup-file' som prefix (FOO) til ilete
-opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den v\e,Af\e(Bre en
+ 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.
for sci? first the sci.something? then sci.somethingelse?...
@item
-Ja, det burde v\e,Af\e(Bre en m\e,Ae\e(Bte \e,Ae\e(B si slikt. Kanskje en ny variabel?
-`gnus-use-few-score-files'? S\e,Ae\e(B 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.
@item
gnus-article-hide-pgp
-Selv ville jeg nok ha valgt islette 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