X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=texi%2Fgnus.texi;h=c91ced7d46788f557995b7f8728b36f9ffc656e5;hb=c75e2d4e13ec2850b049cf5d27ad941d5192b3ac;hp=1392ae683d85a5cbeb934b8b618651d23d869125;hpb=8352afc0374ae7c187c34ecdc2e1a2fe74006dfd;p=gnus diff --git a/texi/gnus.texi b/texi/gnus.texi index 1392ae683..c91ced7d4 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,12 +1,12 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Gnus 5.6.19 Manual +@settitle Pterodactyl Gnus 0.10 Manual @synindex fn cp @synindex vr cp @synindex pg cp @c @direntry -@c * Gnus: (gnus). The news reader Gnus. +@c * Gnus: (gnus). The newsreader Gnus. @c @end direntry @iftex @finalout @@ -62,6 +62,8 @@ \newcommand{\gnustilde}{\symbol{"7E}} \newcommand{\gnusless}{{$<$}} \newcommand{\gnusgreater}{{$>$}} +\newcommand{\gnusbraceleft}{{$>$}} +\newcommand{\gnusbraceright}{{$>$}} \newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}} \newcommand{\gnusinteresting}{ @@ -316,7 +318,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Gnus 5.6.19 Manual +@title Pterodactyl Gnus 0.10 Manual @author by Lars Magne Ingebrigtsen @page @@ -352,7 +354,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. -This manual corresponds to Gnus 5.6.19. +This manual corresponds to Pterodactyl Gnus 0.10. @end ifinfo @@ -1274,11 +1276,16 @@ Here's an example value for this variable that might look nice if the background is dark: @lisp -(face-spec-set 'my-group-face-1 '((t (:foreground "Red" :bold t)))) -(face-spec-set 'my-group-face-2 '((t (:foreground "SeaGreen" :bold t)))) -(face-spec-set 'my-group-face-3 '((t (:foreground "SpringGreen" :bold t)))) -(face-spec-set 'my-group-face-4 '((t (:foreground "SteelBlue" :bold t)))) -(face-spec-set 'my-group-face-5 '((t (:foreground "SkyBlue" :bold t)))) +(face-spec-set 'my-group-face-1 + '((t (:foreground "Red" :bold t)))) +(face-spec-set 'my-group-face-2 + '((t (:foreground "SeaGreen" :bold t)))) +(face-spec-set 'my-group-face-3 + '((t (:foreground "SpringGreen" :bold t)))) +(face-spec-set 'my-group-face-4 + '((t (:foreground "SteelBlue" :bold t)))) +(face-spec-set 'my-group-face-5 + '((t (:foreground "SkyBlue" :bold t)))) (setq gnus-group-highlight '(((> unread 200) . my-group-face-1) @@ -1894,6 +1901,13 @@ Currently supported types are @code{babyl}, @code{mbox}, @code{digest}, this command without a prefix, Gnus will guess at the file type. @xref{Document Groups}. +@item G u +@kindex G u (Group) +@vindex gnus-useful-groups +@findex gnus-group-make-useful-group +Create one of the groups mentioned in @code{gnus-useful-groups} +(@code{gnus-group-make-useful-group}). + @item G w @kindex G w (Group) @findex gnus-group-make-web-group @@ -2381,8 +2395,10 @@ Find bogus groups and delete them @kindex F (Group) @findex gnus-group-find-new-groups Find new groups and process them (@code{gnus-group-find-new-groups}). -If given a prefix, use the @code{ask-server} method to query the server -for new groups. +With 1 @kbd{C-u}, use the @code{ask-server} method to query the server +for new groups. With 2 @kbd{C-u}'s, use most complete method possible +to query the server for new groups, and subscribe the new groups as +zombies. @item C-c C-x @kindex C-c C-x (Group) @@ -2651,6 +2667,13 @@ convention (@pxref{Process/Prefix}). @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}). @@ -2666,8 +2689,8 @@ Move all groups that match some regular expression to a topic Copy all groups that match some regular expression to a topic (@code{gnus-topic-copy-matching}). -@item T h -@kindex T h (Topic) +@item T H +@kindex T H (Topic) @findex gnus-topic-toggle-display-empty-topics Toggle hiding empty topics (@code{gnus-topic-toggle-display-empty-topics}). @@ -2696,12 +2719,20 @@ 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) +@kindex TAB (Topic) @findex gnus-topic-indent ``Indent'' the current topic so that it becomes a sub-topic of the previous topic (@code{gnus-topic-indent}). If given a prefix, ``un-indent'' the topic instead. +@item M-TAB +@kindex M-TAB (Topic) +@findex gnus-topic-unindent +``Un-indent'' the current topic so that it becomes a sub-topic of the +parent of its current parent (@code{gnus-topic-unindent}). + @item C-k @kindex C-k (Topic) @findex gnus-topic-kill-group @@ -2869,7 +2900,7 @@ The @samp{Emacs} topic has the topic parameter @code{(score-file . "emacs.SCORE")}; the @samp{Relief} topic has the topic parameter @code{(score-file . "relief.SCORE")}; and the @samp{Misc} topic has the topic parameter @code{(score-file . "emacs.SCORE")}. In addition, -@samp{alt.religion.emacs} has the group parameter @code{(score-file +@* @samp{alt.religion.emacs} has the group parameter @code{(score-file . "religion.SCORE")}. Now, when you enter @samp{alt.sex.emacs} in the @samp{Relief} topic, you @@ -3484,8 +3515,10 @@ without confirmation. Also @pxref{Group Levels}. If non-@code{nil}, all the movement commands will try to go to the next article with the same subject as the current. (@dfn{Same} here might mean @dfn{roughly equal}. See @code{gnus-summary-gather-subject-limit} -for details (@pxref{Customizing Threading}).) This variable is not -particularly useful if you use a threaded display. +for details (@pxref{Customizing Threading}).) If there are no more +articles with the same subject, go to the first unread article. + +This variable is not particularly useful if you use a threaded display. @item gnus-summary-check-current @vindex gnus-summary-check-current @@ -3667,6 +3700,12 @@ Scroll the current article back one page (@code{gnus-summary-prev-page}). Scroll the current article one line forward (@code{gnus-summary-scroll-up}). +@item M-RET +@kindex M-RET (Summary) +@findex gnus-summary-scroll-down +Scroll the current article one line backward +(@code{gnus-summary-scroll-down}). + @item A g @itemx g @kindex A g (Summary) @@ -5206,9 +5245,9 @@ Remove articles when exiting the group. The default value is @code{(read exit)}. -@vindex gnus-use-header-prefetch -If @code{gnus-use-header-prefetch} is non-@code{nil}, prefetch articles -from the next group. +@c @vindex gnus-use-header-prefetch +@c If @code{gnus-use-header-prefetch} is non-@code{nil}, prefetch articles +@c from the next group. @node Article Caching @@ -5264,13 +5303,17 @@ to score unwanted articles down and have them marked as read. They will not then be downloaded by this command. @vindex gnus-uncacheable-groups -It is likely that you do not want caching on some groups. For instance, +@vindex gnus-cacheable-groups +It is likely that you do not want caching on all groups. For instance, if your @code{nnml} mail is located under your home directory, it makes no sense to cache it somewhere else under your home directory. Unless you -feel that it's neat to use twice as much space. To limit the caching, -you could set the @code{gnus-uncacheable-groups} regexp to -@samp{^nnml}, for instance. This variable is @code{nil} by -default. +feel that it's neat to use twice as much space. + +To limit the caching, you could set @code{gnus-cacheable-groups} to a +regexp of groups to cache, @samp{^nntp} for instance, or set the +@code{gnus-uncacheable-groups} regexp to @samp{^nnml}, for instance. +Both variables are @code{nil} by default. If a group matches both +variables, the group is not cached. @findex gnus-cache-generate-nov-databases @findex gnus-cache-generate-active @@ -6045,17 +6088,25 @@ these articles easier. @node Article Highlighting @subsection Article Highlighting -@cindex highlight +@cindex highlighting Not only do you want your article buffer to look like fruit salad, but -you want it to look like technicolor fruit salad. +you want it to look like technicolor fruit salad. @table @kbd @item W H a @kindex W H a (Summary) @findex gnus-article-highlight -Highlight the current article (@code{gnus-article-highlight}). +@findex gnus-article-maybe-highlight +Do much highlighting of the current article +(@code{gnus-article-highlight}). This function highlights header, cited +text, the signature, and adds buttons to the body and the head. + +Most users would prefer using @code{gnus-article-maybe-highlight} in +@code{gnus-article-display-hook} (@pxref{Customizing Articles}) instead. +This is a bit less agressive---it highlights only the headers, the +signature and adds buttons. @item W H h @kindex W H h (Summary) @@ -6141,6 +6192,8 @@ default. @end table +@xref{Customizing Articles} for how to highlight articles automatically. + @node Article Fontisizing @subsection Article Fontisizing @@ -6154,9 +6207,9 @@ like @samp{_this_} or @samp{*this*}. Gnus can make this look nicer by running the article through the @kbd{W e} (@code{gnus-article-emphasize}) command. -@vindex gnus-article-emphasis +@vindex gnus-emphasis-alist How the emphasis is computed is controlled by the -@code{gnus-article-emphasis} variable. This is an alist where the first +@code{gnus-emphasis-alist} variable. This is an alist where the first element is a regular expression to be matched. The second is a number that says what regular expression grouping is used to find the entire emphasized word. The third is a number that says what regexp grouping @@ -6193,6 +6246,8 @@ say something like: (copy-face 'red 'gnus-emphasis-italic) @end lisp +@xref{Customizing Articles} for how to fontize articles automatically. + @node Article Hiding @subsection Article Hiding @@ -6206,7 +6261,9 @@ too much cruft in most articles. @item W W a @kindex W W a (Summary) @findex gnus-article-hide -Do maximum hiding on the summary buffer (@kbd{gnus-article-hide}). +Do quite a lot of hiding on the article buffer +(@kbd{gnus-article-hide}). In particular, this function will hide +headers, PGP, cited text and the signature. @item W W h @kindex W W h (Summary) @@ -6248,30 +6305,24 @@ customizing the hiding: @table @code -@item gnus-cite-hide-percentage -@vindex gnus-cite-hide-percentage -If the cited text is of a bigger percentage than this variable (default -50), hide the cited text. - -@item gnus-cite-hide-absolute -@vindex gnus-cite-hide-absolute -The cited text must have at least this length (default 10) before it -is hidden. - -@item gnus-cited-text-button-line-format -@vindex gnus-cited-text-button-line-format +@item gnus-cited-opened-text-button-line-format +@itemx gnus-cited-closed-text-button-line-format +@vindex gnus-cited-closed-text-button-line-format +@vindex gnus-cited-opened-text-button-line-format Gnus adds buttons to show where the cited text has been hidden, and to allow toggle hiding the text. The format of the variable is specified -by this format-like variable (@pxref{Formatting Variables}). These +by these format-like variable (@pxref{Formatting Variables}). These specs are valid: @table @samp @item b -Start point of the hidden text. +Starting point of the hidden text. @item e -End point of the hidden text. +Ending point of the hidden text. @item l -Length of the hidden text. +Number of characters in the hidden region. +@item n +Number of lines of hidden text. @end table @item gnus-cited-lines-visible @@ -6280,6 +6331,25 @@ The number of lines at the beginning of the cited text to leave shown. @end table +@item W W C-c +@kindex W W C-c (Summary) +@findex gnus-article-hide-citation-maybe + +Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the +following two variables: + +@table @code +@item gnus-cite-hide-percentage +@vindex gnus-cite-hide-percentage +If the cited text is of a bigger percentage than this variable (default +50), hide the cited text. + +@item gnus-cite-hide-absolute +@vindex gnus-cite-hide-absolute +The cited text must have at least this length (default 10) before it +is hidden. +@end table + @item W W C @kindex W W C (Summary) @findex gnus-article-hide-citation-in-followups @@ -6297,6 +6367,9 @@ hidden. If you give a positive prefix, they will always hide. Also @pxref{Article Highlighting} for further variables for citation customization. +@xref{Customizing Articles} for how to hide article elements +automatically. + @node Article Washing @subsection Article Washing @@ -6465,6 +6538,8 @@ body (@code{gnus-article-strip-leading-space}). @end table +@xref{Customizing Articles} for how to wash articles automatically. + @node Article Buttons @subsection Article Buttons @@ -6549,6 +6624,8 @@ Face used when the mouse cursor is over a button. @end table +@xref{Customizing Articles} for how to buttonize articles automatically. + @node Article Date @subsection Article Date @@ -6616,6 +6693,9 @@ that the article was posted in 1854. Although something like that is @end table +@xref{Customizing Articles} for how to display the date in your +preferred format automatically. + @node Article Signature @subsection Article Signature @@ -6860,10 +6940,13 @@ Here are the available keystrokes when using pick mode: @table @kbd @item . @kindex . (Pick) -@findex gnus-summary-mark-as-processable -Pick the article on the current line -(@code{gnus-summary-mark-as-processable}). If given a numerical prefix, -go to that article and pick it. (The line number is normally displayed +@findex gnus-pick-article-or-thread +Pick the article or thread on the current line +(@code{gnus-pick-article-or-thread}). If the variable +@code{gnus-thread-hide-subtree} is true, then this key selects the +entire thread when used at the first article of the thread. Otherwise, +it selects just the article. If given a numerical prefix, go to that +thread or article and pick it. (The line number is normally displayed at the beginning of the summary pick lines.) @item SPACE @@ -6874,53 +6957,13 @@ at the end of the buffer, start reading the picked articles. @item u @kindex u (Pick) -@findex gnus-summary-unmark-as-processable -Unpick the article (@code{gnus-summary-unmark-as-processable}). - -@item U -@kindex U (Pick) -@findex gnus-summary-unmark-all-processable -Unpick all articles (@code{gnus-summary-unmark-all-processable}). - -@item t -@kindex t (Pick) -@findex gnus-uu-mark-thread -Pick the thread (@code{gnus-uu-mark-thread}). - -@item T -@kindex T (Pick) -@findex gnus-uu-unmark-thread -Unpick the thread (@code{gnus-uu-unmark-thread}). - -@item r -@kindex r (Pick) -@findex gnus-uu-mark-region -Pick the region (@code{gnus-uu-mark-region}). - -@item R -@kindex R (Pick) -@findex gnus-uu-unmark-region -Unpick the region (@code{gnus-uu-unmark-region}). - -@item e -@kindex e (Pick) -@findex gnus-uu-mark-by-regexp -Pick articles that match a regexp (@code{gnus-uu-mark-by-regexp}). - -@item E -@kindex E (Pick) -@findex gnus-uu-unmark-by-regexp -Unpick articles that match a regexp (@code{gnus-uu-unmark-by-regexp}). - -@item b -@kindex b (Pick) -@findex gnus-uu-mark-buffer -Pick the buffer (@code{gnus-uu-mark-buffer}). - -@item B -@kindex B (Pick) -@findex gnus-uu-unmark-buffer -Unpick the buffer (@code{gnus-uu-unmark-buffer}). +@findex gnus-pick-unmark-article-or-thread. +Unpick the thread or article +(@code{gnus-pick-unmark-article-or-thread}). If the variable +@code{gnus-thread-hide-subtree} is true, then this key unpicks the +thread if used at the first article of the thread. Otherwise it unpicks +just the article. You can give this key a numerical prefix to unpick +the thread or article at that line. @item RET @kindex RET (Pick) @@ -6933,6 +6976,11 @@ will still be visible when you are reading. @end table +All the normal summary mode commands are still available in the +pick-mode, with the exception of @kbd{u}. However @kbd{!} is available +which is mapped to the same function +@code{gnus-summary-tick-article-forward}. + If this sounds like a good idea to you, you could say: @lisp @@ -7184,7 +7232,7 @@ name, a @code{From} header and a @code{Subject} header. @item B r @kindex B r (Summary) @findex gnus-summary-respool-article -Respool the mail article (@code{gnus-summary-move-article}). +Respool the mail article (@code{gnus-summary-respool-article}). @code{gnus-summary-respool-default-method} will be used as the default select method when respooling. This variable is @code{nil} by default, which means that the current group select method will be used instead. @@ -7207,6 +7255,12 @@ If you want to re-spool an article, you might be curious as to what group the article will end up in before you do the re-spooling. This command will tell you (@code{gnus-summary-respool-query}). +@item B t +@kindex B t (Summary) +@findex gnus-summary-respool-trace +Similarly, this command will display all fancy splitting patterns used +when repooling, if any (@code{gnus-summary-respool-trace}). + @item B p @kindex B p (Summary) @findex gnus-summary-article-posted-p @@ -7781,15 +7835,15 @@ These conditions are: @table @code @item empty Remove all empty headers. -@item newsgroups -Remove the @code{Newsgroups} header if it only contains the current group -name. @item followup-to Remove the @code{Followup-To} header if it is identical to the @code{Newsgroups} header. @item reply-to Remove the @code{Reply-To} header if it lists the same address as the @code{From} header. +@item newsgroups +Remove the @code{Newsgroups} header if it only contains the current group +name. @item date Remove the @code{Date} header if the article is less than three days old. @@ -7799,11 +7853,11 @@ Remove the @code{To} header if it is very long. Remove all @code{To} headers if there are more than one. @end table -To include the four first elements, you could say something like; +To include the four three elements, you could say something like; @lisp (setq gnus-boring-article-headers - '(empty newsgroups followup-to reply-to)) + '(empty followup-to reply-to)) @end lisp This is also the default value for this variable. @@ -7871,9 +7925,12 @@ been inserted into the article buffer. It is meant to handle all treatment of the article before it is displayed. @findex gnus-article-maybe-highlight -By default this hook just contains @code{gnus-article-hide-headers}, -@code{gnus-article-treat-overstrike}, and -@code{gnus-article-maybe-highlight}, but there are thousands, nay +@findex gnus-article-maybe-hide-headers +By default this hook just contains +@code{gnus-article-maybe-hide-headers}, +@code{gnus-hide-boring-headers}, @code{gnus-article-treat-overstrike}, +and @code{gnus-article-maybe-highlight} (and under XEmacs, +@code{gnus-article-display-x-face}), but there are thousands, nay millions, of functions you can put in this hook. For an overview of functions @pxref{Article Highlighting}, @pxref{Article Hiding}, @pxref{Article Washing}, @pxref{Article Buttons} and @pxref{Article @@ -7914,7 +7971,7 @@ Scroll backwards one page (@code{gnus-article-prev-page}). @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 @@ -8035,6 +8092,7 @@ to make Gnus try to post using the foreign server. * 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. +* Posting Styles:: An easier way to specify who you are. * Drafts:: Postponing messages and rejected messages. * Rejected Articles:: What happens if the server doesn't like your article? @end menu @@ -8290,83 +8348,96 @@ but the latter is the preferred method. @end table -@c @node Posting Styles -@c @section Posting Styles -@c @cindex posting styles -@c @cindex styles -@c -@c All them variables, they make my head swim. -@c -@c So what if you want a different @code{Organization} and signature based -@c on what groups you post to? And you post both from your home machine -@c and your work machine, and you want different @code{From} lines, and so -@c on? -@c -@c @vindex gnus-posting-styles -@c One way to do stuff like that is to write clever hooks that change the -@c variables you need to have changed. That's a bit boring, so somebody -@c came up with the bright idea of letting the user specify these things in -@c a handy alist. Here's an example of a @code{gnus-posting-styles} -@c variable: -@c -@c @lisp -@c ((".*" -@c (signature . "Peace and happiness") -@c (organization . "What me?")) -@c ("^comp" -@c (signature . "Death to everybody")) -@c ("comp.emacs.i-love-it" -@c (organization . "Emacs is it"))) -@c @end lisp -@c -@c As you might surmise from this example, this alist consists of several -@c @dfn{styles}. Each style will be applicable if the first element -@c ``matches'', in some form or other. The entire alist will be iterated -@c over, from the beginning towards the end, and each match will be -@c applied, which means that attributes in later styles that match override -@c the same attributes in earlier matching styles. So -@c @samp{comp.programming.literate} will have the @samp{Death to everybody} -@c signature and the @samp{What me?} @code{Organization} header. -@c -@c The first element in each style is called the @code{match}. If it's a -@c string, then Gnus will try to regexp match it against the group name. -@c If it's a function symbol, that function will be called with no -@c arguments. If it's a variable symbol, then the variable will be -@c referenced. If it's a list, then that list will be @code{eval}ed. In -@c any case, if this returns a non-@code{nil} value, then the style is said -@c to @dfn{match}. -@c -@c Each style may contain a arbitrary amount of @dfn{attributes}. Each -@c attribute consists of a @var{(name . value)} pair. The attribute name -@c can be one of @code{signature}, @code{organization} or @code{from}. The -@c attribute name can also be a string. In that case, this will be used as -@c a header name, and the value will be inserted in the headers of the -@c article. -@c -@c The attribute value can be a string (used verbatim), a function (the -@c return value will be used), a variable (its value will be used) or a -@c list (it will be @code{eval}ed and the return value will be used). -@c -@c So here's a new example: -@c -@c @lisp -@c (setq gnus-posting-styles -@c '((".*" -@c (signature . "~/.signature") -@c (from . "user@@foo (user)") -@c ("X-Home-Page" . (getenv "WWW_HOME")) -@c (organization . "People's Front Against MWM")) -@c ("^rec.humor" -@c (signature . my-funny-signature-randomizer)) -@c ((equal (system-name) "gnarly") -@c (signature . my-quote-randomizer)) -@c (posting-from-work-p -@c (signature . "~/.work-signature") -@c (from . "user@@bar.foo (user)") -@c (organization . "Important Work, Inc")) -@c ("^nn.+:" -@c (signature . "~/.mail-signature")))) -@c @end lisp +@node Posting Styles +@section Posting Styles +@cindex posting styles +@cindex styles + +All them variables, they make my head swim. + +So what if you want a different @code{Organization} and signature based +on what groups you post to? And you post both from your home machine +and your work machine, and you want different @code{From} lines, and so +on? + +@vindex gnus-posting-styles +One way to do stuff like that is to write clever hooks that change the +variables you need to have changed. That's a bit boring, so somebody +came up with the bright idea of letting the user specify these things in +a handy alist. Here's an example of a @code{gnus-posting-styles} +variable: + +@lisp +((".*" + (signature "Peace and happiness") + (organization "What me?")) + ("^comp" + (signature "Death to everybody")) + ("comp.emacs.i-love-it" + (organization "Emacs is it"))) +@end lisp + +As you might surmise from this example, this alist consists of several +@dfn{styles}. Each style will be applicable if the first element +``matches'', in some form or other. The entire alist will be iterated +over, from the beginning towards the end, and each match will be +applied, which means that attributes in later styles that match override +the same attributes in earlier matching styles. So +@samp{comp.programming.literate} will have the @samp{Death to everybody} +signature and the @samp{What me?} @code{Organization} header. + +The first element in each style is called the @code{match}. If it's a +string, then Gnus will try to regexp match it against the group name. +If it's a function symbol, that function will be called with no +arguments. If it's a variable symbol, then the variable will be +referenced. If it's a list, then that list will be @code{eval}ed. In +any case, if this returns a non-@code{nil} value, then the style is said +to @dfn{match}. + +Each style may contain a arbitrary amount of @dfn{attributes}. Each +attribute consists of a @var{(name . value)} pair. The attribute name +can be one of @code{signature}, @code{signature-file}, +@code{organization}, @code{address}, @code{name} or @code{body}. The +attribute name can also be a string. In that case, this will be used as +a header name, and the value will be inserted in the headers of the +article. + +The attribute value can be a string (used verbatim), a function (the +return value will be used), a variable (its value will be used) or a +list (it will be @code{eval}ed and the return value will be used). + +If you wish to check whether the message you are about to compose is +meant to be a news article or a mail message, you can check the values +of the two dynamically bound variables @code{message-this-is-news} and +@code{message-this-is-mail}. + +@vindex message-this-is-mail +@vindex message-this-is-news + +So here's a new example: + +@lisp +(setq gnus-posting-styles + '((".*" + (signature-file "~/.signature") + (name "User Name") + ("X-Home-Page" (getenv "WWW_HOME")) + (organization "People's Front Against MWM")) + ("^rec.humor" + (signature my-funny-signature-randomizer)) + ((equal (system-name) "gnarly") + (signature my-quote-randomizer)) + (message-this-is-new + (signature my-news-signature)) + (posting-from-work-p + (signature-file "~/.work-signature") + (address "user@@bar.foo") + (body "You are fired.\n\nSincerely, your boss.") + (organization "Important Work, Inc")) + ("^nn.+:" + (signature-file "~/.mail-signature")))) +@end lisp + @node Drafts @section Drafts @@ -8939,10 +9010,11 @@ The file contains one or more line, each of which define one server. @item Each line may contain an arbitrary number of token/value pairs. The -valid tokens include @samp{machine}, @samp{login}, @samp{password}, and -@samp{force}. (The latter is not a valid @file{.netrc}/@code{ftp} -token, which is the only way the @file{.authinfo} file format deviates -from the @file{.netrc} file format.) +valid tokens include @samp{machine}, @samp{login}, @samp{password}, +@samp{default} and @samp{force}. (The latter is not a valid +@file{.netrc}/@code{ftp} token, which is the only way the +@file{.authinfo} file format deviates from the @file{.netrc} file +format.) @end enumerate @@ -8964,6 +9036,16 @@ user will be prompted for the password. The latter also has the @samp{force} tag) is to not send authinfo to the @var{nntp} server until the @var{nntp} server asks for it. +You can also add @samp{default} lines that will apply to all servers +that don't have matching @samp{machine} lines. + +@example +default force yes +@end example + +This will force sending @samp{AUTHINFO} commands to all servers not +previously mentioned. + Remember to not leave the @file{~/.authinfo} file world-readable. @item nntp-server-action-alist @@ -8998,17 +9080,17 @@ waiting for reply, and then reads all the replies. This is controlled by the @code{nntp-maximum-request} variable, and is 400 by default. If your network is buggy, you should set this to 1. -@c @item nntp-connection-timeout -@c @vindex nntp-connection-timeout -@c If you have lots of foreign @code{nntp} groups that you connect to -@c regularly, you're sure to have problems with @sc{nntp} servers not -@c responding properly, or being too loaded to reply within reasonable -@c time. This is can lead to awkward problems, which can be helped -@c somewhat by setting @code{nntp-connection-timeout}. This is an integer -@c that says how many seconds the @code{nntp} backend should wait for a -@c connection before giving up. If it is @code{nil}, which is the default, -@c no timeouts are done. -@c +@item nntp-connection-timeout +@vindex nntp-connection-timeout +If you have lots of foreign @code{nntp} groups that you connect to +regularly, you're sure to have problems with @sc{nntp} servers not +responding properly, or being too loaded to reply within reasonable +time. This is can lead to awkward problems, which can be helped +somewhat by setting @code{nntp-connection-timeout}. This is an integer +that says how many seconds the @code{nntp} backend should wait for a +connection before giving up. If it is @code{nil}, which is the default, +no timeouts are done. + @c @item nntp-command-timeout @c @vindex nntp-command-timeout @c @cindex PPP connections @@ -9367,10 +9449,6 @@ insert sub-expressions from the matched text. For instance: ("list.\\1" "From:.*\\(.*\\)-list@@majordomo.com") @end lisp -If the first element is the special symbol @code{junk}, then messages -that match the regexp will disappear into the aether. Use with -extreme caution. - The second element can also be a function. In that case, it will be called narrowed to the headers with the first element of the rule as the argument. It should return a non-@code{nil} value if it thinks that the @@ -9621,7 +9699,9 @@ the five possible split syntaxes: @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 @@ -9640,7 +9720,7 @@ be stored in one or more groups. @item @code{junk}: If the split is the symbol @code{junk}, then don't save -this message. +this message. Use with extreme caution. @item @var{(: function arg1 arg2 ...)}: If the split is a list, and the first @@ -9648,6 +9728,9 @@ element is @code{:}, then the second element will be called as a function with @var{args} given as arguments. The function should return a SPLIT. +@item +@code{nil}: If the split is @code{nil}, it is ignored. + @end enumerate In these splits, @var{FIELD} must match a complete field name. @@ -9672,9 +9755,15 @@ information in the headers (i.e., do @code{replace-match}-like substitutions in the group names), you can say things like: @example -(any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1") +(any "debian-\\b\\(\\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 @@ -10314,8 +10403,31 @@ The name of the group descriptions file. @xref{Newsgroups File Format}. @item nnfolder-get-new-mail @vindex nnfolder-get-new-mail If non-@code{nil}, @code{nnfolder} will read incoming mail. + +@item nnfolder-save-buffer-hook +@vindex nnfolder-save-buffer-hook +@cindex backup files +Hook run before saving the folders. Note that Emacs does the normal +backup renaming of files even with the @code{nnfolder} buffers. If you +wish to switch this off, you could say something like the following in +your @file{.emacs} file: + +@lisp +(defun turn-off-backup () + (set (make-local-variable 'backup-inhibited) t)) + +(add-hook 'nnfolder-save-buffer-hook 'turn-off-backup) +@end lisp + +@item nnfolder-delete-mail-hook +@vindex nnfolder-delete-mail-hook +Hook run in a buffer narrowed to the message that is to be deleted. +This function can be used to copy the message to somewhere else, or to +extract some information from it before removing it. + @end table + @findex nnfolder-generate-active-file @kindex M-x nnfolder-generate-active-file If you have lots of @code{nnfolder}-like files you'd like to read with @@ -10464,6 +10576,9 @@ The rnews batch transport format. @item forward Forwarded articles. +@item mime-parts +MIME multipart messages, besides digests. + @item mime-digest @cindex digest @cindex MIME digest @@ -10506,8 +10621,9 @@ Virtual server variables: @vindex nndoc-article-type This should be one of @code{mbox}, @code{babyl}, @code{digest}, @code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934}, -@code{rfc822-forward}, @code{mime-digest}, @code{standard-digest}, -@code{slack-digest}, @code{clari-briefs} or @code{guess}. +@code{rfc822-forward}, @code{mime-parts}, @code{mime-digest}, +@code{standard-digest}, @code{slack-digest}, @code{clari-briefs} or +@code{guess}. @item nndoc-post-type @vindex nndoc-post-type @@ -11077,7 +11193,7 @@ Here's an example: @lisp (setq gnus-post-method - '(nngateway "mail2news@replay.com" + '(nngateway "mail2news@@replay.com" (nngateway-header-transformation nngateway-mail2news-header-transformation))) @end lisp @@ -11110,6 +11226,7 @@ groups. @subsection Virtual Groups @cindex nnvirtual @cindex virtual groups +@cindex merging groups An @dfn{nnvirtual group} is really nothing more than a collection of other groups. @@ -11143,7 +11260,7 @@ If you would like to read @samp{soc.motss} both from a server in Japan and a server in Norway, you could use the following as the group regexp: @example -"^nntp\\+some\\.server\\.jp:soc\\.motss$\\|^nntp\\+some\\.server\\.no:soc\\.motss$" +"^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$" @end example (Remember, though, that if you're creating the group with @kbd{G m}, you @@ -11172,6 +11289,18 @@ common. If that's the case, you should set this variable to @code{t}. Or you can just tap @code{M-g} on the virtual group every time before you enter it---it'll have much the same effect. +@code{nnvirtual} can have both mail and news groups as component groups. +When responding to articles in @code{nnvirtual} groups, @code{nnvirtual} +has to ask the backend of the component group the article comes from +whether it is a news or mail backend. However, when you do a @kbd{^}, +there is typically no sure way for the component backend to know this, +and in that case @code{nnvirtual} tells Gnus that the article came from a +not-news backend. (Just to be on the safe side.) + +@kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups} +line from the article you respond to in these cases. + + @node Kibozed Groups @subsection Kibozed Groups @@ -11529,7 +11658,7 @@ Hook run in category buffers. @item gnus-category-line-format @vindex gnus-category-line-format Format of the lines in the category buffer (@pxref{Formatting -Variables}). Legal elements are: +Variables}). Valid elements are: @table @samp @item c @@ -11639,7 +11768,7 @@ Mark the article for downloading (@code{gnus-agent-mark-article}). Remove the downloading mark from the article (@code{gnus-agent-unmark-article}). -@item @@ +@item @@ @kindex @@ (Agent Summary) @findex gnus-agent-toggle-mark Toggle whether to download the article (@code{gnus-agent-toggle-mark}). @@ -11963,8 +12092,8 @@ Score on the subject line. @item x Score on the Xref line---i.e., the cross-posting line. -@item t -Score on thread---the References line. +@item r +Score on the References line. @item d Score on the date. @@ -11983,6 +12112,10 @@ Score on the body. @item h Score on the head. + +@item t +Score on thead. + @end table @item @@ -12775,12 +12908,22 @@ So, if you want to use just a single score file, you could say: If you want to use @file{gnu.SCORE} for all @samp{gnu} groups and @file{rec.SCORE} for all @samp{rec} groups (and so on), you can say: +@findex gnus-hierarchial-home-score-file @lisp (setq gnus-home-score-file 'gnus-hierarchial-home-score-file) @end lisp This is a ready-made function provided for your convenience. +Other functions include + +@table @code +@item gnus-current-home-score-file +@findex gnus-current-home-score-file +Return the ``current'' regular score file. This will make scoring +commands add entry to the ``innermost'' matching score file. + +@end table If you want to have one score file for the @samp{emacs} groups and another for the @samp{comp} groups, while letting all other groups use @@ -13106,7 +13249,7 @@ by hand. 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 @@ -13488,18 +13631,20 @@ use them in any sensible way. @vindex gnus-decay-scores @findex gnus-decay-score -@vindex gnus-score-decay-function +@vindex gnus-decay-score-function Gnus provides a mechanism for decaying scores to help with this problem. When score files are loaded and @code{gnus-decay-scores} is non-@code{nil}, Gnus will run the score files through the decaying mechanism thereby lowering the scores of all non-permanent score rules. -The decay itself if performed by the @code{gnus-score-decay-function} +The decay itself if performed by the @code{gnus-decay-score-function} function, which is @code{gnus-decay-score} by default. Here's the definition of that function: @lisp (defun gnus-decay-score (score) - "Decay SCORE according to `gnus-score-decay-constant' and `gnus-score-decay-scale'." + "Decay SCORE. +This is done according to `gnus-score-decay-constant' +and `gnus-score-decay-scale'." (floor (- score (* (if (< score 0) 1 -1) @@ -13850,9 +13995,9 @@ the special @code{mouse-face} property set, which means that it will be 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}. @@ -14718,12 +14863,12 @@ in either monochrome @code{XBM} format or color @code{XPM} and @vindex gnus-picons-piconsearch-url If you have a permanent connection to the Internet you can use Steve Kinzler's Picons Search engine by setting -@code{gnus-picons-piconsearch-url} to the string +@code{gnus-picons-piconsearch-url} to the string @* @file{http://www.cs.indiana.edu/picons/search.html}. @vindex gnus-picons-database Otherwise you need a local copy of his database. For instructions on -obtaining and installing the picons databases, point your Web browser at +obtaining and installing the picons databases, point your Web browser at @* @file{http://www.cs.indiana.edu/picons/ftp/index.html}. Gnus expects picons to be installed into a location pointed to by @code{gnus-picons-database}. @@ -14755,8 +14900,10 @@ To enable displaying picons, simply put the following line in your @lisp (setq gnus-use-picons t) -(add-hook 'gnus-article-display-hook 'gnus-article-display-picons t) -(add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face) +(add-hook 'gnus-article-display-hook + 'gnus-article-display-picons t) +(add-hook 'gnus-article-display-hook + 'gnus-picons-article-display-x-face) @end lisp and make sure @code{gnus-picons-database} points to the directory @@ -14765,7 +14912,8 @@ containing the Picons databases. Alternatively if you want to use the web piconsearch engine add this: @lisp -(setq gnus-picons-piconsearch-url "http://www.cs.indiana.edu:800/piconsearch") +(setq gnus-picons-piconsearch-url + "http://www.cs.indiana.edu:800/piconsearch") @end lisp @@ -15061,7 +15209,7 @@ foreground and background color of the splash page glyph. @item gnus-xmas-logo-color-style @vindex gnus-xmas-logo-color-style This is the key used to look up the color in the alist described above. -Legal values include @code{flame}, @code{pine}, @code{moss}, +Valid values include @code{flame}, @code{pine}, @code{moss}, @code{irish}, @code{sky}, @code{tin}, @code{velvet}, @code{grape}, @code{labia}, @code{berry}, @code{neutral}, and @code{september}. @@ -15181,7 +15329,7 @@ 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, available FOR FREE -at @file{}. +at @* @file{}. Since most e-mail spam is sent automatically, this may reconcile the cosmic balance somewhat. @@ -15341,7 +15489,7 @@ but at the common table.@* 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. @@ -15365,7 +15513,10 @@ In May 1996 the next Gnus generation (aka. ``September Gnus'' (after 99 releases)) was released under the name ``Gnus 5.2'' (40 releases). On July 28th 1996 work on Red Gnus was begun, and it was released on -January 25th 1997 (after 84 releases) as ``Gnus 5.4''. +January 25th 1997 (after 84 releases) as ``Gnus 5.4'' (67 releases). + +On September 13th 1997, Quassia Gnus was started and lasted 37 +releases. If was released as ``Gnus 5.6 on March 8th 1998. If you happen upon a version of Gnus that has a prefixed name -- ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' -- @@ -15686,6 +15837,7 @@ Joao Cachopo, Zlatko Calusic, Massimo Campostrini, Castor, +David Charlap, Dan Christensen, Kevin Christian, Michael R. Cook, @@ -15732,13 +15884,16 @@ Rajappa Iyer, Andreas Jaeger, Randell Jesup, Fred Johansen, +Gareth Jones, Simon Josefsson, Greg Klanderman, Karl Kleinpaste, Peter Skov Knudsen, Shuhei Kobayashi, @c Kobayashi +Koseki Yoshinori, @c Koseki Thor Kristoffersen, Jens Lautenbacher, +Martin Larose, Seokchan Lee, @c Lee Carsten Leonhardt, James LewisMoss, @@ -15770,7 +15925,9 @@ William Perry, Stephen Peters, Jens-Ulrik Holger Petersen, Ulrich Pfeifer, +Matt Pharr, John McClary Prevost, +Bill Pringlemeir, Mike Pullen, Jim Radford, Colin Rafferty, @@ -15809,6 +15966,7 @@ Teddy, Chuck Thompson, Philippe Troin, James Troup, +Trung Tran-Duc, Aaron M. Ucko, Aki Vehtari, Didier Verna, @@ -15841,7 +15999,7 @@ actually are people who are using Gnus. Who'd'a thunk it! * 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.19. +* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16367,7 +16525,8 @@ mail before saving the mail (@pxref{Washing Mail}). Emphasized text can be properly fontisized: @lisp -(add-hook 'gnus-article-display-hook 'gnus-article-emphasize) +(add-hook 'gnus-article-display-hook + 'gnus-article-emphasize) @end lisp @end itemize @@ -16376,7 +16535,7 @@ Emphasized text can be properly fontisized: @node Quassia Gnus @subsubsection Quassia Gnus -New features in Gnus 5.6.19: +New features in Gnus 5.6: @itemize @bullet @@ -16601,8 +16760,6 @@ stuff just skips past them. Read articles are the same. articles aren't displayed. @item nndoc should always allocate unique Message-IDs. -@item - implement gnus-score-thread @item If there are mail groups the first time you use Gnus, Gnus'll make the mail groups killed. @@ -17123,7 +17280,7 @@ you could also try to read the archive for that group. Part of the problem is that archives are spread all over the net, unlike FAQs. What would be best I suppose is to find the one closest to your site. -In any case, there is a list of general news group archives at +In any case, there is a list of general news group archives at @* ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html @@ -17529,9 +17686,6 @@ Mac, MS (etc) characters into ISO 8859-1. new Date score match types -- < > = (etc) that take floating point numbers and match on the age of the article. -@item - gnus-cacheable-groups - @item @example > > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25 @@ -17680,6 +17834,36 @@ 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 +gnus-posting-styles doesn't work in drafts. + +@item +gnus-summary-limit-include-cached is slow when there are +many articles in the cache, since it regenerates big parts of the +summary buffer for each article. + +@item +Implement gnus-batch-brew-soup. + +@item +Group parameters and summary commands for un/subscribing to mailing +lists. + +@item +Introduce nnmail-home-directory. + +@item +gnus-fetch-group and friends should exit Gnus when the user +exits the group. + @item Solve the halting problem. @@ -18006,7 +18190,8 @@ useful data is in the summary buffer, anyway. Set this variable to Set this hook to all the available hiding commands: @lisp (setq gnus-article-display-hook - '(gnus-article-hide-headers gnus-article-hide-signature + '(gnus-article-hide-headers + gnus-article-hide-signature gnus-article-hide-citation)) @end lisp @@ -18209,6 +18394,19 @@ Takes an unprefixed group name and a select method, and returns the full @findex gnus-get-info Returns the group info list for @var{group}. +@item gnus-group-unread +@findex gnus-group-unread +The number of unread articles in @var{group}, or @code{t} if that is +unknown. + +@item gnus-active +@findex gnus-active +The active entry for @var{group}. + +@item gnus-set-active +@findex gnus-set-active +Set the active entry for @var{group}. + @item gnus-add-current-to-buffer-list @findex gnus-add-current-to-buffer-list Adds the current buffer to the list of buffers to be killed on Gnus