comparison man/gnus.texi @ 118:7d55a9ba150c r20-1b11

Import from CVS: tag r20-1b11
author cvs
date Mon, 13 Aug 2007 09:24:17 +0200
parents 9f59509498e1
children cca96a509cfe
comparison
equal deleted inserted replaced
117:578fd4947a72 118:7d55a9ba150c
1 \input texinfo @c -*-texinfo-*- 1 \input texinfo @c -*-texinfo-*-
2 2
3 @setfilename gnus 3 @setfilename gnus
4 @settitle Gnus 5.4.37 Manual 4 @settitle Gnus 5.4.40 Manual
5 @synindex fn cp 5 @synindex fn cp
6 @synindex vr cp 6 @synindex vr cp
7 @synindex pg cp 7 @synindex pg cp
8 @iftex 8 @iftex
9 @finalout 9 @finalout
285 @end ifinfo 285 @end ifinfo
286 286
287 @tex 287 @tex
288 288
289 @titlepage 289 @titlepage
290 @title Gnus 5.4.37 Manual 290 @title Gnus 5.4.40 Manual
291 291
292 @author by Lars Magne Ingebrigtsen 292 @author by Lars Magne Ingebrigtsen
293 @page 293 @page
294 294
295 @vskip 0pt plus 1filll 295 @vskip 0pt plus 1filll
321 You can read news (and mail) from within Emacs by using Gnus. The news 321 You can read news (and mail) from within Emacs by using Gnus. The news
322 can be gotten by any nefarious means you can think of---@sc{nntp}, local 322 can be gotten by any nefarious means you can think of---@sc{nntp}, local
323 spool or your mbox file. All at the same time, if you want to push your 323 spool or your mbox file. All at the same time, if you want to push your
324 luck. 324 luck.
325 325
326 This manual corresponds to Gnus 5.4.37. 326 This manual corresponds to Gnus 5.4.40.
327 327
328 @end ifinfo 328 @end ifinfo
329 329
330 @iftex 330 @iftex
331 331
639 639
640 @vindex gnus-subscribe-newsgroup-method 640 @vindex gnus-subscribe-newsgroup-method
641 What Gnus does when it encounters a new group is determined by the 641 What Gnus does when it encounters a new group is determined by the
642 @code{gnus-subscribe-newsgroup-method} variable. 642 @code{gnus-subscribe-newsgroup-method} variable.
643 643
644 This variable should contain a function. Some handy pre-fab values 644 This variable should contain a function. This function will be called
645 are: 645 with the name of the new group as the only parameter.
646
647 Some handy pre-fab functions are:
646 648
647 @table @code 649 @table @code
648 650
649 @item gnus-subscribe-zombies 651 @item gnus-subscribe-zombies
650 @vindex gnus-subscribe-zombies 652 @vindex gnus-subscribe-zombies
2011 Also @pxref{Topic Parameters}. 2013 Also @pxref{Topic Parameters}.
2012 2014
2013 Here's an example group parameter list: 2015 Here's an example group parameter list:
2014 2016
2015 @example 2017 @example
2016 ((to-address . "ding@@ifi.uio.no") 2018 ((to-address . "ding@@gnus.org")
2017 (auto-expiry . t)) 2019 (auto-expiry . t))
2018 @end example 2020 @end example
2019 2021
2020 2022
2021 @node Listing Groups 2023 @node Listing Groups
4725 4727
4726 @lisp 4728 @lisp
4727 (setq gnus-thread-sort-functions 4729 (setq gnus-thread-sort-functions
4728 '(gnus-thread-sort-by-number 4730 '(gnus-thread-sort-by-number
4729 gnus-thread-sort-by-subject 4731 gnus-thread-sort-by-subject
4730 gnus-thread-sort-by-score)) 4732 gnus-thread-sort-by-total-score))
4731 @end lisp 4733 @end lisp
4732 4734
4733 The threads that have highest score will be displayed first in the 4735 The threads that have highest score will be displayed first in the
4734 summary buffer. When threads have the same score, they will be sorted 4736 summary buffer. When threads have the same score, they will be sorted
4735 alphabetically. The threads that have the same score and the same 4737 alphabetically. The threads that have the same score and the same
7515 @table @code 7517 @table @code
7516 @item gnus-uu-digest-headers 7518 @item gnus-uu-digest-headers
7517 @vindex gnus-uu-digest-headers 7519 @vindex gnus-uu-digest-headers
7518 List of regexps to match headers included in digested messages. The 7520 List of regexps to match headers included in digested messages. The
7519 headers will be included in the sequence they are matched. 7521 headers will be included in the sequence they are matched.
7522
7523 @item gnus-add-to-list
7524 @vindex gnus-add-to-list
7525 If non-@code{nil}, add a @code{to-list} group parameter to mail groups
7526 that have none when you do a @kbd{a}.
7520 7527
7521 @end table 7528 @end table
7522 7529
7523 7530
7524 @node Post 7531 @node Post
11575 @code{gnus-global-score-files} variable. One entry for each score file, 11582 @code{gnus-global-score-files} variable. One entry for each score file,
11576 or each score file directory. Gnus will decide by itself what score 11583 or each score file directory. Gnus will decide by itself what score
11577 files are applicable to which group. 11584 files are applicable to which group.
11578 11585
11579 Say you want to use the score file 11586 Say you want to use the score file
11580 @file{/ftp@@ftp.ifi.uio.no:/pub/larsi/ding/score/soc.motss.SCORE} and 11587 @file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
11581 all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory: 11588 all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
11582 11589
11583 @lisp 11590 @lisp
11584 (setq gnus-global-score-files 11591 (setq gnus-global-score-files
11585 '("/ftp@@ftp.ifi.uio.no:/pub/larsi/ding/score/soc.motss.SCORE" 11592 '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE"
11586 "/ftp@@ftp.some-where:/pub/score/")) 11593 "/ftp@@ftp.some-where:/pub/score/"))
11587 @end lisp 11594 @end lisp
11588 11595
11589 @findex gnus-score-search-global-directories 11596 @findex gnus-score-search-global-directories
11590 Simple, eh? Directory names must end with a @samp{/}. These 11597 Simple, eh? Directory names must end with a @samp{/}. These
13300 @section Moderation 13307 @section Moderation
13301 @cindex moderation 13308 @cindex moderation
13302 13309
13303 If you are a moderator, you can use the @file{gnus-mdrtn.el} package. 13310 If you are a moderator, you can use the @file{gnus-mdrtn.el} package.
13304 It is not included in the standard Gnus package. Write a mail to 13311 It is not included in the standard Gnus package. Write a mail to
13305 @samp{larsi@@ifi.uio.no} and state what group you moderate, and you'll 13312 @samp{larsi@@gnus.org} and state what group you moderate, and you'll
13306 get a copy. 13313 get a copy.
13307 13314
13308 The moderation package is implemented as a minor mode for summary 13315 The moderation package is implemented as a minor mode for summary
13309 buffers. Put 13316 buffers. Put
13310 13317
13430 13437
13431 The biggest problem I have with email spam is that it comes in under 13438 The biggest problem I have with email spam is that it comes in under
13432 false pretenses. I press @kbd{g} and Gnus merrily informs me that I 13439 false pretenses. I press @kbd{g} and Gnus merrily informs me that I
13433 have 10 new emails. I say ``Golly gee! Happy is me!'' and selects the 13440 have 10 new emails. I say ``Golly gee! Happy is me!'' and selects the
13434 mail group, only to find two pyramid schemes, seven advertisements 13441 mail group, only to find two pyramid schemes, seven advertisements
13435 ``New! Miracle tonic for growing full, lustrouos hair on your toes!'' 13442 (``New! Miracle tonic for growing full, lustrouos hair on your toes!'')
13436 and one mail asking me to repent and find some god. 13443 and one mail asking me to repent and find some god.
13437 13444
13438 This is annoying. 13445 This is annoying.
13439 13446
13440 The way to deal with this is having Gnus split out all spam into a 13447 The way to deal with this is having Gnus split out all spam into a
13465 13472
13466 This says that all mail to this address is suspect, but if it has a 13473 This says that all mail to this address is suspect, but if it has a
13467 @code{Subject} that starts with a @samp{Re:} or has a @code{References} 13474 @code{Subject} that starts with a @samp{Re:} or has a @code{References}
13468 header, it's probably ok. All the rest goes to the @samp{spam} group. 13475 header, it's probably ok. All the rest goes to the @samp{spam} group.
13469 (This idea probably comes from Tim Pierce.) 13476 (This idea probably comes from Tim Pierce.)
13477
13478 In addition, many mail spammers talk directly to your @code{smtp} server
13479 and do not include your email address explicitly in the @code{To}
13480 header. Why they do this is unknown---perhaps it's to thwart this
13481 twarting scheme? In any case, this is trivial to deal with---you just
13482 put anything not addressed to you in the @samp{spam} group by ending
13483 your fancy split rule in this way:
13484
13485 @lisp
13486 (
13487 ...
13488 (to "larsi" "misc")
13489 "spam")
13490 @end lisp
13470 13491
13471 In my experience, this will sort virtually everything into the right 13492 In my experience, this will sort virtually everything into the right
13472 group. You still have to check the @samp{spam} group from time to time to 13493 group. You still have to check the @samp{spam} group from time to time to
13473 check for legitimate mail, though. If you feel like being a good net 13494 check for legitimate mail, though. If you feel like being a good net
13474 citizen, you can even send off complaints to the proper authorities on 13495 citizen, you can even send off complaints to the proper authorities on
13962 Geoffrey T. Dairiki, 13983 Geoffrey T. Dairiki,
13963 Andre Deparade, 13984 Andre Deparade,
13964 Ulrik Dickow, 13985 Ulrik Dickow,
13965 Dave Disser, 13986 Dave Disser,
13966 Joev Dubach, 13987 Joev Dubach,
13988 Michael Welsh Duggan,
13967 Paul Eggert, 13989 Paul Eggert,
13968 Michael Ernst, 13990 Michael Ernst,
13969 Luc Van Eycken, 13991 Luc Van Eycken,
13970 Sam Falkner, 13992 Sam Falkner,
13971 Paul Franklin, 13993 Paul Franklin,
14014 Ulrich Pfeifer, 14036 Ulrich Pfeifer,
14015 John McClary Prevost, 14037 John McClary Prevost,
14016 Colin Rafferty, 14038 Colin Rafferty,
14017 Bart Robinson, 14039 Bart Robinson,
14018 Jason Rumney, 14040 Jason Rumney,
14041 Dewey M. Sasser,
14019 Loren Schall, 14042 Loren Schall,
14020 Dan Schmidt, 14043 Dan Schmidt,
14021 Ralph Schleicher, 14044 Ralph Schleicher,
14022 Philippe Schnoebelen, 14045 Philippe Schnoebelen,
14023 Randal L. Schwartz, 14046 Randal L. Schwartz,
14024 Danny Siu, 14047 Danny Siu,
14025 Paul D. Smith, 14048 Paul D. Smith,
14026 Jeff Sparkes, 14049 Jeff Sparkes,
14050 Toby Speight,
14027 Michael Sperber, 14051 Michael Sperber,
14028 Richard Stallman, 14052 Richard Stallman,
14029 Greg Stark, 14053 Greg Stark,
14030 Paul Stodghill, 14054 Paul Stodghill,
14031 Kurt Swanson, 14055 Kurt Swanson,
15008 If you just need help, you are better off asking on 15032 If you just need help, you are better off asking on
15009 @samp{gnu.emacs.gnus}. I'm not very helpful. 15033 @samp{gnu.emacs.gnus}. I'm not very helpful.
15010 15034
15011 @cindex gnu.emacs.gnus 15035 @cindex gnu.emacs.gnus
15012 @cindex ding mailing list 15036 @cindex ding mailing list
15013 You can also ask on the ding mailing list---@samp{ding@@ifi.uio.no}. 15037 You can also ask on the ding mailing list---@samp{ding@@gnus.org}.
15014 Write to @samp{ding-request@@ifi.uio.no} to subscribe. 15038 Write to @samp{ding-request@@gnus.org} to subscribe.
15015 15039
15016 15040
15017 @node A Programmers Guide to Gnus 15041 @node A Programmers Guide to Gnus
15018 @section A Programmer@'s Guide to Gnus 15042 @section A Programmer@'s Guide to Gnus
15019 15043
15028 backends (this is written in stone), the format of the score files 15052 backends (this is written in stone), the format of the score files
15029 (ditto), data structures (some are less likely to change than others) 15053 (ditto), data structures (some are less likely to change than others)
15030 and general method of operations. 15054 and general method of operations.
15031 15055
15032 @menu 15056 @menu
15057 * Gnus Utility Functions:: Common functions and variable to use.
15033 * Backend Interface:: How Gnus communicates with the servers. 15058 * Backend Interface:: How Gnus communicates with the servers.
15034 * Score File Syntax:: A BNF definition of the score file standard. 15059 * Score File Syntax:: A BNF definition of the score file standard.
15035 * Headers:: How Gnus stores headers internally. 15060 * Headers:: How Gnus stores headers internally.
15036 * Ranges:: A handy format for storing mucho numbers. 15061 * Ranges:: A handy format for storing mucho numbers.
15037 * Group Info:: The group info format. 15062 * Group Info:: The group info format.
15038 * Emacs/XEmacs Code:: Gnus can be run under all modern Emacsen. 15063 * Emacs/XEmacs Code:: Gnus can be run under all modern Emacsen.
15039 * Various File Formats:: Formats of files that Gnus use. 15064 * Various File Formats:: Formats of files that Gnus use.
15040 @end menu 15065 @end menu
15066
15067
15068 @node Gnus Utility Functions
15069 @subsection Gnus Utility Functions
15070 @cindex Gnus utility functions
15071 @cindex utility functions
15072 @cindex functions
15073 @cindex internal variables
15074
15075 When writing small functions to be run from hooks (and stuff), it's
15076 vital to have access to the Gnus internal functions and variables.
15077 Below is a list of the most common ones.
15078
15079 @table @code
15080
15081 @item gnus-newsgroup-name
15082 @vindex gnus-newsgroup-name
15083 This variable holds the name of the current newsgroup.
15084
15085 @item gnus-find-method-for-group
15086 @findex gnus-find-method-for-group
15087 A function that returns the select method for @var{group}.
15088
15089 @item gnus-group-real-name
15090 @findex gnus-group-real-name
15091 Takes a full (prefixed) Gnus group name, and returns the unprefixed
15092 name.
15093
15094 @item gnus-group-prefixed-name
15095 @findex gnus-group-prefixed-name
15096 Takes an unprefixed group name and a select method, and returns the full
15097 (prefixed) Gnus group name.
15098
15099 @item gnus-get-info
15100 @findex gnus-get-info
15101 Return the group info list for @var{group}.
15102
15103 @item gnus-add-current-to-buffer-list
15104 @findex gnus-add-current-to-buffer-list
15105 Add the current buffer to the list of buffers to be killed on Gnus
15106 exit.
15107
15108 @item gnus-continuum-version
15109 @findex gnus-continuum-version
15110 Take a Gnus version string as a parameter and returns a floating point
15111 number. Earlier versions will always get a lower number than later
15112 versions.
15113
15114 @item gnus-group-read-only-p
15115 @findex gnus-group-read-only-p
15116 Say whether @var{group} is read-only or not.
15117
15118 @item gnus-news-group-p
15119 @findex gnus-news-group-p
15120 Say whether @var{group} came from a news backend.
15121
15122 @item gnus-ephemeral-group-p
15123 @findex gnus-ephemeral-group-p
15124 Say whether @var{group} is ephemeral or not.
15125
15126 @item gnus-server-to-method
15127 @findex gnus-server-to-method
15128 Return the select method corresponding to @var{server}.
15129
15130 @item gnus-server-equal
15131 @findex gnus-server-equal
15132 Say whether two virtual servers are equal.
15133
15134 @item gnus-group-native-p
15135 @findex gnus-group-native-p
15136 Say whether @var{group} is native or not.
15137
15138 @item gnus-group-secondary-p
15139 @findex gnus-group-secondary-p
15140 Say whether @var{group} is secondary or not.
15141
15142 @item gnus-group-foreign-p
15143 @findex gnus-group-foreign-p
15144 Say whether @var{group} is foreign or not.
15145
15146 @item group-group-find-parameter
15147 @findex group-group-find-parameter
15148 Return the parameter list of @var{group}. If given a second parameter,
15149 return the value of that parameter for @var{group}.
15150
15151 @item gnus-group-set-parameter
15152 @findex gnus-group-set-parameter
15153 Takes three parameters; @var{group}, @var{parameter} and @var{value}.
15154
15155 @item gnus-narrow-to-body
15156 @findex gnus-narrow-to-body
15157 Narrow the current buffer to the body of the article.
15158
15159 @item gnus-check-backend-function
15160 @findex gnus-check-backend-function
15161 Takes two parameters, @var{function} and @var{group}. If the backend
15162 @var{group} comes from supports @var{function}, return non-@code{nil}.
15163
15164 @lisp
15165 (gnus-check-backend-function "request-scan" "nnml:misc")
15166 => t
15167 @end lisp
15168
15169 @item gnus-read-method
15170 @findex gnus-read-method
15171 Prompt the user for a select method.
15172
15173 @end table
15041 15174
15042 15175
15043 @node Backend Interface 15176 @node Backend Interface
15044 @subsection Backend Interface 15177 @subsection Backend Interface
15045 15178
16001 ("no.group" 5 (1 . 54324)) 16134 ("no.group" 5 (1 . 54324))
16002 16135
16003 ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55)) 16136 ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55))
16004 ((tick (15 . 19)) (replied 3 6 (19 . 3))) 16137 ((tick (15 . 19)) (replied 3 6 (19 . 3)))
16005 (nnml "") 16138 (nnml "")
16006 (auto-expire (to-address "ding@@ifi.uio.no"))) 16139 (auto-expire (to-address "ding@@gnus.org")))
16007 @end example 16140 @end example
16008 16141
16009 The first element is the @dfn{group name}---as Gnus knows the group, 16142 The first element is the @dfn{group name}---as Gnus knows the group,
16010 anyway. The second element is the @dfn{subscription level}, which 16143 anyway. The second element is the @dfn{subscription level}, which
16011 normally is a small integer. The third element is a list of ranges of 16144 normally is a small integer. The third element is a list of ranges of
16035 16168
16036 Actually that @samp{marks} rule is a fib. A @samp{marks} is a 16169 Actually that @samp{marks} rule is a fib. A @samp{marks} is a
16037 @samp{<string>} consed on to a @samp{range}, but that's a bitch to say 16170 @samp{<string>} consed on to a @samp{range}, but that's a bitch to say
16038 in pseudo-BNF. 16171 in pseudo-BNF.
16039 16172
16173 If you have a Gnus info and want to access the elements, Gnus offers a
16174 series of macros for getting/setting these elements.
16175
16176 @table @code
16177 @item gnus-info-group
16178 @itemx gnus-info-set-group
16179 @findex gnus-info-group
16180 @findex gnus-info-set-group
16181 Get/set the group name.
16182
16183 @item gnus-info-rank
16184 @itemx gnus-info-set-rank
16185 @findex gnus-info-rank
16186 @findex gnus-info-set-rank
16187 Get/set the group rank.
16188
16189 @item gnus-info-level
16190 @itemx gnus-info-set-level
16191 @findex gnus-info-level
16192 @findex gnus-info-set-level
16193 Get/set the group level.
16194
16195 @item gnus-info-score
16196 @itemx gnus-info-set-score
16197 @findex gnus-info-score
16198 @findex gnus-info-set-score
16199 Get/set the group score.
16200
16201 @item gnus-info-read
16202 @itemx gnus-info-set-read
16203 @findex gnus-info-read
16204 @findex gnus-info-set-read
16205 Get/set the ranges of read articles.
16206
16207 @item gnus-info-marks
16208 @itemx gnus-info-set-marks
16209 @findex gnus-info-marks
16210 @findex gnus-info-set-marks
16211 Get/set the lists of ranges of marked articles.
16212
16213 @item gnus-info-method
16214 @itemx gnus-info-set-method
16215 @findex gnus-info-method
16216 @findex gnus-info-set-method
16217 Get/set the group select method.
16218
16219 @item gnus-info-params
16220 @itemx gnus-info-set-params
16221 @findex gnus-info-params
16222 @findex gnus-info-set-params
16223 Get/set the group parameters.
16224 @end table
16225
16226 All the getter functions take one parameter---the info list. The setter
16227 functions take two parameters---the info list and the new value.
16228
16229 The last three elements in the group info aren't mandatory, so it may be
16230 necessary to extend the group info before setting the element. If this
16231 is necessary, you can just pass on a non-@code{nil} third parameter to
16232 the three final setter functions to have this happen automatically.
16233
16040 16234
16041 @node Emacs/XEmacs Code 16235 @node Emacs/XEmacs Code
16042 @subsection Emacs/XEmacs Code 16236 @subsection Emacs/XEmacs Code
16043 @cindex XEmacs 16237 @cindex XEmacs
16044 @cindex Emacsen 16238 @cindex Emacsen