diff options
| author | ShengHuo ZHU | 2001-09-23 12:33:24 +0000 |
|---|---|---|
| committer | ShengHuo ZHU | 2001-09-23 12:33:24 +0000 |
| commit | a8edc211c0ddd96accdcc2f04e0fcd698eb1cdd9 (patch) | |
| tree | dfcfd8727026383b743ff5b61349e455e17d4207 | |
| parent | e5b31424022a505152b283c7dc20112be18e18a1 (diff) | |
| download | emacs-a8edc211c0ddd96accdcc2f04e0fcd698eb1cdd9.tar.gz emacs-a8edc211c0ddd96accdcc2f04e0fcd698eb1cdd9.zip | |
backend -> back end.
| -rw-r--r-- | man/gnus.texi | 464 |
1 files changed, 232 insertions, 232 deletions
diff --git a/man/gnus.texi b/man/gnus.texi index 42b6aa0f656..aa287419a29 100644 --- a/man/gnus.texi +++ b/man/gnus.texi | |||
| @@ -631,15 +631,15 @@ Getting Mail | |||
| 631 | * Getting Started Reading Mail:: A simple cookbook example. | 631 | * Getting Started Reading Mail:: A simple cookbook example. |
| 632 | * Splitting Mail:: How to create mail groups. | 632 | * Splitting Mail:: How to create mail groups. |
| 633 | * Mail Sources:: How to tell Gnus where to get mail from. | 633 | * Mail Sources:: How to tell Gnus where to get mail from. |
| 634 | * Mail Backend Variables:: Variables for customizing mail handling. | 634 | * Mail Back End Variables:: Variables for customizing mail handling. |
| 635 | * Fancy Mail Splitting:: Gnus can do hairy splitting of incoming mail. | 635 | * Fancy Mail Splitting:: Gnus can do hairy splitting of incoming mail. |
| 636 | * Group Mail Splitting:: Use group customize to drive mail splitting. | 636 | * Group Mail Splitting:: Use group customize to drive mail splitting. |
| 637 | * Incorporating Old Mail:: What about the old mail you have? | 637 | * Incorporating Old Mail:: What about the old mail you have? |
| 638 | * Expiring Mail:: Getting rid of unwanted mail. | 638 | * Expiring Mail:: Getting rid of unwanted mail. |
| 639 | * Washing Mail:: Removing cruft from the mail you get. | 639 | * Washing Mail:: Removing cruft from the mail you get. |
| 640 | * Duplicates:: Dealing with duplicated mail. | 640 | * Duplicates:: Dealing with duplicated mail. |
| 641 | * Not Reading Mail:: Using mail backends for reading other files. | 641 | * Not Reading Mail:: Using mail back ends for reading other files. |
| 642 | * Choosing a Mail Backend:: Gnus can read a variety of mail formats. | 642 | * Choosing a Mail Back End:: Gnus can read a variety of mail formats. |
| 643 | 643 | ||
| 644 | Mail Sources | 644 | Mail Sources |
| 645 | 645 | ||
| @@ -647,14 +647,14 @@ Mail Sources | |||
| 647 | * Mail Source Customization:: Some variables that influence things. | 647 | * Mail Source Customization:: Some variables that influence things. |
| 648 | * Fetching Mail:: Using the mail source specifiers. | 648 | * Fetching Mail:: Using the mail source specifiers. |
| 649 | 649 | ||
| 650 | Choosing a Mail Backend | 650 | Choosing a Mail Back End |
| 651 | 651 | ||
| 652 | * Unix Mail Box:: Using the (quite) standard Un*x mbox. | 652 | * Unix Mail Box:: Using the (quite) standard Un*x mbox. |
| 653 | * Rmail Babyl:: Emacs programs use the rmail babyl format. | 653 | * Rmail Babyl:: Emacs programs use the rmail babyl format. |
| 654 | * Mail Spool:: Store your mail in a private spool? | 654 | * Mail Spool:: Store your mail in a private spool? |
| 655 | * MH Spool:: An mhspool-like backend. | 655 | * MH Spool:: An mhspool-like back end. |
| 656 | * Mail Folders:: Having one file for each group. | 656 | * Mail Folders:: Having one file for each group. |
| 657 | * Comparing Mail Backends:: An in-depth looks at pros and cons. | 657 | * Comparing Mail Back Ends:: An in-depth looks at pros and cons. |
| 658 | 658 | ||
| 659 | Browsing the Web | 659 | Browsing the Web |
| 660 | 660 | ||
| @@ -679,7 +679,7 @@ Document Groups | |||
| 679 | SOUP | 679 | SOUP |
| 680 | 680 | ||
| 681 | * SOUP Commands:: Commands for creating and sending @sc{soup} packets | 681 | * SOUP Commands:: Commands for creating and sending @sc{soup} packets |
| 682 | * SOUP Groups:: A backend for reading @sc{soup} packets. | 682 | * SOUP Groups:: A back end for reading @sc{soup} packets. |
| 683 | * SOUP Replies:: How to enable @code{nnsoup} to take over mail and news. | 683 | * SOUP Replies:: How to enable @code{nnsoup} to take over mail and news. |
| 684 | 684 | ||
| 685 | @sc{imap} | 685 | @sc{imap} |
| @@ -835,7 +835,7 @@ Customization | |||
| 835 | Gnus Reference Guide | 835 | Gnus Reference Guide |
| 836 | 836 | ||
| 837 | * Gnus Utility Functions:: Common functions and variable to use. | 837 | * Gnus Utility Functions:: Common functions and variable to use. |
| 838 | * Backend Interface:: How Gnus communicates with the servers. | 838 | * Back End Interface:: How Gnus communicates with the servers. |
| 839 | * Score File Syntax:: A BNF definition of the score file standard. | 839 | * Score File Syntax:: A BNF definition of the score file standard. |
| 840 | * Headers:: How Gnus stores headers internally. | 840 | * Headers:: How Gnus stores headers internally. |
| 841 | * Ranges:: A handy format for storing mucho numbers. | 841 | * Ranges:: A handy format for storing mucho numbers. |
| @@ -844,14 +844,14 @@ Gnus Reference Guide | |||
| 844 | * Emacs/XEmacs Code:: Gnus can be run under all modern Emacsen. | 844 | * Emacs/XEmacs Code:: Gnus can be run under all modern Emacsen. |
| 845 | * Various File Formats:: Formats of files that Gnus use. | 845 | * Various File Formats:: Formats of files that Gnus use. |
| 846 | 846 | ||
| 847 | Backend Interface | 847 | Back End Interface |
| 848 | 848 | ||
| 849 | * Required Backend Functions:: Functions that must be implemented. | 849 | * Required Back End Functions:: Functions that must be implemented. |
| 850 | * Optional Backend Functions:: Functions that need not be implemented. | 850 | * Optional Back End Functions:: Functions that need not be implemented. |
| 851 | * Error Messaging:: How to get messages and report errors. | 851 | * Error Messaging:: How to get messages and report errors. |
| 852 | * Writing New Backends:: Extending old backends. | 852 | * Writing New Back Ends:: Extending old back ends. |
| 853 | * Hooking New Backends Into Gnus:: What has to be done on the Gnus end. | 853 | * Hooking New Back ends Into Gnus:: What has to be done on the Gnus end. |
| 854 | * Mail-like Backends:: Some tips on mail backends. | 854 | * Mail-like Back ends:: Some tips on mail back ends. |
| 855 | 855 | ||
| 856 | Various File Formats | 856 | Various File Formats |
| 857 | 857 | ||
| @@ -975,8 +975,8 @@ files during startup (if that's required), and new newsgroups that | |||
| 975 | appear on these servers will be subscribed (or not) just as native | 975 | appear on these servers will be subscribed (or not) just as native |
| 976 | groups are. | 976 | groups are. |
| 977 | 977 | ||
| 978 | For instance, if you use the @code{nnmbox} backend to read your mail, you | 978 | For instance, if you use the @code{nnmbox} back end to read your mail, |
| 979 | would typically set this variable to | 979 | you would typically set this variable to |
| 980 | 980 | ||
| 981 | @lisp | 981 | @lisp |
| 982 | (setq gnus-secondary-select-methods '((nnmbox ""))) | 982 | (setq gnus-secondary-select-methods '((nnmbox ""))) |
| @@ -1093,7 +1093,7 @@ also save you some time at startup. Even if this variable is | |||
| 1093 | @code{nil}, you can always subscribe to the new groups just by pressing | 1093 | @code{nil}, you can always subscribe to the new groups just by pressing |
| 1094 | @kbd{U} in the group buffer (@pxref{Group Maintenance}). This variable | 1094 | @kbd{U} in the group buffer (@pxref{Group Maintenance}). This variable |
| 1095 | is @code{ask-server} by default. If you set this variable to | 1095 | is @code{ask-server} by default. If you set this variable to |
| 1096 | @code{always}, then Gnus will query the backends for new groups even | 1096 | @code{always}, then Gnus will query the back ends for new groups even |
| 1097 | when you do the @kbd{g} command (@pxref{Scanning New Messages}). | 1097 | when you do the @kbd{g} command (@pxref{Scanning New Messages}). |
| 1098 | 1098 | ||
| 1099 | @menu | 1099 | @menu |
| @@ -1255,7 +1255,7 @@ Yet another variable that meddles here is | |||
| 1255 | thought it would be nice to have two of these. This variable is more | 1255 | thought it would be nice to have two of these. This variable is more |
| 1256 | meant for setting some ground rules, while the other variable is used | 1256 | meant for setting some ground rules, while the other variable is used |
| 1257 | more for user fiddling. By default this variable makes all new groups | 1257 | more for user fiddling. By default this variable makes all new groups |
| 1258 | that come from mail backends (@code{nnml}, @code{nnbabyl}, | 1258 | that come from mail back ends (@code{nnml}, @code{nnbabyl}, |
| 1259 | @code{nnfolder}, @code{nnmbox}, and @code{nnmh}) subscribed. If you | 1259 | @code{nnfolder}, @code{nnmbox}, and @code{nnmh}) subscribed. If you |
| 1260 | don't like that, just set this variable to @code{nil}. | 1260 | don't like that, just set this variable to @code{nil}. |
| 1261 | 1261 | ||
| @@ -2376,7 +2376,7 @@ to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}. | |||
| 2376 | Rename the current group to something else | 2376 | Rename the current group to something else |
| 2377 | (@code{gnus-group-rename-group}). This is valid only on some | 2377 | (@code{gnus-group-rename-group}). This is valid only on some |
| 2378 | groups---mail groups mostly. This command might very well be quite slow | 2378 | groups---mail groups mostly. This command might very well be quite slow |
| 2379 | on some backends. | 2379 | on some back ends. |
| 2380 | 2380 | ||
| 2381 | @item G c | 2381 | @item G c |
| 2382 | @kindex G c @r{(Group)} | 2382 | @kindex G c @r{(Group)} |
| @@ -2442,7 +2442,7 @@ strings to match on headers (@code{gnus-group-make-kiboze-group}). | |||
| 2442 | @findex gnus-group-enter-directory | 2442 | @findex gnus-group-enter-directory |
| 2443 | @cindex nneething | 2443 | @cindex nneething |
| 2444 | Read an arbitrary directory as if it were a newsgroup with the | 2444 | Read an arbitrary directory as if it were a newsgroup with the |
| 2445 | @code{nneething} backend (@code{gnus-group-enter-directory}). | 2445 | @code{nneething} back end (@code{gnus-group-enter-directory}). |
| 2446 | @xref{Anything Groups}. | 2446 | @xref{Anything Groups}. |
| 2447 | 2447 | ||
| 2448 | @item G f | 2448 | @item G f |
| @@ -2945,7 +2945,7 @@ Sort the group buffer by group rank | |||
| 2945 | @item G S m | 2945 | @item G S m |
| 2946 | @kindex G S m @r{(Group)} | 2946 | @kindex G S m @r{(Group)} |
| 2947 | @findex gnus-group-sort-groups-by-method | 2947 | @findex gnus-group-sort-groups-by-method |
| 2948 | Sort the group buffer alphabetically by backend name | 2948 | Sort the group buffer alphabetically by back end name |
| 2949 | (@code{gnus-group-sort-groups-by-method}). | 2949 | (@code{gnus-group-sort-groups-by-method}). |
| 2950 | 2950 | ||
| 2951 | @end table | 2951 | @end table |
| @@ -2992,7 +2992,7 @@ Sort the groups by group rank | |||
| 2992 | @item G P m | 2992 | @item G P m |
| 2993 | @kindex G P m @r{(Group)} | 2993 | @kindex G P m @r{(Group)} |
| 2994 | @findex gnus-group-sort-selected-groups-by-method | 2994 | @findex gnus-group-sort-selected-groups-by-method |
| 2995 | Sort the groups alphabetically by backend name | 2995 | Sort the groups alphabetically by back end name |
| 2996 | (@code{gnus-group-sort-selected-groups-by-method}). | 2996 | (@code{gnus-group-sort-selected-groups-by-method}). |
| 2997 | 2997 | ||
| 2998 | @end table | 2998 | @end table |
| @@ -3458,7 +3458,7 @@ Sort the current topic by group rank | |||
| 3458 | @item T S m | 3458 | @item T S m |
| 3459 | @kindex T S m (Topic) | 3459 | @kindex T S m (Topic) |
| 3460 | @findex gnus-topic-sort-groups-by-method | 3460 | @findex gnus-topic-sort-groups-by-method |
| 3461 | Sort the current topic alphabetically by backend name | 3461 | Sort the current topic alphabetically by back end name |
| 3462 | (@code{gnus-topic-sort-groups-by-method}). | 3462 | (@code{gnus-topic-sort-groups-by-method}). |
| 3463 | 3463 | ||
| 3464 | @end table | 3464 | @end table |
| @@ -3668,7 +3668,7 @@ Check the server(s) for new articles. If the numerical prefix is used, | |||
| 3668 | this command will check only groups of level @var{arg} and lower | 3668 | this command will check only groups of level @var{arg} and lower |
| 3669 | (@code{gnus-group-get-new-news}). If given a non-numerical prefix, this | 3669 | (@code{gnus-group-get-new-news}). If given a non-numerical prefix, this |
| 3670 | command will force a total re-reading of the active file(s) from the | 3670 | command will force a total re-reading of the active file(s) from the |
| 3671 | backend(s). | 3671 | back end(s). |
| 3672 | 3672 | ||
| 3673 | @item M-g | 3673 | @item M-g |
| 3674 | @kindex M-g @r{(Group)} | 3674 | @kindex M-g @r{(Group)} |
| @@ -5720,7 +5720,7 @@ would like to display as few summary lines as possible, but still | |||
| 5720 | connect as many loose threads as possible, you should set this variable | 5720 | connect as many loose threads as possible, you should set this variable |
| 5721 | to @code{some} or a number. If you set it to a number, no more than | 5721 | to @code{some} or a number. If you set it to a number, no more than |
| 5722 | that number of extra old headers will be fetched. In either case, | 5722 | that number of extra old headers will be fetched. In either case, |
| 5723 | fetching old headers only works if the backend you are using carries | 5723 | fetching old headers only works if the back end you are using carries |
| 5724 | overview files---this would normally be @code{nntp}, @code{nnspool} and | 5724 | overview files---this would normally be @code{nntp}, @code{nnspool} and |
| 5725 | @code{nnml}. Also remember that if the root of the thread has been | 5725 | @code{nnml}. Also remember that if the root of the thread has been |
| 5726 | expired by the server, there's not much Gnus can do about that. | 5726 | expired by the server, there's not much Gnus can do about that. |
| @@ -6104,8 +6104,8 @@ happen automatically. | |||
| 6104 | @vindex gnus-use-article-prefetch | 6104 | @vindex gnus-use-article-prefetch |
| 6105 | You can control how many articles are to be pre-fetched by setting | 6105 | You can control how many articles are to be pre-fetched by setting |
| 6106 | @code{gnus-use-article-prefetch}. This is 30 by default, which means | 6106 | @code{gnus-use-article-prefetch}. This is 30 by default, which means |
| 6107 | that when you read an article in the group, the backend will pre-fetch | 6107 | that when you read an article in the group, the back end will pre-fetch |
| 6108 | the next 30 articles. If this variable is @code{t}, the backend will | 6108 | the next 30 articles. If this variable is @code{t}, the back end will |
| 6109 | pre-fetch all the articles it can without bound. If it is | 6109 | pre-fetch all the articles it can without bound. If it is |
| 6110 | @code{nil}, no pre-fetching will be done. | 6110 | @code{nil}, no pre-fetching will be done. |
| 6111 | 6111 | ||
| @@ -8202,7 +8202,7 @@ The current select method will be used when fetching by | |||
| 8202 | by giving this command a prefix. | 8202 | by giving this command a prefix. |
| 8203 | 8203 | ||
| 8204 | @vindex gnus-refer-article-method | 8204 | @vindex gnus-refer-article-method |
| 8205 | If the group you are reading is located on a backend that does not | 8205 | If the group you are reading is located on a back end that does not |
| 8206 | support fetching by @code{Message-ID} very well (like @code{nnspool}), | 8206 | support fetching by @code{Message-ID} very well (like @code{nnspool}), |
| 8207 | you can set @code{gnus-refer-article-method} to an @sc{nntp} method. It | 8207 | you can set @code{gnus-refer-article-method} to an @sc{nntp} method. It |
| 8208 | would, perhaps, be best if the @sc{nntp} server you consult is the one | 8208 | would, perhaps, be best if the @sc{nntp} server you consult is the one |
| @@ -8223,7 +8223,7 @@ then ask Deja if that fails: | |||
| 8223 | (nnweb "refer" (nnweb-type dejanews)))) | 8223 | (nnweb "refer" (nnweb-type dejanews)))) |
| 8224 | @end lisp | 8224 | @end lisp |
| 8225 | 8225 | ||
| 8226 | Most of the mail backends support fetching by @code{Message-ID}, but do | 8226 | Most of the mail back ends support fetching by @code{Message-ID}, but do |
| 8227 | not do a particularly excellent job at it. That is, @code{nnmbox} and | 8227 | not do a particularly excellent job at it. That is, @code{nnmbox} and |
| 8228 | @code{nnbabyl} are able to locate articles from any groups, while | 8228 | @code{nnbabyl} are able to locate articles from any groups, while |
| 8229 | @code{nnml} and @code{nnfolder} are only able to locate articles that | 8229 | @code{nnml} and @code{nnfolder} are only able to locate articles that |
| @@ -10044,22 +10044,22 @@ personal mail group. | |||
| 10044 | 10044 | ||
| 10045 | A foreign group (or any group, really) is specified by a @dfn{name} and | 10045 | A foreign group (or any group, really) is specified by a @dfn{name} and |
| 10046 | a @dfn{select method}. To take the latter first, a select method is a | 10046 | a @dfn{select method}. To take the latter first, a select method is a |
| 10047 | list where the first element says what backend to use (e.g. @code{nntp}, | 10047 | list where the first element says what back end to use (e.g. @code{nntp}, |
| 10048 | @code{nnspool}, @code{nnml}) and the second element is the @dfn{server | 10048 | @code{nnspool}, @code{nnml}) and the second element is the @dfn{server |
| 10049 | name}. There may be additional elements in the select method, where the | 10049 | name}. There may be additional elements in the select method, where the |
| 10050 | value may have special meaning for the backend in question. | 10050 | value may have special meaning for the back end in question. |
| 10051 | 10051 | ||
| 10052 | One could say that a select method defines a @dfn{virtual server}---so | 10052 | One could say that a select method defines a @dfn{virtual server}---so |
| 10053 | we do just that (@pxref{The Server Buffer}). | 10053 | we do just that (@pxref{The Server Buffer}). |
| 10054 | 10054 | ||
| 10055 | The @dfn{name} of the group is the name the backend will recognize the | 10055 | The @dfn{name} of the group is the name the back end will recognize the |
| 10056 | group as. | 10056 | group as. |
| 10057 | 10057 | ||
| 10058 | For instance, the group @samp{soc.motss} on the @sc{nntp} server | 10058 | For instance, the group @samp{soc.motss} on the @sc{nntp} server |
| 10059 | @samp{some.where.edu} will have the name @samp{soc.motss} and select | 10059 | @samp{some.where.edu} will have the name @samp{soc.motss} and select |
| 10060 | method @code{(nntp "some.where.edu")}. Gnus will call this group | 10060 | method @code{(nntp "some.where.edu")}. Gnus will call this group |
| 10061 | @samp{nntp+some.where.edu:soc.motss}, even though the @code{nntp} | 10061 | @samp{nntp+some.where.edu:soc.motss}, even though the @code{nntp} |
| 10062 | backend just knows this group as @samp{soc.motss}. | 10062 | back end just knows this group as @samp{soc.motss}. |
| 10063 | 10063 | ||
| 10064 | The different methods all have their peculiarities, of course. | 10064 | The different methods all have their peculiarities, of course. |
| 10065 | 10065 | ||
| @@ -10080,13 +10080,13 @@ The different methods all have their peculiarities, of course. | |||
| 10080 | Traditionally, a @dfn{server} is a machine or a piece of software that | 10080 | Traditionally, a @dfn{server} is a machine or a piece of software that |
| 10081 | one connects to, and then requests information from. Gnus does not | 10081 | one connects to, and then requests information from. Gnus does not |
| 10082 | connect directly to any real servers, but does all transactions through | 10082 | connect directly to any real servers, but does all transactions through |
| 10083 | one backend or other. But that's just putting one layer more between | 10083 | one back end or other. But that's just putting one layer more between |
| 10084 | the actual media and Gnus, so we might just as well say that each | 10084 | the actual media and Gnus, so we might just as well say that each |
| 10085 | backend represents a virtual server. | 10085 | back end represents a virtual server. |
| 10086 | 10086 | ||
| 10087 | For instance, the @code{nntp} backend may be used to connect to several | 10087 | For instance, the @code{nntp} back end may be used to connect to several |
| 10088 | different actual @sc{nntp} servers, or, perhaps, to many different ports | 10088 | different actual @sc{nntp} servers, or, perhaps, to many different ports |
| 10089 | on the same actual @sc{nntp} server. You tell Gnus which backend to | 10089 | on the same actual @sc{nntp} server. You tell Gnus which back end to |
| 10090 | use, and what parameters to set by specifying a @dfn{select method}. | 10090 | use, and what parameters to set by specifying a @dfn{select method}. |
| 10091 | 10091 | ||
| 10092 | These select method specifications can sometimes become quite | 10092 | These select method specifications can sometimes become quite |
| @@ -10126,7 +10126,7 @@ variable, with some simple extensions: | |||
| 10126 | @table @samp | 10126 | @table @samp |
| 10127 | 10127 | ||
| 10128 | @item h | 10128 | @item h |
| 10129 | How the news is fetched---the backend name. | 10129 | How the news is fetched---the back end name. |
| 10130 | 10130 | ||
| 10131 | @item n | 10131 | @item n |
| 10132 | The name of this server. | 10132 | The name of this server. |
| @@ -10212,7 +10212,7 @@ servers. | |||
| 10212 | @findex gnus-server-regenerate-server | 10212 | @findex gnus-server-regenerate-server |
| 10213 | Request that the server regenerate all its data structures | 10213 | Request that the server regenerate all its data structures |
| 10214 | (@code{gnus-server-regenerate-server}). This can be useful if you have | 10214 | (@code{gnus-server-regenerate-server}). This can be useful if you have |
| 10215 | a mail backend that has gotten out of sync. | 10215 | a mail back end that has gotten out of sync. |
| 10216 | 10216 | ||
| 10217 | @end table | 10217 | @end table |
| 10218 | 10218 | ||
| @@ -10233,7 +10233,7 @@ Reading directly from the spool is even simpler: | |||
| 10233 | @end lisp | 10233 | @end lisp |
| 10234 | 10234 | ||
| 10235 | As you can see, the first element in a select method is the name of the | 10235 | As you can see, the first element in a select method is the name of the |
| 10236 | backend, and the second is the @dfn{address}, or @dfn{name}, if you | 10236 | back end, and the second is the @dfn{address}, or @dfn{name}, if you |
| 10237 | will. | 10237 | will. |
| 10238 | 10238 | ||
| 10239 | After these two elements, there may be an arbitrary number of | 10239 | After these two elements, there may be an arbitrary number of |
| @@ -10247,10 +10247,10 @@ look like then: | |||
| 10247 | (nntp "news.funet.fi" (nntp-port-number 15)) | 10247 | (nntp "news.funet.fi" (nntp-port-number 15)) |
| 10248 | @end lisp | 10248 | @end lisp |
| 10249 | 10249 | ||
| 10250 | You should read the documentation to each backend to find out what | 10250 | You should read the documentation to each back end to find out what |
| 10251 | variables are relevant, but here's an @code{nnmh} example: | 10251 | variables are relevant, but here's an @code{nnmh} example: |
| 10252 | 10252 | ||
| 10253 | @code{nnmh} is a mail backend that reads a spool-like structure. Say | 10253 | @code{nnmh} is a mail back end that reads a spool-like structure. Say |
| 10254 | you have two structures that you wish to access: One is your private | 10254 | you have two structures that you wish to access: One is your private |
| 10255 | mail spool, and the other is a public one. Here's the possible spec for | 10255 | mail spool, and the other is a public one. Here's the possible spec for |
| 10256 | your private mail: | 10256 | your private mail: |
| @@ -10346,7 +10346,7 @@ buffer, and you should be able to enter any of the groups displayed. | |||
| 10346 | @node Server Variables | 10346 | @node Server Variables |
| 10347 | @subsection Server Variables | 10347 | @subsection Server Variables |
| 10348 | 10348 | ||
| 10349 | One sticky point when defining variables (both on backends and in Emacs | 10349 | One sticky point when defining variables (both on back ends and in Emacs |
| 10350 | in general) is that some variables are typically initialized from other | 10350 | in general) is that some variables are typically initialized from other |
| 10351 | variables when the definition of the variables is being loaded. If you | 10351 | variables when the definition of the variables is being loaded. If you |
| 10352 | change the "base" variable after the variables have been loaded, you | 10352 | change the "base" variable after the variables have been loaded, you |
| @@ -10359,7 +10359,7 @@ directory variables are initialized from that variable, so | |||
| 10359 | new virtual @code{nnml} server, it will @emph{not} suffice to set just | 10359 | new virtual @code{nnml} server, it will @emph{not} suffice to set just |
| 10360 | @code{nnml-directory}---you have to explicitly set all the file | 10360 | @code{nnml-directory}---you have to explicitly set all the file |
| 10361 | variables to be what you want them to be. For a complete list of | 10361 | variables to be what you want them to be. For a complete list of |
| 10362 | variables for each backend, see each backend's section later in this | 10362 | variables for each back end, see each back end's section later in this |
| 10363 | manual, but here's an example @code{nnml} definition: | 10363 | manual, but here's an example @code{nnml} definition: |
| 10364 | 10364 | ||
| 10365 | @lisp | 10365 | @lisp |
| @@ -10448,7 +10448,7 @@ Remove all marks to whether Gnus was denied connection from any servers | |||
| 10448 | @node Getting News | 10448 | @node Getting News |
| 10449 | @section Getting News | 10449 | @section Getting News |
| 10450 | @cindex reading news | 10450 | @cindex reading news |
| 10451 | @cindex news backends | 10451 | @cindex news back ends |
| 10452 | 10452 | ||
| 10453 | A newsreader is normally used for reading news. Gnus currently provides | 10453 | A newsreader is normally used for reading news. Gnus currently provides |
| 10454 | only two methods of getting news---it can read from an @sc{nntp} server, | 10454 | only two methods of getting news---it can read from an @sc{nntp} server, |
| @@ -10582,9 +10582,9 @@ nntpd 1.5.11t, since that command chokes that server, I've been told. | |||
| 10582 | 10582 | ||
| 10583 | @item nntp-maximum-request | 10583 | @item nntp-maximum-request |
| 10584 | @vindex nntp-maximum-request | 10584 | @vindex nntp-maximum-request |
| 10585 | If the @sc{nntp} server doesn't support @sc{nov} headers, this backend | 10585 | If the @sc{nntp} server doesn't support @sc{nov} headers, this back end |
| 10586 | will collect headers by sending a series of @code{head} commands. To | 10586 | will collect headers by sending a series of @code{head} commands. To |
| 10587 | speed things up, the backend sends lots of these commands without | 10587 | speed things up, the back end sends lots of these commands without |
| 10588 | waiting for reply, and then reads all the replies. This is controlled | 10588 | waiting for reply, and then reads all the replies. This is controlled |
| 10589 | by the @code{nntp-maximum-request} variable, and is 400 by default. If | 10589 | by the @code{nntp-maximum-request} variable, and is 400 by default. If |
| 10590 | your network is buggy, you should set this to 1. | 10590 | your network is buggy, you should set this to 1. |
| @@ -10596,7 +10596,7 @@ regularly, you're sure to have problems with @sc{nntp} servers not | |||
| 10596 | responding properly, or being too loaded to reply within reasonable | 10596 | responding properly, or being too loaded to reply within reasonable |
| 10597 | time. This is can lead to awkward problems, which can be helped | 10597 | time. This is can lead to awkward problems, which can be helped |
| 10598 | somewhat by setting @code{nntp-connection-timeout}. This is an integer | 10598 | somewhat by setting @code{nntp-connection-timeout}. This is an integer |
| 10599 | that says how many seconds the @code{nntp} backend should wait for a | 10599 | that says how many seconds the @code{nntp} back end should wait for a |
| 10600 | connection before giving up. If it is @code{nil}, which is the default, | 10600 | connection before giving up. If it is @code{nil}, which is the default, |
| 10601 | no timeouts are done. | 10601 | no timeouts are done. |
| 10602 | 10602 | ||
| @@ -10882,15 +10882,15 @@ course. | |||
| 10882 | * Getting Started Reading Mail:: A simple cookbook example. | 10882 | * Getting Started Reading Mail:: A simple cookbook example. |
| 10883 | * Splitting Mail:: How to create mail groups. | 10883 | * Splitting Mail:: How to create mail groups. |
| 10884 | * Mail Sources:: How to tell Gnus where to get mail from. | 10884 | * Mail Sources:: How to tell Gnus where to get mail from. |
| 10885 | * Mail Backend Variables:: Variables for customizing mail handling. | 10885 | * Mail Back End Variables:: Variables for customizing mail handling. |
| 10886 | * Fancy Mail Splitting:: Gnus can do hairy splitting of incoming mail. | 10886 | * Fancy Mail Splitting:: Gnus can do hairy splitting of incoming mail. |
| 10887 | * Group Mail Splitting:: Use group customize to drive mail splitting. | 10887 | * Group Mail Splitting:: Use group customize to drive mail splitting. |
| 10888 | * Incorporating Old Mail:: What about the old mail you have? | 10888 | * Incorporating Old Mail:: What about the old mail you have? |
| 10889 | * Expiring Mail:: Getting rid of unwanted mail. | 10889 | * Expiring Mail:: Getting rid of unwanted mail. |
| 10890 | * Washing Mail:: Removing gruft from the mail you get. | 10890 | * Washing Mail:: Removing gruft from the mail you get. |
| 10891 | * Duplicates:: Dealing with duplicated mail. | 10891 | * Duplicates:: Dealing with duplicated mail. |
| 10892 | * Not Reading Mail:: Using mail backends for reading other files. | 10892 | * Not Reading Mail:: Using mail back ends for reading other files. |
| 10893 | * Choosing a Mail Backend:: Gnus can read a variety of mail formats. | 10893 | * Choosing a Mail Back End:: Gnus can read a variety of mail formats. |
| 10894 | @end menu | 10894 | @end menu |
| 10895 | 10895 | ||
| 10896 | 10896 | ||
| @@ -10963,18 +10963,18 @@ You Do.) | |||
| 10963 | @subsection Getting Started Reading Mail | 10963 | @subsection Getting Started Reading Mail |
| 10964 | 10964 | ||
| 10965 | It's quite easy to use Gnus to read your new mail. You just plonk the | 10965 | It's quite easy to use Gnus to read your new mail. You just plonk the |
| 10966 | mail backend of your choice into @code{gnus-secondary-select-methods}, | 10966 | mail back end of your choice into @code{gnus-secondary-select-methods}, |
| 10967 | and things will happen automatically. | 10967 | and things will happen automatically. |
| 10968 | 10968 | ||
| 10969 | For instance, if you want to use @code{nnml} (which is a "one file per | 10969 | For instance, if you want to use @code{nnml} (which is a "one file per |
| 10970 | mail" backend), you could put the following in your @file{.gnus} file: | 10970 | mail" back end), you could put the following in your @file{.gnus} file: |
| 10971 | 10971 | ||
| 10972 | @lisp | 10972 | @lisp |
| 10973 | (setq gnus-secondary-select-methods | 10973 | (setq gnus-secondary-select-methods |
| 10974 | '((nnml "private"))) | 10974 | '((nnml "private"))) |
| 10975 | @end lisp | 10975 | @end lisp |
| 10976 | 10976 | ||
| 10977 | Now, the next time you start Gnus, this backend will be queried for new | 10977 | Now, the next time you start Gnus, this back end will be queried for new |
| 10978 | articles, and it will move all the messages in your spool file to its | 10978 | articles, and it will move all the messages in your spool file to its |
| 10979 | directory, which is @code{~/Mail/} by default. The new group that will | 10979 | directory, which is @code{~/Mail/} by default. The new group that will |
| 10980 | be created (@samp{mail.misc}) will be subscribed, and you can read it | 10980 | be created (@samp{mail.misc}) will be subscribed, and you can read it |
| @@ -10996,7 +10996,7 @@ last group. | |||
| 10996 | 10996 | ||
| 10997 | This should be sufficient for reading mail with Gnus. You might want to | 10997 | This should be sufficient for reading mail with Gnus. You might want to |
| 10998 | give the other sections in this part of the manual a perusal, though. | 10998 | give the other sections in this part of the manual a perusal, though. |
| 10999 | Especially @pxref{Choosing a Mail Backend} and @pxref{Expiring Mail}. | 10999 | Especially @pxref{Choosing a Mail Back End} and @pxref{Expiring Mail}. |
| 11000 | 11000 | ||
| 11001 | 11001 | ||
| 11002 | @node Splitting Mail | 11002 | @node Splitting Mail |
| @@ -11045,13 +11045,13 @@ arguments in a buffer narrowed to the headers of an incoming mail | |||
| 11045 | message. The function should return a list of group names that it | 11045 | message. The function should return a list of group names that it |
| 11046 | thinks should carry this mail message. | 11046 | thinks should carry this mail message. |
| 11047 | 11047 | ||
| 11048 | Note that the mail backends are free to maul the poor, innocent, | 11048 | Note that the mail back ends are free to maul the poor, innocent, |
| 11049 | incoming headers all they want to. They all add @code{Lines} headers; | 11049 | incoming headers all they want to. They all add @code{Lines} headers; |
| 11050 | some add @code{X-Gnus-Group} headers; most rename the Unix mbox | 11050 | some add @code{X-Gnus-Group} headers; most rename the Unix mbox |
| 11051 | @samp{From } line to something else. | 11051 | @samp{From } line to something else. |
| 11052 | 11052 | ||
| 11053 | @vindex nnmail-crosspost | 11053 | @vindex nnmail-crosspost |
| 11054 | The mail backends all support cross-posting. If several regexps match, | 11054 | The mail back ends all support cross-posting. If several regexps match, |
| 11055 | the mail will be ``cross-posted'' to all those groups. | 11055 | the mail will be ``cross-posted'' to all those groups. |
| 11056 | @code{nnmail-crosspost} says whether to use this mechanism or not. Note | 11056 | @code{nnmail-crosspost} says whether to use this mechanism or not. Note |
| 11057 | that no articles are crossposted to the general (@samp{}) group. | 11057 | that no articles are crossposted to the general (@samp{}) group. |
| @@ -11575,7 +11575,7 @@ The way to actually tell Gnus where to get new mail from is to set | |||
| 11575 | (@pxref{Mail Source Specifiers}). | 11575 | (@pxref{Mail Source Specifiers}). |
| 11576 | 11576 | ||
| 11577 | If this variable (and the obsolescent @code{nnmail-spool-file}) is | 11577 | If this variable (and the obsolescent @code{nnmail-spool-file}) is |
| 11578 | @code{nil}, the mail backends will never attempt to fetch mail by | 11578 | @code{nil}, the mail back ends will never attempt to fetch mail by |
| 11579 | themselves. | 11579 | themselves. |
| 11580 | 11580 | ||
| 11581 | If you want to fetch mail both from your local spool as well as a POP | 11581 | If you want to fetch mail both from your local spool as well as a POP |
| @@ -11600,25 +11600,25 @@ Or, if you don't want to use any of the keyword defaults: | |||
| 11600 | @end lisp | 11600 | @end lisp |
| 11601 | 11601 | ||
| 11602 | 11602 | ||
| 11603 | When you use a mail backend, Gnus will slurp all your mail from your | 11603 | When you use a mail back end, Gnus will slurp all your mail from your |
| 11604 | inbox and plonk it down in your home directory. Gnus doesn't move any | 11604 | inbox and plonk it down in your home directory. Gnus doesn't move any |
| 11605 | mail if you're not using a mail backend---you have to do a lot of magic | 11605 | mail if you're not using a mail back end---you have to do a lot of magic |
| 11606 | invocations first. At the time when you have finished drawing the | 11606 | invocations first. At the time when you have finished drawing the |
| 11607 | pentagram, lightened the candles, and sacrificed the goat, you really | 11607 | pentagram, lightened the candles, and sacrificed the goat, you really |
| 11608 | shouldn't be too surprised when Gnus moves your mail. | 11608 | shouldn't be too surprised when Gnus moves your mail. |
| 11609 | 11609 | ||
| 11610 | 11610 | ||
| 11611 | 11611 | ||
| 11612 | @node Mail Backend Variables | 11612 | @node Mail Back End Variables |
| 11613 | @subsection Mail Backend Variables | 11613 | @subsection Mail Back End Variables |
| 11614 | 11614 | ||
| 11615 | These variables are (for the most part) pertinent to all the various | 11615 | These variables are (for the most part) pertinent to all the various |
| 11616 | mail backends. | 11616 | mail back ends. |
| 11617 | 11617 | ||
| 11618 | @table @code | 11618 | @table @code |
| 11619 | @vindex nnmail-read-incoming-hook | 11619 | @vindex nnmail-read-incoming-hook |
| 11620 | @item nnmail-read-incoming-hook | 11620 | @item nnmail-read-incoming-hook |
| 11621 | The mail backends all call this hook after reading new mail. You can | 11621 | The mail back ends all call this hook after reading new mail. You can |
| 11622 | use this hook to notify any mail watch programs, if you want to. | 11622 | use this hook to notify any mail watch programs, if you want to. |
| 11623 | 11623 | ||
| 11624 | @vindex nnmail-split-hook | 11624 | @vindex nnmail-split-hook |
| @@ -11655,10 +11655,10 @@ default file modes the new mail files get: | |||
| 11655 | 11655 | ||
| 11656 | @item nnmail-use-long-file-names | 11656 | @item nnmail-use-long-file-names |
| 11657 | @vindex nnmail-use-long-file-names | 11657 | @vindex nnmail-use-long-file-names |
| 11658 | If non-@code{nil}, the mail backends will use long file and directory | 11658 | If non-@code{nil}, the mail back ends will use long file and directory |
| 11659 | names. Groups like @samp{mail.misc} will end up in directories | 11659 | names. Groups like @samp{mail.misc} will end up in directories |
| 11660 | (assuming use of @code{nnml} backend) or files (assuming use of | 11660 | (assuming use of @code{nnml} back end) or files (assuming use of |
| 11661 | @code{nnfolder} backend) like @file{mail.misc}. If it is @code{nil}, | 11661 | @code{nnfolder} back end) like @file{mail.misc}. If it is @code{nil}, |
| 11662 | the same group will end up in @file{mail/misc}. | 11662 | the same group will end up in @file{mail/misc}. |
| 11663 | 11663 | ||
| 11664 | @item nnmail-delete-file-function | 11664 | @item nnmail-delete-file-function |
| @@ -11669,7 +11669,7 @@ Function called to delete files. It is @code{delete-file} by default. | |||
| 11669 | @item nnmail-cache-accepted-message-ids | 11669 | @item nnmail-cache-accepted-message-ids |
| 11670 | @vindex nnmail-cache-accepted-message-ids | 11670 | @vindex nnmail-cache-accepted-message-ids |
| 11671 | If non-@code{nil}, put the @code{Message-ID}s of articles imported into | 11671 | If non-@code{nil}, put the @code{Message-ID}s of articles imported into |
| 11672 | the backend (via @code{Gcc}, for instance) into the mail duplication | 11672 | the back end (via @code{Gcc}, for instance) into the mail duplication |
| 11673 | discovery cache. The default is @code{nil}. | 11673 | discovery cache. The default is @code{nil}. |
| 11674 | 11674 | ||
| 11675 | @end table | 11675 | @end table |
| @@ -11985,7 +11985,7 @@ by @code{gnus-group-split-update}, this function will run | |||
| 11985 | 11985 | ||
| 11986 | Most people have lots of old mail stored in various file formats. If | 11986 | Most people have lots of old mail stored in various file formats. If |
| 11987 | you have set up Gnus to read mail using one of the spiffy Gnus mail | 11987 | you have set up Gnus to read mail using one of the spiffy Gnus mail |
| 11988 | backends, you'll probably wish to have that old mail incorporated into | 11988 | back ends, you'll probably wish to have that old mail incorporated into |
| 11989 | your mail groups. | 11989 | your mail groups. |
| 11990 | 11990 | ||
| 11991 | Doing so can be quite easy. | 11991 | Doing so can be quite easy. |
| @@ -12025,8 +12025,8 @@ deleting the mbox file, but I wouldn't do that unless I was absolutely | |||
| 12025 | sure that all the mail has ended up where it should be. | 12025 | sure that all the mail has ended up where it should be. |
| 12026 | 12026 | ||
| 12027 | Respooling is also a handy thing to do if you're switching from one mail | 12027 | Respooling is also a handy thing to do if you're switching from one mail |
| 12028 | backend to another. Just respool all the mail in the old mail groups | 12028 | back end to another. Just respool all the mail in the old mail groups |
| 12029 | using the new mail backend. | 12029 | using the new mail back end. |
| 12030 | 12030 | ||
| 12031 | 12031 | ||
| 12032 | @node Expiring Mail | 12032 | @node Expiring Mail |
| @@ -12337,12 +12337,12 @@ received. Think of all the fun! She'll never see any of it! Whee! | |||
| 12337 | @node Not Reading Mail | 12337 | @node Not Reading Mail |
| 12338 | @subsection Not Reading Mail | 12338 | @subsection Not Reading Mail |
| 12339 | 12339 | ||
| 12340 | If you start using any of the mail backends, they have the annoying | 12340 | If you start using any of the mail back ends, they have the annoying |
| 12341 | habit of assuming that you want to read mail with them. This might not | 12341 | habit of assuming that you want to read mail with them. This might not |
| 12342 | be unreasonable, but it might not be what you want. | 12342 | be unreasonable, but it might not be what you want. |
| 12343 | 12343 | ||
| 12344 | If you set @code{mail-sources} and @code{nnmail-spool-file} to | 12344 | If you set @code{mail-sources} and @code{nnmail-spool-file} to |
| 12345 | @code{nil}, none of the backends will ever attempt to read incoming | 12345 | @code{nil}, none of the back ends will ever attempt to read incoming |
| 12346 | mail, which should help. | 12346 | mail, which should help. |
| 12347 | 12347 | ||
| 12348 | @vindex nnbabyl-get-new-mail | 12348 | @vindex nnbabyl-get-new-mail |
| @@ -12352,25 +12352,25 @@ mail, which should help. | |||
| 12352 | @vindex nnfolder-get-new-mail | 12352 | @vindex nnfolder-get-new-mail |
| 12353 | This might be too much, if, for instance, you are reading mail quite | 12353 | This might be too much, if, for instance, you are reading mail quite |
| 12354 | happily with @code{nnml} and just want to peek at some old @sc{rmail} | 12354 | happily with @code{nnml} and just want to peek at some old @sc{rmail} |
| 12355 | file you have stashed away with @code{nnbabyl}. All backends have | 12355 | file you have stashed away with @code{nnbabyl}. All back ends have |
| 12356 | variables called backend-@code{get-new-mail}. If you want to disable | 12356 | variables called back-end-@code{get-new-mail}. If you want to disable |
| 12357 | the @code{nnbabyl} mail reading, you edit the virtual server for the | 12357 | the @code{nnbabyl} mail reading, you edit the virtual server for the |
| 12358 | group to have a setting where @code{nnbabyl-get-new-mail} to @code{nil}. | 12358 | group to have a setting where @code{nnbabyl-get-new-mail} to @code{nil}. |
| 12359 | 12359 | ||
| 12360 | All the mail backends will call @code{nn}*@code{-prepare-save-mail-hook} | 12360 | All the mail back ends will call @code{nn}*@code{-prepare-save-mail-hook} |
| 12361 | narrowed to the article to be saved before saving it when reading | 12361 | narrowed to the article to be saved before saving it when reading |
| 12362 | incoming mail. | 12362 | incoming mail. |
| 12363 | 12363 | ||
| 12364 | 12364 | ||
| 12365 | @node Choosing a Mail Backend | 12365 | @node Choosing a Mail Back End |
| 12366 | @subsection Choosing a Mail Backend | 12366 | @subsection Choosing a Mail Back End |
| 12367 | 12367 | ||
| 12368 | Gnus will read the mail spool when you activate a mail group. The mail | 12368 | Gnus will read the mail spool when you activate a mail group. The mail |
| 12369 | file is first copied to your home directory. What happens after that | 12369 | file is first copied to your home directory. What happens after that |
| 12370 | depends on what format you want to store your mail in. | 12370 | depends on what format you want to store your mail in. |
| 12371 | 12371 | ||
| 12372 | There are five different mail backends in the standard Gnus, and more | 12372 | There are five different mail back ends in the standard Gnus, and more |
| 12373 | backends are available separately. The mail backend most people use | 12373 | back ends are available separately. The mail back end most people use |
| 12374 | (because it is the fastest and most flexible) is @code{nnml} | 12374 | (because it is the fastest and most flexible) is @code{nnml} |
| 12375 | (@pxref{Mail Spool}). | 12375 | (@pxref{Mail Spool}). |
| 12376 | 12376 | ||
| @@ -12378,9 +12378,9 @@ backends are available separately. The mail backend most people use | |||
| 12378 | * Unix Mail Box:: Using the (quite) standard Un*x mbox. | 12378 | * Unix Mail Box:: Using the (quite) standard Un*x mbox. |
| 12379 | * Rmail Babyl:: Emacs programs use the rmail babyl format. | 12379 | * Rmail Babyl:: Emacs programs use the rmail babyl format. |
| 12380 | * Mail Spool:: Store your mail in a private spool? | 12380 | * Mail Spool:: Store your mail in a private spool? |
| 12381 | * MH Spool:: An mhspool-like backend. | 12381 | * MH Spool:: An mhspool-like back end. |
| 12382 | * Mail Folders:: Having one file for each group. | 12382 | * Mail Folders:: Having one file for each group. |
| 12383 | * Comparing Mail Backends:: An in-depth looks at pros and cons. | 12383 | * Comparing Mail Back Ends:: An in-depth looks at pros and cons. |
| 12384 | @end menu | 12384 | @end menu |
| 12385 | 12385 | ||
| 12386 | 12386 | ||
| @@ -12391,7 +12391,7 @@ backends are available separately. The mail backend most people use | |||
| 12391 | 12391 | ||
| 12392 | @vindex nnmbox-active-file | 12392 | @vindex nnmbox-active-file |
| 12393 | @vindex nnmbox-mbox-file | 12393 | @vindex nnmbox-mbox-file |
| 12394 | The @dfn{nnmbox} backend will use the standard Un*x mbox file to store | 12394 | The @dfn{nnmbox} back end will use the standard Un*x mbox file to store |
| 12395 | mail. @code{nnmbox} will add extra headers to each mail article to say | 12395 | mail. @code{nnmbox} will add extra headers to each mail article to say |
| 12396 | which group it belongs in. | 12396 | which group it belongs in. |
| 12397 | 12397 | ||
| @@ -12420,7 +12420,7 @@ into groups. | |||
| 12420 | 12420 | ||
| 12421 | @vindex nnbabyl-active-file | 12421 | @vindex nnbabyl-active-file |
| 12422 | @vindex nnbabyl-mbox-file | 12422 | @vindex nnbabyl-mbox-file |
| 12423 | The @dfn{nnbabyl} backend will use a babyl mail box (aka. @dfn{rmail | 12423 | The @dfn{nnbabyl} back end will use a babyl mail box (aka. @dfn{rmail |
| 12424 | mbox}) to store mail. @code{nnbabyl} will add extra headers to each | 12424 | mbox}) to store mail. @code{nnbabyl} will add extra headers to each |
| 12425 | mail article to say which group it belongs in. | 12425 | mail article to say which group it belongs in. |
| 12426 | 12426 | ||
| @@ -12450,7 +12450,7 @@ The @dfn{nnml} spool mail format isn't compatible with any other known | |||
| 12450 | format. It should be used with some caution. | 12450 | format. It should be used with some caution. |
| 12451 | 12451 | ||
| 12452 | @vindex nnml-directory | 12452 | @vindex nnml-directory |
| 12453 | If you use this backend, Gnus will split all incoming mail into files, | 12453 | If you use this back end, Gnus will split all incoming mail into files, |
| 12454 | one file for each mail, and put the articles into the corresponding | 12454 | one file for each mail, and put the articles into the corresponding |
| 12455 | directories under the directory specified by the @code{nnml-directory} | 12455 | directories under the directory specified by the @code{nnml-directory} |
| 12456 | variable. The default value is @file{~/Mail/}. | 12456 | variable. The default value is @file{~/Mail/}. |
| @@ -12459,7 +12459,7 @@ You do not have to create any directories beforehand; Gnus will take | |||
| 12459 | care of all that. | 12459 | care of all that. |
| 12460 | 12460 | ||
| 12461 | If you have a strict limit as to how many files you are allowed to store | 12461 | If you have a strict limit as to how many files you are allowed to store |
| 12462 | in your account, you should not use this backend. As each mail gets its | 12462 | in your account, you should not use this back end. As each mail gets its |
| 12463 | own file, you might very well occupy thousands of inodes within a few | 12463 | own file, you might very well occupy thousands of inodes within a few |
| 12464 | weeks. If this is no problem for you, and it isn't a problem for you | 12464 | weeks. If this is no problem for you, and it isn't a problem for you |
| 12465 | having your friendly systems administrator walking around, madly, | 12465 | having your friendly systems administrator walking around, madly, |
| @@ -12467,10 +12467,10 @@ shouting ``Who is eating all my inodes?! Who? Who!?!'', then you should | |||
| 12467 | know that this is probably the fastest format to use. You do not have | 12467 | know that this is probably the fastest format to use. You do not have |
| 12468 | to trudge through a big mbox file just to read your new mail. | 12468 | to trudge through a big mbox file just to read your new mail. |
| 12469 | 12469 | ||
| 12470 | @code{nnml} is probably the slowest backend when it comes to article | 12470 | @code{nnml} is probably the slowest back end when it comes to article |
| 12471 | splitting. It has to create lots of files, and it also generates | 12471 | splitting. It has to create lots of files, and it also generates |
| 12472 | @sc{nov} databases for the incoming mails. This makes it the fastest | 12472 | @sc{nov} databases for the incoming mails. This makes it the fastest |
| 12473 | backend when it comes to reading mail. | 12473 | back end when it comes to reading mail. |
| 12474 | 12474 | ||
| 12475 | Virtual server settings: | 12475 | Virtual server settings: |
| 12476 | 12476 | ||
| @@ -12494,7 +12494,7 @@ If non-@code{nil}, @code{nnml} will read incoming mail. | |||
| 12494 | 12494 | ||
| 12495 | @item nnml-nov-is-evil | 12495 | @item nnml-nov-is-evil |
| 12496 | @vindex nnml-nov-is-evil | 12496 | @vindex nnml-nov-is-evil |
| 12497 | If non-@code{nil}, this backend will ignore any @sc{nov} files. | 12497 | If non-@code{nil}, this back end will ignore any @sc{nov} files. |
| 12498 | 12498 | ||
| 12499 | @item nnml-nov-file-name | 12499 | @item nnml-nov-file-name |
| 12500 | @vindex nnml-nov-file-name | 12500 | @vindex nnml-nov-file-name |
| @@ -12523,7 +12523,7 @@ Commands}). | |||
| 12523 | 12523 | ||
| 12524 | @code{nnmh} is just like @code{nnml}, except that is doesn't generate | 12524 | @code{nnmh} is just like @code{nnml}, except that is doesn't generate |
| 12525 | @sc{nov} databases and it doesn't keep an active file. This makes | 12525 | @sc{nov} databases and it doesn't keep an active file. This makes |
| 12526 | @code{nnmh} a @emph{much} slower backend than @code{nnml}, but it also | 12526 | @code{nnmh} a @emph{much} slower back end than @code{nnml}, but it also |
| 12527 | makes it easier to write procmail scripts for. | 12527 | makes it easier to write procmail scripts for. |
| 12528 | 12528 | ||
| 12529 | Virtual server settings: | 12529 | Virtual server settings: |
| @@ -12554,7 +12554,7 @@ to set this variable to @code{t}. | |||
| 12554 | @cindex mbox folders | 12554 | @cindex mbox folders |
| 12555 | @cindex mail folders | 12555 | @cindex mail folders |
| 12556 | 12556 | ||
| 12557 | @code{nnfolder} is a backend for storing each mail group in a separate | 12557 | @code{nnfolder} is a back end for storing each mail group in a separate |
| 12558 | file. Each file is in the standard Un*x mbox format. @code{nnfolder} | 12558 | file. Each file is in the standard Un*x mbox format. @code{nnfolder} |
| 12559 | will add extra headers to keep track of article numbers and arrival | 12559 | will add extra headers to keep track of article numbers and arrival |
| 12560 | dates. | 12560 | dates. |
| @@ -12610,13 +12610,13 @@ command to make @code{nnfolder} aware of all likely files in | |||
| 12610 | @code{nnfolder-directory}. This only works if you use long file names, | 12610 | @code{nnfolder-directory}. This only works if you use long file names, |
| 12611 | though. | 12611 | though. |
| 12612 | 12612 | ||
| 12613 | @node Comparing Mail Backends | 12613 | @node Comparing Mail Back Ends |
| 12614 | @subsubsection Comparing Mail Backends | 12614 | @subsubsection Comparing Mail Back Ends |
| 12615 | 12615 | ||
| 12616 | First, just for terminology, the @dfn{backend} is the common word for a | 12616 | First, just for terminology, the @dfn{back end} is the common word for a |
| 12617 | low-level access method---a transport, if you will, by which something | 12617 | low-level access method---a transport, if you will, by which something |
| 12618 | is acquired. The sense is that one's mail has to come from somewhere, | 12618 | is acquired. The sense is that one's mail has to come from somewhere, |
| 12619 | and so selection of a suitable backend is required in order to get that | 12619 | and so selection of a suitable back end is required in order to get that |
| 12620 | mail within spitting distance of Gnus. | 12620 | mail within spitting distance of Gnus. |
| 12621 | 12621 | ||
| 12622 | The same concept exists for Usenet itself: Though access to articles is | 12622 | The same concept exists for Usenet itself: Though access to articles is |
| @@ -12625,11 +12625,11 @@ in the world got at Usenet by running a reader on the machine where the | |||
| 12625 | articles lay (the machine which today we call an @sc{nntp} server), and | 12625 | articles lay (the machine which today we call an @sc{nntp} server), and |
| 12626 | access was by the reader stepping into the articles' directory spool | 12626 | access was by the reader stepping into the articles' directory spool |
| 12627 | area directly. One can still select between either the @code{nntp} or | 12627 | area directly. One can still select between either the @code{nntp} or |
| 12628 | @code{nnspool} backends, to select between these methods, if one happens | 12628 | @code{nnspool} back ends, to select between these methods, if one happens |
| 12629 | actually to live on the server (or can see its spool directly, anyway, | 12629 | actually to live on the server (or can see its spool directly, anyway, |
| 12630 | via NFS). | 12630 | via NFS). |
| 12631 | 12631 | ||
| 12632 | The goal in selecting a mail backend is to pick one which | 12632 | The goal in selecting a mail back end is to pick one which |
| 12633 | simultaneously represents a suitable way of dealing with the original | 12633 | simultaneously represents a suitable way of dealing with the original |
| 12634 | format plus leaving mail in a form that is convenient to use in the | 12634 | format plus leaving mail in a form that is convenient to use in the |
| 12635 | future. Here are some high and low points on each: | 12635 | future. Here are some high and low points on each: |
| @@ -12645,7 +12645,7 @@ to make it clear in this instance that this is not the RFC-specified | |||
| 12645 | @samp{From:} header.) Because Emacs and therefore Gnus emanate | 12645 | @samp{From:} header.) Because Emacs and therefore Gnus emanate |
| 12646 | historically from the Unix environment, it is simplest if one does not | 12646 | historically from the Unix environment, it is simplest if one does not |
| 12647 | mess a great deal with the original mailbox format, so if one chooses | 12647 | mess a great deal with the original mailbox format, so if one chooses |
| 12648 | this backend, Gnus' primary activity in getting mail from the real spool | 12648 | this back end, Gnus' primary activity in getting mail from the real spool |
| 12649 | area to Gnus' preferred directory is simply to copy it, with no | 12649 | area to Gnus' preferred directory is simply to copy it, with no |
| 12650 | (appreciable) format change in the process. It is the ``dumbest'' way | 12650 | (appreciable) format change in the process. It is the ``dumbest'' way |
| 12651 | to move mail into availability in the Gnus environment. This makes it | 12651 | to move mail into availability in the Gnus environment. This makes it |
| @@ -12675,7 +12675,7 @@ look at your mail. | |||
| 12675 | 12675 | ||
| 12676 | @item nnml | 12676 | @item nnml |
| 12677 | 12677 | ||
| 12678 | @code{nnml} is the backend which smells the most as though you were | 12678 | @code{nnml} is the back end which smells the most as though you were |
| 12679 | actually operating with an @code{nnspool}-accessed Usenet system. (In | 12679 | actually operating with an @code{nnspool}-accessed Usenet system. (In |
| 12680 | fact, I believe @code{nnml} actually derived from @code{nnspool} code, | 12680 | fact, I believe @code{nnml} actually derived from @code{nnspool} code, |
| 12681 | lo these years ago.) One's mail is taken from the original spool file, | 12681 | lo these years ago.) One's mail is taken from the original spool file, |
| @@ -12697,7 +12697,7 @@ tight, shared filesystems. But if you live on a personal machine where | |||
| 12697 | the filesystem is your own and space is not at a premium, @code{nnml} | 12697 | the filesystem is your own and space is not at a premium, @code{nnml} |
| 12698 | wins big. | 12698 | wins big. |
| 12699 | 12699 | ||
| 12700 | It is also problematic using this backend if you are living in a | 12700 | It is also problematic using this back end if you are living in a |
| 12701 | FAT16-based Windows world, since much space will be wasted on all these | 12701 | FAT16-based Windows world, since much space will be wasted on all these |
| 12702 | tiny files. | 12702 | tiny files. |
| 12703 | 12703 | ||
| @@ -12726,7 +12726,7 @@ out how many messages there are in each separate group. | |||
| 12726 | If you have groups that are expected to have a massive amount of | 12726 | If you have groups that are expected to have a massive amount of |
| 12727 | messages, @code{nnfolder} is not the best choice, but if you receive | 12727 | messages, @code{nnfolder} is not the best choice, but if you receive |
| 12728 | only a moderate amount of mail, @code{nnfolder} is probably the most | 12728 | only a moderate amount of mail, @code{nnfolder} is probably the most |
| 12729 | friendly mail backend all over. | 12729 | friendly mail back end all over. |
| 12730 | 12730 | ||
| 12731 | @end table | 12731 | @end table |
| 12732 | 12732 | ||
| @@ -12755,7 +12755,7 @@ you mad in the end. | |||
| 12755 | So---if web browsers suck at reading discussion forums, why not use Gnus | 12755 | So---if web browsers suck at reading discussion forums, why not use Gnus |
| 12756 | to do it instead? | 12756 | to do it instead? |
| 12757 | 12757 | ||
| 12758 | Gnus has been getting a bit of a collection of backends for providing | 12758 | Gnus has been getting a bit of a collection of back ends for providing |
| 12759 | interfaces to these sources. | 12759 | interfaces to these sources. |
| 12760 | 12760 | ||
| 12761 | @menu | 12761 | @menu |
| @@ -12770,8 +12770,8 @@ All the web sources require Emacs/w3 and the url library to work. | |||
| 12770 | 12770 | ||
| 12771 | The main caveat with all these web sources is that they probably won't | 12771 | The main caveat with all these web sources is that they probably won't |
| 12772 | work for a very long time. Gleaning information from the @sc{html} data | 12772 | work for a very long time. Gleaning information from the @sc{html} data |
| 12773 | is guesswork at best, and when the layout is altered, the Gnus backend | 12773 | is guesswork at best, and when the layout is altered, the Gnus back end |
| 12774 | will fail. If you have reasonably new versions of these backends, | 12774 | will fail. If you have reasonably new versions of these back ends, |
| 12775 | though, you should be ok. | 12775 | though, you should be ok. |
| 12776 | 12776 | ||
| 12777 | One thing all these Web methods have in common is that the Web sources | 12777 | One thing all these Web methods have in common is that the Web sources |
| @@ -12796,7 +12796,7 @@ those, like, Web browsers, and you, like, have to, rilly, like, look at | |||
| 12796 | the commercials, so, like, with Gnus you can do @emph{rad}, rilly, | 12796 | the commercials, so, like, with Gnus you can do @emph{rad}, rilly, |
| 12797 | searches without having to use a browser. | 12797 | searches without having to use a browser. |
| 12798 | 12798 | ||
| 12799 | The @code{nnweb} backend allows an easy interface to the mighty search | 12799 | The @code{nnweb} back end allows an easy interface to the mighty search |
| 12800 | engine. You create an @code{nnweb} group, enter a search pattern, and | 12800 | engine. You create an @code{nnweb} group, enter a search pattern, and |
| 12801 | then enter the group and read the articles like you would any normal | 12801 | then enter the group and read the articles like you would any normal |
| 12802 | group. The @kbd{G w} command in the group buffer (@pxref{Foreign | 12802 | group. The @kbd{G w} command in the group buffer (@pxref{Foreign |
| @@ -12887,7 +12887,7 @@ following in your @file{.gnus.el} file: | |||
| 12887 | '((nnslashdot ""))) | 12887 | '((nnslashdot ""))) |
| 12888 | @end lisp | 12888 | @end lisp |
| 12889 | 12889 | ||
| 12890 | This will make Gnus query the @code{nnslashdot} backend for new comments | 12890 | This will make Gnus query the @code{nnslashdot} back end for new comments |
| 12891 | and groups. The @kbd{F} command will subscribe each new news article as | 12891 | and groups. The @kbd{F} command will subscribe each new news article as |
| 12892 | a new Gnus group, and you can read the comments by entering these | 12892 | a new Gnus group, and you can read the comments by entering these |
| 12893 | groups. (Note that the default subscription method is to subscribe new | 12893 | groups. (Note that the default subscription method is to subscribe new |
| @@ -13005,7 +13005,7 @@ gnus-group-make-warchive-group @key{RET} an_egroup @key{RET} egroups @key{RET} | |||
| 13005 | www.egroups.com @key{RET} your@@email.address @key{RET}}. (Substitute the | 13005 | www.egroups.com @key{RET} your@@email.address @key{RET}}. (Substitute the |
| 13006 | @sc{an_egroup} with the mailing list you subscribed, the | 13006 | @sc{an_egroup} with the mailing list you subscribed, the |
| 13007 | @sc{your@@email.address} with your email address.), or to browse the | 13007 | @sc{your@@email.address} with your email address.), or to browse the |
| 13008 | backend by @kbd{B nnwarchive @key{RET} mail-archive @key{RET}}. | 13008 | back end by @kbd{B nnwarchive @key{RET} mail-archive @key{RET}}. |
| 13009 | 13009 | ||
| 13010 | The following @code{nnwarchive} variables can be altered: | 13010 | The following @code{nnwarchive} variables can be altered: |
| 13011 | 13011 | ||
| @@ -13085,7 +13085,7 @@ names, of course. | |||
| 13085 | This might be an opportune moment to mention @code{ange-ftp} (and its | 13085 | This might be an opportune moment to mention @code{ange-ftp} (and its |
| 13086 | successor @code{efs}), that most wonderful of all wonderful Emacs | 13086 | successor @code{efs}), that most wonderful of all wonderful Emacs |
| 13087 | packages. When I wrote @code{nndir}, I didn't think much about it---a | 13087 | packages. When I wrote @code{nndir}, I didn't think much about it---a |
| 13088 | backend to read directories. Big deal. | 13088 | back end to read directories. Big deal. |
| 13089 | 13089 | ||
| 13090 | @code{ange-ftp} changes that picture dramatically. For instance, if you | 13090 | @code{ange-ftp} changes that picture dramatically. For instance, if you |
| 13091 | enter the @code{ange-ftp} file name | 13091 | enter the @code{ange-ftp} file name |
| @@ -13095,7 +13095,7 @@ directory over at @samp{sina} as a newsgroup. Distributed news ahoy! | |||
| 13095 | 13095 | ||
| 13096 | @code{nndir} will use @sc{nov} files if they are present. | 13096 | @code{nndir} will use @sc{nov} files if they are present. |
| 13097 | 13097 | ||
| 13098 | @code{nndir} is a ``read-only'' backend---you can't delete or expire | 13098 | @code{nndir} is a ``read-only'' back end---you can't delete or expire |
| 13099 | articles with this method. You can use @code{nnmh} or @code{nnml} for | 13099 | articles with this method. You can use @code{nnmh} or @code{nnml} for |
| 13100 | whatever you use @code{nndir} for, so you could switch to any of those | 13100 | whatever you use @code{nndir} for, so you could switch to any of those |
| 13101 | methods if you feel the need to have a non-read-only @code{nndir}. | 13101 | methods if you feel the need to have a non-read-only @code{nndir}. |
| @@ -13105,7 +13105,7 @@ methods if you feel the need to have a non-read-only @code{nndir}. | |||
| 13105 | @subsection Anything Groups | 13105 | @subsection Anything Groups |
| 13106 | @cindex nneething | 13106 | @cindex nneething |
| 13107 | 13107 | ||
| 13108 | From the @code{nndir} backend (which reads a single spool-like | 13108 | From the @code{nndir} back end (which reads a single spool-like |
| 13109 | directory), it's just a hop and a skip to @code{nneething}, which | 13109 | directory), it's just a hop and a skip to @code{nneething}, which |
| 13110 | pretends that any arbitrary directory is a newsgroup. Strange, but | 13110 | pretends that any arbitrary directory is a newsgroup. Strange, but |
| 13111 | true. | 13111 | true. |
| @@ -13224,7 +13224,7 @@ it---it will simply, like, let you use the file as the basis for a | |||
| 13224 | group. And that's it. | 13224 | group. And that's it. |
| 13225 | 13225 | ||
| 13226 | If you have some old archived articles that you want to insert into your | 13226 | If you have some old archived articles that you want to insert into your |
| 13227 | new & spiffy Gnus mail backend, @code{nndoc} can probably help you with | 13227 | new & spiffy Gnus mail back end, @code{nndoc} can probably help you with |
| 13228 | that. Say you have an old @file{RMAIL} file with mail that you now want | 13228 | that. Say you have an old @file{RMAIL} file with mail that you now want |
| 13229 | to split into your new @code{nnml} groups. You look at that file using | 13229 | to split into your new @code{nnml} groups. You look at that file using |
| 13230 | @code{nndoc} (using the @kbd{G f} command in the group buffer | 13230 | @code{nndoc} (using the @kbd{G f} command in the group buffer |
| @@ -13447,7 +13447,7 @@ You transfer the packet home. Rail, boat, car or modem will do fine. | |||
| 13447 | You put the packet in your home directory. | 13447 | You put the packet in your home directory. |
| 13448 | 13448 | ||
| 13449 | @item | 13449 | @item |
| 13450 | You fire up Gnus on your home machine using the @code{nnsoup} backend as | 13450 | You fire up Gnus on your home machine using the @code{nnsoup} back end as |
| 13451 | the native or secondary server. | 13451 | the native or secondary server. |
| 13452 | 13452 | ||
| 13453 | @item | 13453 | @item |
| @@ -13474,7 +13474,7 @@ reading and Gnus for packing/sending these @sc{soup} packets. | |||
| 13474 | 13474 | ||
| 13475 | @menu | 13475 | @menu |
| 13476 | * SOUP Commands:: Commands for creating and sending @sc{soup} packets | 13476 | * SOUP Commands:: Commands for creating and sending @sc{soup} packets |
| 13477 | * SOUP Groups:: A backend for reading @sc{soup} packets. | 13477 | * SOUP Groups:: A back end for reading @sc{soup} packets. |
| 13478 | * SOUP Replies:: How to enable @code{nnsoup} to take over mail and news. | 13478 | * SOUP Replies:: How to enable @code{nnsoup} to take over mail and news. |
| 13479 | @end menu | 13479 | @end menu |
| 13480 | 13480 | ||
| @@ -13569,7 +13569,7 @@ Regular expression matching @sc{soup} reply packets in | |||
| 13569 | @subsubsection @sc{soup} Groups | 13569 | @subsubsection @sc{soup} Groups |
| 13570 | @cindex nnsoup | 13570 | @cindex nnsoup |
| 13571 | 13571 | ||
| 13572 | @code{nnsoup} is the backend for reading @sc{soup} packets. It will | 13572 | @code{nnsoup} is the back end for reading @sc{soup} packets. It will |
| 13573 | read incoming packets, unpack them, and put them in a directory where | 13573 | read incoming packets, unpack them, and put them in a directory where |
| 13574 | you can read them at leisure. | 13574 | you can read them at leisure. |
| 13575 | 13575 | ||
| @@ -13668,9 +13668,9 @@ system you just use the first line. If you only want mail to be | |||
| 13668 | 13668 | ||
| 13669 | If your local @code{nntp} server doesn't allow posting, for some reason | 13669 | If your local @code{nntp} server doesn't allow posting, for some reason |
| 13670 | or other, you can post using one of the numerous mail-to-news gateways. | 13670 | or other, you can post using one of the numerous mail-to-news gateways. |
| 13671 | The @code{nngateway} backend provides the interface. | 13671 | The @code{nngateway} back end provides the interface. |
| 13672 | 13672 | ||
| 13673 | Note that you can't read anything from this backend---it can only be | 13673 | Note that you can't read anything from this back end---it can only be |
| 13674 | used to post with. | 13674 | used to post with. |
| 13675 | 13675 | ||
| 13676 | Server variables: | 13676 | Server variables: |
| @@ -14125,7 +14125,7 @@ It's possible to set @code{nnimap-split-rule} to | |||
| 14125 | splitting. @xref{Fancy Mail Splitting}. | 14125 | splitting. @xref{Fancy Mail Splitting}. |
| 14126 | 14126 | ||
| 14127 | However, to be able to have different fancy split rules for nnmail and | 14127 | However, to be able to have different fancy split rules for nnmail and |
| 14128 | nnimap backends you can set @code{nnimap-split-rule} to | 14128 | nnimap back ends you can set @code{nnimap-split-rule} to |
| 14129 | @code{nnimap-split-fancy} and define the nnimap specific fancy split | 14129 | @code{nnimap-split-fancy} and define the nnimap specific fancy split |
| 14130 | rule in @code{nnimap-split-fancy}. | 14130 | rule in @code{nnimap-split-fancy}. |
| 14131 | 14131 | ||
| @@ -14270,11 +14270,11 @@ you enter it---it'll have much the same effect. | |||
| 14270 | 14270 | ||
| 14271 | @code{nnvirtual} can have both mail and news groups as component groups. | 14271 | @code{nnvirtual} can have both mail and news groups as component groups. |
| 14272 | When responding to articles in @code{nnvirtual} groups, @code{nnvirtual} | 14272 | When responding to articles in @code{nnvirtual} groups, @code{nnvirtual} |
| 14273 | has to ask the backend of the component group the article comes from | 14273 | has to ask the back end of the component group the article comes from |
| 14274 | whether it is a news or mail backend. However, when you do a @kbd{^}, | 14274 | whether it is a news or mail back end. However, when you do a @kbd{^}, |
| 14275 | there is typically no sure way for the component backend to know this, | 14275 | there is typically no sure way for the component back end to know this, |
| 14276 | and in that case @code{nnvirtual} tells Gnus that the article came from a | 14276 | and in that case @code{nnvirtual} tells Gnus that the article came from a |
| 14277 | not-news backend. (Just to be on the safe side.) | 14277 | not-news back end. (Just to be on the safe side.) |
| 14278 | 14278 | ||
| 14279 | @kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups} | 14279 | @kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups} |
| 14280 | line from the article you respond to in these cases. | 14280 | line from the article you respond to in these cases. |
| @@ -14287,7 +14287,7 @@ line from the article you respond to in these cases. | |||
| 14287 | @cindex kibozing | 14287 | @cindex kibozing |
| 14288 | 14288 | ||
| 14289 | @dfn{Kibozing} is defined by @sc{oed} as ``grepping through (parts of) | 14289 | @dfn{Kibozing} is defined by @sc{oed} as ``grepping through (parts of) |
| 14290 | the news feed''. @code{nnkiboze} is a backend that will do this for | 14290 | the news feed''. @code{nnkiboze} is a back end that will do this for |
| 14291 | you. Oh joy! Now you can grind any @sc{nntp} server down to a halt | 14291 | you. Oh joy! Now you can grind any @sc{nntp} server down to a halt |
| 14292 | with useless requests! Oh happiness! | 14292 | with useless requests! Oh happiness! |
| 14293 | 14293 | ||
| @@ -14447,7 +14447,7 @@ the Agent. | |||
| 14447 | 14447 | ||
| 14448 | @item | 14448 | @item |
| 14449 | Decide which servers should be covered by the Agent. If you have a mail | 14449 | Decide which servers should be covered by the Agent. If you have a mail |
| 14450 | backend, it would probably be nonsensical to have it covered by the | 14450 | back end, it would probably be nonsensical to have it covered by the |
| 14451 | Agent. Go to the server buffer (@kbd{^} in the group buffer) and press | 14451 | Agent. Go to the server buffer (@kbd{^} in the group buffer) and press |
| 14452 | @kbd{J a} the server (or servers) that you wish to have covered by the | 14452 | @kbd{J a} the server (or servers) that you wish to have covered by the |
| 14453 | Agent (@pxref{Server Agent Commands}). This will typically be only the | 14453 | Agent (@pxref{Server Agent Commands}). This will typically be only the |
| @@ -15005,7 +15005,7 @@ unread, ticked and dormant articles will be kept indefinitely. | |||
| 15005 | @node Agent and IMAP | 15005 | @node Agent and IMAP |
| 15006 | @subsection Agent and IMAP | 15006 | @subsection Agent and IMAP |
| 15007 | 15007 | ||
| 15008 | The Agent work with any Gnus backend, including nnimap. However, | 15008 | The Agent work with any Gnus back end, including nnimap. However, |
| 15009 | since there are some conceptual differences between @sc{nntp} and | 15009 | since there are some conceptual differences between @sc{nntp} and |
| 15010 | @sc{imap}, this section (should) provide you with some information to | 15010 | @sc{imap}, this section (should) provide you with some information to |
| 15011 | make Gnus Agent work smoother as a @sc{imap} Disconnected Mode client. | 15011 | make Gnus Agent work smoother as a @sc{imap} Disconnected Mode client. |
| @@ -15778,7 +15778,7 @@ the match, we get the score added if the article has less than 4 lines. | |||
| 15778 | (It's easy to get confused and think it's the other way around. But | 15778 | (It's easy to get confused and think it's the other way around. But |
| 15779 | it's not. I think.) | 15779 | it's not. I think.) |
| 15780 | 15780 | ||
| 15781 | When matching on @code{Lines}, be careful because some backends (like | 15781 | When matching on @code{Lines}, be careful because some back ends (like |
| 15782 | @code{nndir}) do not generate @code{Lines} header, so every article ends | 15782 | @code{nndir}) do not generate @code{Lines} header, so every article ends |
| 15783 | up being marked as having 0 lines. This can lead to strange results if | 15783 | up being marked as having 0 lines. This can lead to strange results if |
| 15784 | you happen to lower score of the articles with few lines. | 15784 | you happen to lower score of the articles with few lines. |
| @@ -18744,16 +18744,16 @@ shut up, but will flash so many messages it will make your head swim. | |||
| 18744 | @item gnus-verbose-backends | 18744 | @item gnus-verbose-backends |
| 18745 | @vindex gnus-verbose-backends | 18745 | @vindex gnus-verbose-backends |
| 18746 | This variable works the same way as @code{gnus-verbose}, but it applies | 18746 | This variable works the same way as @code{gnus-verbose}, but it applies |
| 18747 | to the Gnus backends instead of Gnus proper. | 18747 | to the Gnus back ends instead of Gnus proper. |
| 18748 | 18748 | ||
| 18749 | @item nnheader-max-head-length | 18749 | @item nnheader-max-head-length |
| 18750 | @vindex nnheader-max-head-length | 18750 | @vindex nnheader-max-head-length |
| 18751 | When the backends read straight heads of articles, they all try to read | 18751 | When the back ends read straight heads of articles, they all try to read |
| 18752 | as little as possible. This variable (default 4096) specifies | 18752 | as little as possible. This variable (default 4096) specifies |
| 18753 | the absolute max length the backends will try to read before giving up | 18753 | the absolute max length the back ends will try to read before giving up |
| 18754 | on finding a separator line between the head and the body. If this | 18754 | on finding a separator line between the head and the body. If this |
| 18755 | variable is @code{nil}, there is no upper read bound. If it is | 18755 | variable is @code{nil}, there is no upper read bound. If it is |
| 18756 | @code{t}, the backends won't try to read the articles piece by piece, | 18756 | @code{t}, the back ends won't try to read the articles piece by piece, |
| 18757 | but read the entire articles. This makes sense with some versions of | 18757 | but read the entire articles. This makes sense with some versions of |
| 18758 | @code{ange-ftp} or @code{efs}. | 18758 | @code{ange-ftp} or @code{efs}. |
| 18759 | 18759 | ||
| @@ -18959,8 +18959,8 @@ keep track of millions of people who post? | |||
| 18959 | Gnus offers no real solutions to these questions, but I would very much | 18959 | Gnus offers no real solutions to these questions, but I would very much |
| 18960 | like to see Gnus being used as a testing ground for new methods of | 18960 | like to see Gnus being used as a testing ground for new methods of |
| 18961 | reading and fetching news. Expanding on @sc{Umeda}-san's wise decision | 18961 | reading and fetching news. Expanding on @sc{Umeda}-san's wise decision |
| 18962 | to separate the newsreader from the backends, Gnus now offers a simple | 18962 | to separate the newsreader from the back ends, Gnus now offers a simple |
| 18963 | interface for anybody who wants to write new backends for fetching mail | 18963 | interface for anybody who wants to write new back ends for fetching mail |
| 18964 | and news from different sources. I have added hooks for customizations | 18964 | and news from different sources. I have added hooks for customizations |
| 18965 | everywhere I could imagine it being useful. By doing so, I'm inviting | 18965 | everywhere I could imagine it being useful. By doing so, I'm inviting |
| 18966 | every one of you to explore and invent. | 18966 | every one of you to explore and invent. |
| @@ -19121,7 +19121,7 @@ Emacsen. | |||
| 19121 | 19121 | ||
| 19122 | Gnus is developed in a two-phased cycle. The first phase involves much | 19122 | Gnus is developed in a two-phased cycle. The first phase involves much |
| 19123 | discussion on the @samp{ding@@gnus.org} mailing list, where people | 19123 | discussion on the @samp{ding@@gnus.org} mailing list, where people |
| 19124 | propose changes and new features, post patches and new backends. This | 19124 | propose changes and new features, post patches and new back ends. This |
| 19125 | phase is called the @dfn{alpha} phase, since the Gnusae released in this | 19125 | phase is called the @dfn{alpha} phase, since the Gnusae released in this |
| 19126 | phase are @dfn{alpha releases}, or (perhaps more commonly in other | 19126 | phase are @dfn{alpha releases}, or (perhaps more commonly in other |
| 19127 | circles) @dfn{snapshots}. During this phase, Gnus is assumed to be | 19127 | circles) @dfn{snapshots}. During this phase, Gnus is assumed to be |
| @@ -19512,7 +19512,7 @@ You can combine groups into virtual groups (@pxref{Virtual Groups}). | |||
| 19512 | 19512 | ||
| 19513 | @item | 19513 | @item |
| 19514 | You can read a number of different mail formats (@pxref{Getting Mail}). | 19514 | You can read a number of different mail formats (@pxref{Getting Mail}). |
| 19515 | All the mail backends implement a convenient mail expiry scheme | 19515 | All the mail back ends implement a convenient mail expiry scheme |
| 19516 | (@pxref{Expiring Mail}). | 19516 | (@pxref{Expiring Mail}). |
| 19517 | 19517 | ||
| 19518 | @item | 19518 | @item |
| @@ -19701,7 +19701,7 @@ news batches, ClariNet briefs collections, and just about everything | |||
| 19701 | else (@pxref{Document Groups}). | 19701 | else (@pxref{Document Groups}). |
| 19702 | 19702 | ||
| 19703 | @item | 19703 | @item |
| 19704 | Gnus has a new backend (@code{nnsoup}) to create/read SOUP packets | 19704 | Gnus has a new back end (@code{nnsoup}) to create/read SOUP packets |
| 19705 | (@pxref{SOUP}). | 19705 | (@pxref{SOUP}). |
| 19706 | 19706 | ||
| 19707 | @item | 19707 | @item |
| @@ -19739,7 +19739,7 @@ All functions for hiding article elements are now toggles. | |||
| 19739 | Article headers can be buttonized (@pxref{Article Washing}). | 19739 | Article headers can be buttonized (@pxref{Article Washing}). |
| 19740 | 19740 | ||
| 19741 | @item | 19741 | @item |
| 19742 | All mail backends support fetching articles by @code{Message-ID}. | 19742 | All mail back ends support fetching articles by @code{Message-ID}. |
| 19743 | 19743 | ||
| 19744 | @item | 19744 | @item |
| 19745 | Duplicate mail can now be treated properly (@pxref{Duplicates}). | 19745 | Duplicate mail can now be treated properly (@pxref{Duplicates}). |
| @@ -19958,11 +19958,11 @@ Process mark sets can be pushed and popped (@pxref{Setting Process | |||
| 19958 | Marks}). | 19958 | Marks}). |
| 19959 | 19959 | ||
| 19960 | @item | 19960 | @item |
| 19961 | A new mail-to-news backend makes it possible to post even when the @sc{nntp} | 19961 | A new mail-to-news back end makes it possible to post even when the @sc{nntp} |
| 19962 | server doesn't allow posting (@pxref{Mail-To-News Gateways}). | 19962 | server doesn't allow posting (@pxref{Mail-To-News Gateways}). |
| 19963 | 19963 | ||
| 19964 | @item | 19964 | @item |
| 19965 | A new backend for reading searches from Web search engines | 19965 | A new back end for reading searches from Web search engines |
| 19966 | (@dfn{DejaNews}, @dfn{Alta Vista}, @dfn{InReference}) has been added | 19966 | (@dfn{DejaNews}, @dfn{Alta Vista}, @dfn{InReference}) has been added |
| 19967 | (@pxref{Web Searches}). | 19967 | (@pxref{Web Searches}). |
| 19968 | 19968 | ||
| @@ -20015,7 +20015,7 @@ added. A plethora of new commands and modes have been added. See | |||
| 20015 | @pxref{Gnus Unplugged} for the full story. | 20015 | @pxref{Gnus Unplugged} for the full story. |
| 20016 | 20016 | ||
| 20017 | @item | 20017 | @item |
| 20018 | The @code{nndraft} backend has returned, but works differently than | 20018 | The @code{nndraft} back end has returned, but works differently than |
| 20019 | before. All Message buffers are now also articles in the @code{nndraft} | 20019 | before. All Message buffers are now also articles in the @code{nndraft} |
| 20020 | group, which is created automatically. | 20020 | group, which is created automatically. |
| 20021 | 20021 | ||
| @@ -20124,7 +20124,7 @@ been added. | |||
| 20124 | updated by the @code{gnus-start-date-timer} command. | 20124 | updated by the @code{gnus-start-date-timer} command. |
| 20125 | 20125 | ||
| 20126 | @item | 20126 | @item |
| 20127 | Web listserv archives can be read with the @code{nnlistserv} backend. | 20127 | Web listserv archives can be read with the @code{nnlistserv} back end. |
| 20128 | 20128 | ||
| 20129 | @item | 20129 | @item |
| 20130 | Old dejanews archives can now be read by @code{nnweb}. | 20130 | Old dejanews archives can now be read by @code{nnweb}. |
| @@ -20179,7 +20179,7 @@ of variables starting with @code{gnus-treat-} have been added. | |||
| 20179 | @item The Gnus posting styles have been redone again and now works in a | 20179 | @item The Gnus posting styles have been redone again and now works in a |
| 20180 | subtly different manner. | 20180 | subtly different manner. |
| 20181 | 20181 | ||
| 20182 | @item New web-based backends have been added: @code{nnslashdot}, | 20182 | @item New web-based back ends have been added: @code{nnslashdot}, |
| 20183 | @code{nnwarchive} and @code{nnultimate}. nnweb has been revamped, | 20183 | @code{nnwarchive} and @code{nnultimate}. nnweb has been revamped, |
| 20184 | again, to keep up with ever-changing layouts. | 20184 | again, to keep up with ever-changing layouts. |
| 20185 | 20185 | ||
| @@ -20302,26 +20302,26 @@ Send a mail to the person who has written what you are reading. | |||
| 20302 | Post an article to the current newsgroup responding to the article you | 20302 | Post an article to the current newsgroup responding to the article you |
| 20303 | are reading. | 20303 | are reading. |
| 20304 | 20304 | ||
| 20305 | @item backend | 20305 | @item back end |
| 20306 | @cindex backend | 20306 | @cindex back end |
| 20307 | Gnus gets fed articles from a number of backends, both news and mail | 20307 | Gnus gets fed articles from a number of back ends, both news and mail |
| 20308 | backends. Gnus does not handle the underlying media, so to speak---this | 20308 | back ends. Gnus does not handle the underlying media, so to speak---this |
| 20309 | is all done by the backends. | 20309 | is all done by the back ends. |
| 20310 | 20310 | ||
| 20311 | @item native | 20311 | @item native |
| 20312 | @cindex native | 20312 | @cindex native |
| 20313 | Gnus will always use one method (and backend) as the @dfn{native}, or | 20313 | Gnus will always use one method (and back end) as the @dfn{native}, or |
| 20314 | default, way of getting news. | 20314 | default, way of getting news. |
| 20315 | 20315 | ||
| 20316 | @item foreign | 20316 | @item foreign |
| 20317 | @cindex foreign | 20317 | @cindex foreign |
| 20318 | You can also have any number of foreign groups active at the same time. | 20318 | You can also have any number of foreign groups active at the same time. |
| 20319 | These are groups that use non-native non-secondary backends for getting | 20319 | These are groups that use non-native non-secondary back ends for getting |
| 20320 | news. | 20320 | news. |
| 20321 | 20321 | ||
| 20322 | @item secondary | 20322 | @item secondary |
| 20323 | @cindex secondary | 20323 | @cindex secondary |
| 20324 | Secondary backends are somewhere half-way between being native and being | 20324 | Secondary back ends are somewhere half-way between being native and being |
| 20325 | foreign, but they mostly act like they are native. | 20325 | foreign, but they mostly act like they are native. |
| 20326 | 20326 | ||
| 20327 | @item article | 20327 | @item article |
| @@ -20357,7 +20357,7 @@ collection of @sc{nov} lines. | |||
| 20357 | 20357 | ||
| 20358 | @item @sc{nov} | 20358 | @item @sc{nov} |
| 20359 | @cindex nov | 20359 | @cindex nov |
| 20360 | When Gnus enters a group, it asks the backend for the headers of all | 20360 | When Gnus enters a group, it asks the back end for the headers of all |
| 20361 | unread articles in the group. Most servers support the News OverView | 20361 | unread articles in the group. Most servers support the News OverView |
| 20362 | format, which is more compact and much faster to read and parse than the | 20362 | format, which is more compact and much faster to read and parse than the |
| 20363 | normal @sc{head} format. | 20363 | normal @sc{head} format. |
| @@ -20404,7 +20404,7 @@ A machine one can connect to and get news (or mail) from. | |||
| 20404 | 20404 | ||
| 20405 | @item select method | 20405 | @item select method |
| 20406 | @cindex select method | 20406 | @cindex select method |
| 20407 | A structure that specifies the backend, the server and the virtual | 20407 | A structure that specifies the back end, the server and the virtual |
| 20408 | server settings. | 20408 | server settings. |
| 20409 | 20409 | ||
| 20410 | @item virtual server | 20410 | @item virtual server |
| @@ -20680,13 +20680,13 @@ it. | |||
| 20680 | 20680 | ||
| 20681 | You can never expect the internals of a program not to change, but I | 20681 | You can never expect the internals of a program not to change, but I |
| 20682 | will be defining (in some details) the interface between Gnus and its | 20682 | will be defining (in some details) the interface between Gnus and its |
| 20683 | backends (this is written in stone), the format of the score files | 20683 | back ends (this is written in stone), the format of the score files |
| 20684 | (ditto), data structures (some are less likely to change than others) | 20684 | (ditto), data structures (some are less likely to change than others) |
| 20685 | and general methods of operation. | 20685 | and general methods of operation. |
| 20686 | 20686 | ||
| 20687 | @menu | 20687 | @menu |
| 20688 | * Gnus Utility Functions:: Common functions and variable to use. | 20688 | * Gnus Utility Functions:: Common functions and variable to use. |
| 20689 | * Backend Interface:: How Gnus communicates with the servers. | 20689 | * Back End Interface:: How Gnus communicates with the servers. |
| 20690 | * Score File Syntax:: A BNF definition of the score file standard. | 20690 | * Score File Syntax:: A BNF definition of the score file standard. |
| 20691 | * Headers:: How Gnus stores headers internally. | 20691 | * Headers:: How Gnus stores headers internally. |
| 20692 | * Ranges:: A handy format for storing mucho numbers. | 20692 | * Ranges:: A handy format for storing mucho numbers. |
| @@ -20762,7 +20762,7 @@ Says whether @var{group} is read-only or not. | |||
| 20762 | 20762 | ||
| 20763 | @item gnus-news-group-p | 20763 | @item gnus-news-group-p |
| 20764 | @findex gnus-news-group-p | 20764 | @findex gnus-news-group-p |
| 20765 | Says whether @var{group} came from a news backend. | 20765 | Says whether @var{group} came from a news back end. |
| 20766 | 20766 | ||
| 20767 | @item gnus-ephemeral-group-p | 20767 | @item gnus-ephemeral-group-p |
| 20768 | @findex gnus-ephemeral-group-p | 20768 | @findex gnus-ephemeral-group-p |
| @@ -20803,7 +20803,7 @@ Narrows the current buffer to the body of the article. | |||
| 20803 | 20803 | ||
| 20804 | @item gnus-check-backend-function | 20804 | @item gnus-check-backend-function |
| 20805 | @findex gnus-check-backend-function | 20805 | @findex gnus-check-backend-function |
| 20806 | Takes two parameters, @var{function} and @var{group}. If the backend | 20806 | Takes two parameters, @var{function} and @var{group}. If the back end |
| 20807 | @var{group} comes from supports @var{function}, return non-@code{nil}. | 20807 | @var{group} comes from supports @var{function}, return non-@code{nil}. |
| 20808 | 20808 | ||
| 20809 | @lisp | 20809 | @lisp |
| @@ -20818,19 +20818,19 @@ Prompts the user for a select method. | |||
| 20818 | @end table | 20818 | @end table |
| 20819 | 20819 | ||
| 20820 | 20820 | ||
| 20821 | @node Backend Interface | 20821 | @node Back End Interface |
| 20822 | @subsection Backend Interface | 20822 | @subsection Back End Interface |
| 20823 | 20823 | ||
| 20824 | Gnus doesn't know anything about @sc{nntp}, spools, mail or virtual | 20824 | Gnus doesn't know anything about @sc{nntp}, spools, mail or virtual |
| 20825 | groups. It only knows how to talk to @dfn{virtual servers}. A virtual | 20825 | groups. It only knows how to talk to @dfn{virtual servers}. A virtual |
| 20826 | server is a @dfn{backend} and some @dfn{backend variables}. As examples | 20826 | server is a @dfn{back end} and some @dfn{back end variables}. As examples |
| 20827 | of the first, we have @code{nntp}, @code{nnspool} and @code{nnmbox}. As | 20827 | of the first, we have @code{nntp}, @code{nnspool} and @code{nnmbox}. As |
| 20828 | examples of the latter we have @code{nntp-port-number} and | 20828 | examples of the latter we have @code{nntp-port-number} and |
| 20829 | @code{nnmbox-directory}. | 20829 | @code{nnmbox-directory}. |
| 20830 | 20830 | ||
| 20831 | When Gnus asks for information from a backend---say @code{nntp}---on | 20831 | When Gnus asks for information from a back end---say @code{nntp}---on |
| 20832 | something, it will normally include a virtual server name in the | 20832 | something, it will normally include a virtual server name in the |
| 20833 | function parameters. (If not, the backend should use the ``current'' | 20833 | function parameters. (If not, the back end should use the ``current'' |
| 20834 | virtual server.) For instance, @code{nntp-request-list} takes a virtual | 20834 | virtual server.) For instance, @code{nntp-request-list} takes a virtual |
| 20835 | server as its only (optional) parameter. If this virtual server hasn't | 20835 | server as its only (optional) parameter. If this virtual server hasn't |
| 20836 | been opened, the function should fail. | 20836 | been opened, the function should fail. |
| @@ -20847,8 +20847,8 @@ name. Take this example: | |||
| 20847 | Here the virtual server name is @samp{odd-one} while the name of | 20847 | Here the virtual server name is @samp{odd-one} while the name of |
| 20848 | the physical server is @samp{ifi.uio.no}. | 20848 | the physical server is @samp{ifi.uio.no}. |
| 20849 | 20849 | ||
| 20850 | The backends should be able to switch between several virtual servers. | 20850 | The back ends should be able to switch between several virtual servers. |
| 20851 | The standard backends implement this by keeping an alist of virtual | 20851 | The standard back ends implement this by keeping an alist of virtual |
| 20852 | server environments that they pull down/push up when needed. | 20852 | server environments that they pull down/push up when needed. |
| 20853 | 20853 | ||
| 20854 | There are two groups of interface functions: @dfn{required functions}, | 20854 | There are two groups of interface functions: @dfn{required functions}, |
| @@ -20863,37 +20863,37 @@ talk about @dfn{return value}, I talk about the function value returned by | |||
| 20863 | the function call. Functions that fail should return @code{nil} as the | 20863 | the function call. Functions that fail should return @code{nil} as the |
| 20864 | return value. | 20864 | return value. |
| 20865 | 20865 | ||
| 20866 | Some backends could be said to be @dfn{server-forming} backends, and | 20866 | Some back ends could be said to be @dfn{server-forming} back ends, and |
| 20867 | some might be said not to be. The latter are backends that generally | 20867 | some might be said not to be. The latter are back ends that generally |
| 20868 | only operate on one group at a time, and have no concept of ``server'' | 20868 | only operate on one group at a time, and have no concept of ``server'' |
| 20869 | -- they have a group, and they deliver info on that group and nothing | 20869 | -- they have a group, and they deliver info on that group and nothing |
| 20870 | more. | 20870 | more. |
| 20871 | 20871 | ||
| 20872 | In the examples and definitions I will refer to the imaginary backend | 20872 | In the examples and definitions I will refer to the imaginary back end |
| 20873 | @code{nnchoke}. | 20873 | @code{nnchoke}. |
| 20874 | 20874 | ||
| 20875 | @cindex @code{nnchoke} | 20875 | @cindex @code{nnchoke} |
| 20876 | 20876 | ||
| 20877 | @menu | 20877 | @menu |
| 20878 | * Required Backend Functions:: Functions that must be implemented. | 20878 | * Required Back End Functions:: Functions that must be implemented. |
| 20879 | * Optional Backend Functions:: Functions that need not be implemented. | 20879 | * Optional Back End Functions:: Functions that need not be implemented. |
| 20880 | * Error Messaging:: How to get messages and report errors. | 20880 | * Error Messaging:: How to get messages and report errors. |
| 20881 | * Writing New Backends:: Extending old backends. | 20881 | * Writing New Back Ends:: Extending old back ends. |
| 20882 | * Hooking New Backends Into Gnus:: What has to be done on the Gnus end. | 20882 | * Hooking New Back Ends Into Gnus:: What has to be done on the Gnus end. |
| 20883 | * Mail-like Backends:: Some tips on mail backends. | 20883 | * Mail-like Back Ends:: Some tips on mail back ends. |
| 20884 | @end menu | 20884 | @end menu |
| 20885 | 20885 | ||
| 20886 | 20886 | ||
| 20887 | @node Required Backend Functions | 20887 | @node Required Back End Functions |
| 20888 | @subsubsection Required Backend Functions | 20888 | @subsubsection Required Back End Functions |
| 20889 | 20889 | ||
| 20890 | @table @code | 20890 | @table @code |
| 20891 | 20891 | ||
| 20892 | @item (nnchoke-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD) | 20892 | @item (nnchoke-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD) |
| 20893 | 20893 | ||
| 20894 | @var{articles} is either a range of article numbers or a list of | 20894 | @var{articles} is either a range of article numbers or a list of |
| 20895 | @code{Message-ID}s. Current backends do not fully support either---only | 20895 | @code{Message-ID}s. Current back ends do not fully support either---only |
| 20896 | sequences (lists) of article numbers, and most backends do not support | 20896 | sequences (lists) of article numbers, and most back ends do not support |
| 20897 | retrieval of @code{Message-ID}s. But they should try for both. | 20897 | retrieval of @code{Message-ID}s. But they should try for both. |
| 20898 | 20898 | ||
| 20899 | The result data should either be HEADs or NOV lines, and the result | 20899 | The result data should either be HEADs or NOV lines, and the result |
| @@ -20905,7 +20905,7 @@ If @var{fetch-old} is non-@code{nil} it says to try fetching "extra | |||
| 20905 | headers", in some meaning of the word. This is generally done by | 20905 | headers", in some meaning of the word. This is generally done by |
| 20906 | fetching (at most) @var{fetch-old} extra headers less than the smallest | 20906 | fetching (at most) @var{fetch-old} extra headers less than the smallest |
| 20907 | article number in @code{articles}, and filling the gaps as well. The | 20907 | article number in @code{articles}, and filling the gaps as well. The |
| 20908 | presence of this parameter can be ignored if the backend finds it | 20908 | presence of this parameter can be ignored if the back end finds it |
| 20909 | cumbersome to follow the request. If this is non-@code{nil} and not a | 20909 | cumbersome to follow the request. If this is non-@code{nil} and not a |
| 20910 | number, do maximum fetches. | 20910 | number, do maximum fetches. |
| 20911 | 20911 | ||
| @@ -20959,7 +20959,7 @@ For a closer look at what should be in those fields, | |||
| 20959 | @var{server} is here the virtual server name. @var{definitions} is a | 20959 | @var{server} is here the virtual server name. @var{definitions} is a |
| 20960 | list of @code{(VARIABLE VALUE)} pairs that define this virtual server. | 20960 | list of @code{(VARIABLE VALUE)} pairs that define this virtual server. |
| 20961 | 20961 | ||
| 20962 | If the server can't be opened, no error should be signaled. The backend | 20962 | If the server can't be opened, no error should be signaled. The back end |
| 20963 | may then choose to refuse further attempts at connecting to this | 20963 | may then choose to refuse further attempts at connecting to this |
| 20964 | server. In fact, it should do so. | 20964 | server. In fact, it should do so. |
| 20965 | 20965 | ||
| @@ -20978,8 +20978,8 @@ There should be no data returned. | |||
| 20978 | 20978 | ||
| 20979 | @item (nnchoke-request-close) | 20979 | @item (nnchoke-request-close) |
| 20980 | 20980 | ||
| 20981 | Close connection to all servers and free all resources that the backend | 20981 | Close connection to all servers and free all resources that the back end |
| 20982 | have reserved. All buffers that have been created by that backend | 20982 | have reserved. All buffers that have been created by that back end |
| 20983 | should be killed. (Not the @code{nntp-server-buffer}, though.) This | 20983 | should be killed. (Not the @code{nntp-server-buffer}, though.) This |
| 20984 | function is generally only called when Gnus is shutting down. | 20984 | function is generally only called when Gnus is shutting down. |
| 20985 | 20985 | ||
| @@ -21057,7 +21057,7 @@ info = "211 " 3* [ <number> " " ] <string> | |||
| 21057 | @item (nnchoke-close-group GROUP &optional SERVER) | 21057 | @item (nnchoke-close-group GROUP &optional SERVER) |
| 21058 | 21058 | ||
| 21059 | Close @var{group} and free any resources connected to it. This will be | 21059 | Close @var{group} and free any resources connected to it. This will be |
| 21060 | a no-op on most backends. | 21060 | a no-op on most back ends. |
| 21061 | 21061 | ||
| 21062 | There should be no data returned. | 21062 | There should be no data returned. |
| 21063 | 21063 | ||
| @@ -21103,8 +21103,8 @@ There should be no result data from this function. | |||
| 21103 | @end table | 21103 | @end table |
| 21104 | 21104 | ||
| 21105 | 21105 | ||
| 21106 | @node Optional Backend Functions | 21106 | @node Optional Back End Functions |
| 21107 | @subsubsection Optional Backend Functions | 21107 | @subsubsection Optional Back End Functions |
| 21108 | 21108 | ||
| 21109 | @table @code | 21109 | @table @code |
| 21110 | 21110 | ||
| @@ -21127,8 +21127,8 @@ group-buffer = *active-line / *group-status | |||
| 21127 | 21127 | ||
| 21128 | @item (nnchoke-request-update-info GROUP INFO &optional SERVER) | 21128 | @item (nnchoke-request-update-info GROUP INFO &optional SERVER) |
| 21129 | 21129 | ||
| 21130 | A Gnus group info (@pxref{Group Info}) is handed to the backend for | 21130 | A Gnus group info (@pxref{Group Info}) is handed to the back end for |
| 21131 | alterations. This comes in handy if the backend really carries all the | 21131 | alterations. This comes in handy if the back end really carries all the |
| 21132 | information (as is the case with virtual and imap groups). This | 21132 | information (as is the case with virtual and imap groups). This |
| 21133 | function should destructively alter the info to suit its needs, and | 21133 | function should destructively alter the info to suit its needs, and |
| 21134 | should return the (altered) group info. | 21134 | should return the (altered) group info. |
| @@ -21154,7 +21154,7 @@ There should be no result data from this function. | |||
| 21154 | 21154 | ||
| 21155 | Set/remove/add marks on articles. Normally Gnus handles the article | 21155 | Set/remove/add marks on articles. Normally Gnus handles the article |
| 21156 | marks (such as read, ticked, expired etc) internally, and store them in | 21156 | marks (such as read, ticked, expired etc) internally, and store them in |
| 21157 | @code{~/.newsrc.eld}. Some backends (such as @sc{imap}) however carry | 21157 | @code{~/.newsrc.eld}. Some back ends (such as @sc{imap}) however carry |
| 21158 | all information about the articles on the server, so Gnus need to | 21158 | all information about the articles on the server, so Gnus need to |
| 21159 | propagate the mark information to the server. | 21159 | propagate the mark information to the server. |
| 21160 | 21160 | ||
| @@ -21171,7 +21171,7 @@ marks not mentioned) mark and removing (preserving the marks not | |||
| 21171 | mentioned) marks. Mark is a list of marks; where each mark is a symbol. | 21171 | mentioned) marks. Mark is a list of marks; where each mark is a symbol. |
| 21172 | Currently used marks are @code{read}, @code{tick}, @code{reply}, | 21172 | Currently used marks are @code{read}, @code{tick}, @code{reply}, |
| 21173 | @code{expire}, @code{killed}, @code{dormant}, @code{save}, | 21173 | @code{expire}, @code{killed}, @code{dormant}, @code{save}, |
| 21174 | @code{download} and @code{unsend}, but your backend should, if possible, | 21174 | @code{download} and @code{unsend}, but your back end should, if possible, |
| 21175 | not limit itself to these. | 21175 | not limit itself to these. |
| 21176 | 21176 | ||
| 21177 | Given contradictory actions, the last action in the list should be the | 21177 | Given contradictory actions, the last action in the list should be the |
| @@ -21194,10 +21194,10 @@ There should be no result data from this function. | |||
| 21194 | 21194 | ||
| 21195 | @item (nnchoke-request-update-mark GROUP ARTICLE MARK) | 21195 | @item (nnchoke-request-update-mark GROUP ARTICLE MARK) |
| 21196 | 21196 | ||
| 21197 | If the user tries to set a mark that the backend doesn't like, this | 21197 | If the user tries to set a mark that the back end doesn't like, this |
| 21198 | function may change the mark. Gnus will use whatever this function | 21198 | function may change the mark. Gnus will use whatever this function |
| 21199 | returns as the mark for @var{article} instead of the original | 21199 | returns as the mark for @var{article} instead of the original |
| 21200 | @var{mark}. If the backend doesn't care, it must return the original | 21200 | @var{mark}. If the back end doesn't care, it must return the original |
| 21201 | @var{mark}, and not @code{nil} or any other type of garbage. | 21201 | @var{mark}, and not @code{nil} or any other type of garbage. |
| 21202 | 21202 | ||
| 21203 | The only use for this I can see is what @code{nnvirtual} does with | 21203 | The only use for this I can see is what @code{nnvirtual} does with |
| @@ -21211,10 +21211,10 @@ There should be no result data from this function. | |||
| 21211 | @item (nnchoke-request-scan &optional GROUP SERVER) | 21211 | @item (nnchoke-request-scan &optional GROUP SERVER) |
| 21212 | 21212 | ||
| 21213 | This function may be called at any time (by Gnus or anything else) to | 21213 | This function may be called at any time (by Gnus or anything else) to |
| 21214 | request that the backend check for incoming articles, in one way or | 21214 | request that the back end check for incoming articles, in one way or |
| 21215 | another. A mail backend will typically read the spool file or query the | 21215 | another. A mail back end will typically read the spool file or query the |
| 21216 | POP server when this function is invoked. The @var{group} doesn't have | 21216 | POP server when this function is invoked. The @var{group} doesn't have |
| 21217 | to be heeded---if the backend decides that it is too much work just | 21217 | to be heeded---if the back end decides that it is too much work just |
| 21218 | scanning for a single group, it may do a total scan of all groups. It | 21218 | scanning for a single group, it may do a total scan of all groups. It |
| 21219 | would be nice, however, to keep things local if that's practical. | 21219 | would be nice, however, to keep things local if that's practical. |
| 21220 | 21220 | ||
| @@ -21260,7 +21260,7 @@ There should be no return data. | |||
| 21260 | 21260 | ||
| 21261 | This function should run the expiry process on all articles in the | 21261 | This function should run the expiry process on all articles in the |
| 21262 | @var{articles} range (which is currently a simple list of article | 21262 | @var{articles} range (which is currently a simple list of article |
| 21263 | numbers.) It is left up to the backend to decide how old articles | 21263 | numbers.) It is left up to the back end to decide how old articles |
| 21264 | should be before they are removed by this function. If @var{force} is | 21264 | should be before they are removed by this function. If @var{force} is |
| 21265 | non-@code{nil}, all @var{articles} should be deleted, no matter how new | 21265 | non-@code{nil}, all @var{articles} should be deleted, no matter how new |
| 21266 | they are. | 21266 | they are. |
| @@ -21338,9 +21338,9 @@ There should be no data returned. | |||
| 21338 | 21338 | ||
| 21339 | @findex nnheader-report | 21339 | @findex nnheader-report |
| 21340 | @findex nnheader-get-report | 21340 | @findex nnheader-get-report |
| 21341 | The backends should use the function @code{nnheader-report} to report | 21341 | The back ends should use the function @code{nnheader-report} to report |
| 21342 | error conditions---they should not raise errors when they aren't able to | 21342 | error conditions---they should not raise errors when they aren't able to |
| 21343 | perform a request. The first argument to this function is the backend | 21343 | perform a request. The first argument to this function is the back end |
| 21344 | symbol, and the rest are interpreted as arguments to @code{format} if | 21344 | symbol, and the rest are interpreted as arguments to @code{format} if |
| 21345 | there are multiple of them, or just a string if there is one of them. | 21345 | there are multiple of them, or just a string if there is one of them. |
| 21346 | This function must always returns @code{nil}. | 21346 | This function must always returns @code{nil}. |
| @@ -21353,18 +21353,18 @@ This function must always returns @code{nil}. | |||
| 21353 | 21353 | ||
| 21354 | Gnus, in turn, will call @code{nnheader-get-report} when it gets a | 21354 | Gnus, in turn, will call @code{nnheader-get-report} when it gets a |
| 21355 | @code{nil} back from a server, and this function returns the most | 21355 | @code{nil} back from a server, and this function returns the most |
| 21356 | recently reported message for the backend in question. This function | 21356 | recently reported message for the back end in question. This function |
| 21357 | takes one argument---the server symbol. | 21357 | takes one argument---the server symbol. |
| 21358 | 21358 | ||
| 21359 | Internally, these functions access @var{backend}@code{-status-string}, | 21359 | Internally, these functions access @var{back-end}@code{-status-string}, |
| 21360 | so the @code{nnchoke} backend will have its error message stored in | 21360 | so the @code{nnchoke} back end will have its error message stored in |
| 21361 | @code{nnchoke-status-string}. | 21361 | @code{nnchoke-status-string}. |
| 21362 | 21362 | ||
| 21363 | 21363 | ||
| 21364 | @node Writing New Backends | 21364 | @node Writing New Back Ends |
| 21365 | @subsubsection Writing New Backends | 21365 | @subsubsection Writing New Back Ends |
| 21366 | 21366 | ||
| 21367 | Many backends are quite similar. @code{nnml} is just like | 21367 | Many back ends are quite similar. @code{nnml} is just like |
| 21368 | @code{nnspool}, but it allows you to edit the articles on the server. | 21368 | @code{nnspool}, but it allows you to edit the articles on the server. |
| 21369 | @code{nnmh} is just like @code{nnml}, but it doesn't use an active file, | 21369 | @code{nnmh} is just like @code{nnml}, but it doesn't use an active file, |
| 21370 | and it doesn't maintain overview databases. @code{nndir} is just like | 21370 | and it doesn't maintain overview databases. @code{nndir} is just like |
| @@ -21372,14 +21372,14 @@ and it doesn't maintain overview databases. @code{nndir} is just like | |||
| 21372 | editing articles. | 21372 | editing articles. |
| 21373 | 21373 | ||
| 21374 | It would make sense if it were possible to ``inherit'' functions from | 21374 | It would make sense if it were possible to ``inherit'' functions from |
| 21375 | backends when writing new backends. And, indeed, you can do that if you | 21375 | back ends when writing new back ends. And, indeed, you can do that if you |
| 21376 | want to. (You don't have to if you don't want to, of course.) | 21376 | want to. (You don't have to if you don't want to, of course.) |
| 21377 | 21377 | ||
| 21378 | All the backends declare their public variables and functions by using a | 21378 | All the back ends declare their public variables and functions by using a |
| 21379 | package called @code{nnoo}. | 21379 | package called @code{nnoo}. |
| 21380 | 21380 | ||
| 21381 | To inherit functions from other backends (and allow other backends to | 21381 | To inherit functions from other back ends (and allow other back ends to |
| 21382 | inherit functions from the current backend), you should use the | 21382 | inherit functions from the current back end), you should use the |
| 21383 | following macros: | 21383 | following macros: |
| 21384 | 21384 | ||
| 21385 | @table @code | 21385 | @table @code |
| @@ -21402,8 +21402,8 @@ a public server variable. Most state-oriented variables should be | |||
| 21402 | declared with @code{defvoo} instead of @code{defvar}. | 21402 | declared with @code{defvoo} instead of @code{defvar}. |
| 21403 | 21403 | ||
| 21404 | In addition to the normal @code{defvar} parameters, it takes a list of | 21404 | In addition to the normal @code{defvar} parameters, it takes a list of |
| 21405 | variables in the parent backends to map the variable to when executing | 21405 | variables in the parent back ends to map the variable to when executing |
| 21406 | a function in those backends. | 21406 | a function in those back ends. |
| 21407 | 21407 | ||
| 21408 | @lisp | 21408 | @lisp |
| 21409 | (defvoo nndir-directory nil | 21409 | (defvoo nndir-directory nil |
| @@ -21416,7 +21416,7 @@ This means that @code{nnml-current-directory} will be set to | |||
| 21416 | of @code{nndir}. (The same with @code{nnmh}.) | 21416 | of @code{nndir}. (The same with @code{nnmh}.) |
| 21417 | 21417 | ||
| 21418 | @item nnoo-define-basics | 21418 | @item nnoo-define-basics |
| 21419 | This macro defines some common functions that almost all backends should | 21419 | This macro defines some common functions that almost all back ends should |
| 21420 | have. | 21420 | have. |
| 21421 | 21421 | ||
| 21422 | @example | 21422 | @example |
| @@ -21426,11 +21426,11 @@ have. | |||
| 21426 | @item deffoo | 21426 | @item deffoo |
| 21427 | This macro is just like @code{defun} and takes the same parameters. In | 21427 | This macro is just like @code{defun} and takes the same parameters. In |
| 21428 | addition to doing the normal @code{defun} things, it registers the | 21428 | addition to doing the normal @code{defun} things, it registers the |
| 21429 | function as being public so that other backends can inherit it. | 21429 | function as being public so that other back ends can inherit it. |
| 21430 | 21430 | ||
| 21431 | @item nnoo-map-functions | 21431 | @item nnoo-map-functions |
| 21432 | This macro allows mapping of functions from the current backend to | 21432 | This macro allows mapping of functions from the current back end to |
| 21433 | functions from the parent backends. | 21433 | functions from the parent back ends. |
| 21434 | 21434 | ||
| 21435 | @example | 21435 | @example |
| 21436 | (nnoo-map-functions nndir | 21436 | (nnoo-map-functions nndir |
| @@ -21444,7 +21444,7 @@ third, and fourth parameters will be passed on to | |||
| 21444 | value of @code{nndir-current-group}. | 21444 | value of @code{nndir-current-group}. |
| 21445 | 21445 | ||
| 21446 | @item nnoo-import | 21446 | @item nnoo-import |
| 21447 | This macro allows importing functions from backends. It should be the | 21447 | This macro allows importing functions from back ends. It should be the |
| 21448 | last thing in the source file, since it will only define functions that | 21448 | last thing in the source file, since it will only define functions that |
| 21449 | haven't already been defined. | 21449 | haven't already been defined. |
| 21450 | 21450 | ||
| @@ -21463,7 +21463,7 @@ defined now. | |||
| 21463 | 21463 | ||
| 21464 | @end table | 21464 | @end table |
| 21465 | 21465 | ||
| 21466 | Below is a slightly shortened version of the @code{nndir} backend. | 21466 | Below is a slightly shortened version of the @code{nndir} back end. |
| 21467 | 21467 | ||
| 21468 | @lisp | 21468 | @lisp |
| 21469 | ;;; nndir.el --- single directory newsgroup access for Gnus | 21469 | ;;; nndir.el --- single directory newsgroup access for Gnus |
| @@ -21532,15 +21532,15 @@ Below is a slightly shortened version of the @code{nndir} backend. | |||
| 21532 | @end lisp | 21532 | @end lisp |
| 21533 | 21533 | ||
| 21534 | 21534 | ||
| 21535 | @node Hooking New Backends Into Gnus | 21535 | @node Hooking New Back Ends Into Gnus |
| 21536 | @subsubsection Hooking New Backends Into Gnus | 21536 | @subsubsection Hooking New Back Ends Into Gnus |
| 21537 | 21537 | ||
| 21538 | @vindex gnus-valid-select-methods | 21538 | @vindex gnus-valid-select-methods |
| 21539 | Having Gnus start using your new backend is rather easy---you just | 21539 | Having Gnus start using your new back end is rather easy---you just |
| 21540 | declare it with the @code{gnus-declare-backend} functions. This will | 21540 | declare it with the @code{gnus-declare-backend} functions. This will |
| 21541 | enter the backend into the @code{gnus-valid-select-methods} variable. | 21541 | enter the back end into the @code{gnus-valid-select-methods} variable. |
| 21542 | 21542 | ||
| 21543 | @code{gnus-declare-backend} takes two parameters---the backend name and | 21543 | @code{gnus-declare-backend} takes two parameters---the back end name and |
| 21544 | an arbitrary number of @dfn{abilities}. | 21544 | an arbitrary number of @dfn{abilities}. |
| 21545 | 21545 | ||
| 21546 | Here's an example: | 21546 | Here's an example: |
| @@ -21553,32 +21553,32 @@ The abilities can be: | |||
| 21553 | 21553 | ||
| 21554 | @table @code | 21554 | @table @code |
| 21555 | @item mail | 21555 | @item mail |
| 21556 | This is a mailish backend---followups should (probably) go via mail. | 21556 | This is a mailish back end---followups should (probably) go via mail. |
| 21557 | @item post | 21557 | @item post |
| 21558 | This is a newsish backend---followups should (probably) go via news. | 21558 | This is a newsish back end---followups should (probably) go via news. |
| 21559 | @item post-mail | 21559 | @item post-mail |
| 21560 | This backend supports both mail and news. | 21560 | This back end supports both mail and news. |
| 21561 | @item none | 21561 | @item none |
| 21562 | This is neither a post nor mail backend---it's something completely | 21562 | This is neither a post nor mail back end---it's something completely |
| 21563 | different. | 21563 | different. |
| 21564 | @item respool | 21564 | @item respool |
| 21565 | It supports respooling---or rather, it is able to modify its source | 21565 | It supports respooling---or rather, it is able to modify its source |
| 21566 | articles and groups. | 21566 | articles and groups. |
| 21567 | @item address | 21567 | @item address |
| 21568 | The name of the server should be in the virtual server name. This is | 21568 | The name of the server should be in the virtual server name. This is |
| 21569 | true for almost all backends. | 21569 | true for almost all back ends. |
| 21570 | @item prompt-address | 21570 | @item prompt-address |
| 21571 | The user should be prompted for an address when doing commands like | 21571 | The user should be prompted for an address when doing commands like |
| 21572 | @kbd{B} in the group buffer. This is true for backends like | 21572 | @kbd{B} in the group buffer. This is true for back ends like |
| 21573 | @code{nntp}, but not @code{nnmbox}, for instance. | 21573 | @code{nntp}, but not @code{nnmbox}, for instance. |
| 21574 | @end table | 21574 | @end table |
| 21575 | 21575 | ||
| 21576 | 21576 | ||
| 21577 | @node Mail-like Backends | 21577 | @node Mail-like Back Ends |
| 21578 | @subsubsection Mail-like Backends | 21578 | @subsubsection Mail-like Back Ends |
| 21579 | 21579 | ||
| 21580 | One of the things that separate the mail backends from the rest of the | 21580 | One of the things that separate the mail back ends from the rest of the |
| 21581 | backends is the heavy dependence by the mail backends on common | 21581 | back ends is the heavy dependence by the mail back ends on common |
| 21582 | functions in @file{nnmail.el}. For instance, here's the definition of | 21582 | functions in @file{nnmail.el}. For instance, here's the definition of |
| 21583 | @code{nnml-request-scan}: | 21583 | @code{nnml-request-scan}: |
| 21584 | 21584 | ||
| @@ -21596,7 +21596,7 @@ This function takes four parameters. | |||
| 21596 | 21596 | ||
| 21597 | @table @var | 21597 | @table @var |
| 21598 | @item method | 21598 | @item method |
| 21599 | This should be a symbol to designate which backend is responsible for | 21599 | This should be a symbol to designate which back end is responsible for |
| 21600 | the call. | 21600 | the call. |
| 21601 | 21601 | ||
| 21602 | @item exit-function | 21602 | @item exit-function |
| @@ -21610,15 +21610,15 @@ This optional argument should be a group name if the splitting is to be | |||
| 21610 | performed for one group only. | 21610 | performed for one group only. |
| 21611 | @end table | 21611 | @end table |
| 21612 | 21612 | ||
| 21613 | @code{nnmail-get-new-mail} will call @var{backend}@code{-save-mail} to | 21613 | @code{nnmail-get-new-mail} will call @var{back-end}@code{-save-mail} to |
| 21614 | save each article. @var{backend}@code{-active-number} will be called to | 21614 | save each article. @var{back-end}@code{-active-number} will be called to |
| 21615 | find the article number assigned to this article. | 21615 | find the article number assigned to this article. |
| 21616 | 21616 | ||
| 21617 | The function also uses the following variables: | 21617 | The function also uses the following variables: |
| 21618 | @var{backend}@code{-get-new-mail} (to see whether to get new mail for | 21618 | @var{back-end}@code{-get-new-mail} (to see whether to get new mail for |
| 21619 | this backend); and @var{backend}@code{-group-alist} and | 21619 | this back end); and @var{back-end}@code{-group-alist} and |
| 21620 | @var{backend}@code{-active-file} to generate the new active file. | 21620 | @var{back-end}@code{-active-file} to generate the new active file. |
| 21621 | @var{backend}@code{-group-alist} should be a group-active alist, like | 21621 | @var{back-end}@code{-group-alist} should be a group-active alist, like |
| 21622 | this: | 21622 | this: |
| 21623 | 21623 | ||
| 21624 | @example | 21624 | @example |