Mercurial > emacs
comparison man/gnus.texi @ 49600:23a1cea22d13
Trailing whitespace deleted.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Tue, 04 Feb 2003 14:56:31 +0000 |
parents | bf2ab88cad81 |
children | 695cf19ef79e d7ddb3e565de |
comparison
equal
deleted
inserted
replaced
49599:5ade352e8d1c | 49600:23a1cea22d13 |
---|---|
625 * NNTP:: Reading news from an @sc{nntp} server. | 625 * NNTP:: Reading news from an @sc{nntp} server. |
626 * News Spool:: Reading news from the local spool. | 626 * News Spool:: Reading news from the local spool. |
627 | 627 |
628 Getting Mail | 628 Getting Mail |
629 | 629 |
630 * Mail in a Newsreader:: Important introductory notes. | 630 * Mail in a Newsreader:: Important introductory notes. |
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 Back End 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. |
1186 @vindex gnus-subscribe-killed | 1186 @vindex gnus-subscribe-killed |
1187 Kill all new groups. | 1187 Kill all new groups. |
1188 | 1188 |
1189 @item gnus-subscribe-topics | 1189 @item gnus-subscribe-topics |
1190 @vindex gnus-subscribe-topics | 1190 @vindex gnus-subscribe-topics |
1191 Put the groups into the topic that has a matching @code{subscribe} topic | 1191 Put the groups into the topic that has a matching @code{subscribe} topic |
1192 parameter (@pxref{Topic Parameters}). For instance, a @code{subscribe} | 1192 parameter (@pxref{Topic Parameters}). For instance, a @code{subscribe} |
1193 topic parameter that looks like | 1193 topic parameter that looks like |
1194 | 1194 |
1195 @example | 1195 @example |
1196 "nnslashdot" | 1196 "nnslashdot" |
1197 @end example | 1197 @end example |
1198 | 1198 |
1199 will mean that all groups that match that regex will be subscribed under | 1199 will mean that all groups that match that regex will be subscribed under |
1200 that topic. | 1200 that topic. |
1201 | 1201 |
1202 If no topics match the groups, the groups will be subscribed in the | 1202 If no topics match the groups, the groups will be subscribed in the |
1203 top-level topic. | 1203 top-level topic. |
1204 | 1204 |
1484 read all the replies in one swoop. This will normally result in better | 1484 read all the replies in one swoop. This will normally result in better |
1485 performance, but if the server does not support the aforementioned | 1485 performance, but if the server does not support the aforementioned |
1486 @code{LIST ACTIVE group} command, this isn't very nice to the server. | 1486 @code{LIST ACTIVE group} command, this isn't very nice to the server. |
1487 | 1487 |
1488 If you think that starting up Gnus takes too long, try all the three | 1488 If you think that starting up Gnus takes too long, try all the three |
1489 different values for this variable and see what works best for you. | 1489 different values for this variable and see what works best for you. |
1490 | 1490 |
1491 In any case, if you use @code{some} or @code{nil}, you should definitely | 1491 In any case, if you use @code{some} or @code{nil}, you should definitely |
1492 kill all groups that you aren't interested in to speed things up. | 1492 kill all groups that you aren't interested in to speed things up. |
1493 | 1493 |
1494 Note that this variable also affects active file retrieval from | 1494 Note that this variable also affects active file retrieval from |
2696 Elements that look like @code{(ignored-charsets x-known iso-8859-1)} | 2696 Elements that look like @code{(ignored-charsets x-known iso-8859-1)} |
2697 will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the | 2697 will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the |
2698 default charset will be used for decoding articles. | 2698 default charset will be used for decoding articles. |
2699 | 2699 |
2700 See also @code{gnus-group-ignored-charsets-alist}. | 2700 See also @code{gnus-group-ignored-charsets-alist}. |
2701 | 2701 |
2702 @item posting-style | 2702 @item posting-style |
2703 You can store additional posting style information for this group only | 2703 You can store additional posting style information for this group only |
2704 here (@pxref{Posting Styles}). The format is that of an entry in the | 2704 here (@pxref{Posting Styles}). The format is that of an entry in the |
2705 @code{gnus-posting-styles} alist, except that there's no regexp matching | 2705 @code{gnus-posting-styles} alist, except that there's no regexp matching |
2706 the group name (of course). Style elements in this group parameter will | 2706 the group name (of course). Style elements in this group parameter will |
3276 convention (@pxref{Process/Prefix}). | 3276 convention (@pxref{Process/Prefix}). |
3277 | 3277 |
3278 @item T j | 3278 @item T j |
3279 @kindex T j (Topic) | 3279 @kindex T j (Topic) |
3280 @findex gnus-topic-jump-to-topic | 3280 @findex gnus-topic-jump-to-topic |
3281 Go to a topic (@code{gnus-topic-jump-to-topic}). | 3281 Go to a topic (@code{gnus-topic-jump-to-topic}). |
3282 | 3282 |
3283 @item T c | 3283 @item T c |
3284 @kindex T c (Topic) | 3284 @kindex T c (Topic) |
3285 @findex gnus-topic-copy-group | 3285 @findex gnus-topic-copy-group |
3286 Copy the current group to some other topic | 3286 Copy the current group to some other topic |
3521 In addition, the following parameters are only valid as topic | 3521 In addition, the following parameters are only valid as topic |
3522 parameters: | 3522 parameters: |
3523 | 3523 |
3524 @table @code | 3524 @table @code |
3525 @item subscribe | 3525 @item subscribe |
3526 When subscribing new groups by topic (@pxref{Subscription Methods}), the | 3526 When subscribing new groups by topic (@pxref{Subscription Methods}), the |
3527 @code{subscribe} topic parameter says what groups go in what topic. Its | 3527 @code{subscribe} topic parameter says what groups go in what topic. Its |
3528 value should be a regexp to match the groups that should go in that | 3528 value should be a regexp to match the groups that should go in that |
3529 topic. | 3529 topic. |
3530 | 3530 |
3531 @end table | 3531 @end table |
3532 | 3532 |
3533 Group parameters (of course) override topic parameters, and topic | 3533 Group parameters (of course) override topic parameters, and topic |
3534 parameters in sub-topics override topic parameters in super-topics. You | 3534 parameters in sub-topics override topic parameters in super-topics. You |
3640 '(((nntp "news.com.cn") . cn-gb-2312))) | 3640 '(((nntp "news.com.cn") . cn-gb-2312))) |
3641 @end lisp | 3641 @end lisp |
3642 | 3642 |
3643 @item gnus-group-name-charset-group-alist | 3643 @item gnus-group-name-charset-group-alist |
3644 @vindex gnus-group-name-charset-group-alist | 3644 @vindex gnus-group-name-charset-group-alist |
3645 An alist of regexp of group name and the charset for group names. | 3645 An alist of regexp of group name and the charset for group names. |
3646 It is used to show non-ASCII group names. | 3646 It is used to show non-ASCII group names. |
3647 | 3647 |
3648 For example: | 3648 For example: |
3649 @lisp | 3649 @lisp |
3650 (setq gnus-group-name-charset-group-alist | 3650 (setq gnus-group-name-charset-group-alist |
4496 If given a numerical prefix, you can do semi-manual charset stuff. | 4496 If given a numerical prefix, you can do semi-manual charset stuff. |
4497 @kbd{C-u 0 g cn-gb-2312 @key{RET}} will decode the message as if it were | 4497 @kbd{C-u 0 g cn-gb-2312 @key{RET}} will decode the message as if it were |
4498 encoded in the @code{cn-gb-2312} charset. If you have | 4498 encoded in the @code{cn-gb-2312} charset. If you have |
4499 | 4499 |
4500 @lisp | 4500 @lisp |
4501 (setq gnus-summary-show-article-charset-alist | 4501 (setq gnus-summary-show-article-charset-alist |
4502 '((1 . cn-gb-2312) | 4502 '((1 . cn-gb-2312) |
4503 (2 . big5))) | 4503 (2 . big5))) |
4504 @end lisp | 4504 @end lisp |
4505 | 4505 |
4506 then you can say @kbd{C-u 1 g} to get the same effect. | 4506 then you can say @kbd{C-u 1 g} to get the same effect. |
4507 | 4507 |
4729 | 4729 |
4730 @item S o p | 4730 @item S o p |
4731 @kindex S o p @r{(Summary)} | 4731 @kindex S o p @r{(Summary)} |
4732 @findex gnus-summary-post-forward | 4732 @findex gnus-summary-post-forward |
4733 Forward the current article to a newsgroup | 4733 Forward the current article to a newsgroup |
4734 (@code{gnus-summary-post-forward}). | 4734 (@code{gnus-summary-post-forward}). |
4735 If no prefix is given, the message is forwarded according to the value | 4735 If no prefix is given, the message is forwarded according to the value |
4736 of (@code{message-forward-as-mime}) and | 4736 of (@code{message-forward-as-mime}) and |
4737 (@code{message-forward-show-mml}); if the prefix is 1, decode the | 4737 (@code{message-forward-show-mml}); if the prefix is 1, decode the |
4738 message and forward directly inline; if the prefix is 2, forward message | 4738 message and forward directly inline; if the prefix is 2, forward message |
4739 as an rfc822 MIME section; if the prefix is 3, decode message and | 4739 as an rfc822 MIME section; if the prefix is 3, decode message and |
6552 If you'd like to save articles in a hierarchy that looks something like | 6552 If you'd like to save articles in a hierarchy that looks something like |
6553 a spool, you could | 6553 a spool, you could |
6554 | 6554 |
6555 @lisp | 6555 @lisp |
6556 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy | 6556 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy |
6557 (setq gnus-default-article-saver | 6557 (setq gnus-default-article-saver |
6558 'gnus-summary-save-in-file) ; no encoding | 6558 'gnus-summary-save-in-file) ; no encoding |
6559 @end lisp | 6559 @end lisp |
6560 | 6560 |
6561 Then just save with @kbd{o}. You'd then read this hierarchy with | 6561 Then just save with @kbd{o}. You'd then read this hierarchy with |
6562 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and | 6562 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and |
7430 You can give the command a numerical prefix to specify the width to use | 7430 You can give the command a numerical prefix to specify the width to use |
7431 when filling. | 7431 when filling. |
7432 | 7432 |
7433 @item W Q | 7433 @item W Q |
7434 @kindex W Q @r{(Summary)} | 7434 @kindex W Q @r{(Summary)} |
7435 @findex gnus-article-fill-long-lines | 7435 @findex gnus-article-fill-long-lines |
7436 Fill long lines (@code{gnus-article-fill-long-lines}). | 7436 Fill long lines (@code{gnus-article-fill-long-lines}). |
7437 | 7437 |
7438 @item W C | 7438 @item W C |
7439 @kindex W C @r{(Summary)} | 7439 @kindex W C @r{(Summary)} |
7440 @findex gnus-article-capitalize-sentences | 7440 @findex gnus-article-capitalize-sentences |
7478 makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}. | 7478 makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}. |
7479 | 7479 |
7480 @item W h | 7480 @item W h |
7481 @kindex W h @r{(Summary)} | 7481 @kindex W h @r{(Summary)} |
7482 @findex gnus-article-wash-html | 7482 @findex gnus-article-wash-html |
7483 Treat HTML (@code{gnus-article-wash-html}). | 7483 Treat HTML (@code{gnus-article-wash-html}). |
7484 Note that the this is usually done automatically by Gnus if the message | 7484 Note that the this is usually done automatically by Gnus if the message |
7485 in question has a @code{Content-Type} header that says that this type | 7485 in question has a @code{Content-Type} header that says that this type |
7486 has been done. | 7486 has been done. |
7487 | 7487 |
7488 @item W f | 7488 @item W f |
7822 @table @kbd | 7822 @table @kbd |
7823 @item A t | 7823 @item A t |
7824 @kindex A t @r{(Summary)} | 7824 @kindex A t @r{(Summary)} |
7825 @findex gnus-article-babel | 7825 @findex gnus-article-babel |
7826 Translate the article from one language to another | 7826 Translate the article from one language to another |
7827 (@code{gnus-article-babel}). | 7827 (@code{gnus-article-babel}). |
7828 | 7828 |
7829 @end table | 7829 @end table |
7830 | 7830 |
7831 | 7831 |
7832 @node MIME Commands | 7832 @node MIME Commands |
8527 @cindex move mail | 8527 @cindex move mail |
8528 @findex gnus-summary-move-article | 8528 @findex gnus-summary-move-article |
8529 @vindex gnus-preserve-marks | 8529 @vindex gnus-preserve-marks |
8530 Move the article from one mail group to another | 8530 Move the article from one mail group to another |
8531 (@code{gnus-summary-move-article}). Marks will be preserved if | 8531 (@code{gnus-summary-move-article}). Marks will be preserved if |
8532 @var{gnus-preserve-marks} is non-@code{nil} (which is the default). | 8532 @var{gnus-preserve-marks} is non-@code{nil} (which is the default). |
8533 | 8533 |
8534 @item B c | 8534 @item B c |
8535 @kindex B c @r{(Summary)} | 8535 @kindex B c @r{(Summary)} |
8536 @cindex copy mail | 8536 @cindex copy mail |
8537 @findex gnus-summary-copy-article | 8537 @findex gnus-summary-copy-article |
9275 (@code{gnus-mime-copy-part}). | 9275 (@code{gnus-mime-copy-part}). |
9276 | 9276 |
9277 @findex gnus-mime-view-part-as-type | 9277 @findex gnus-mime-view-part-as-type |
9278 @item t @r{(Article)} | 9278 @item t @r{(Article)} |
9279 View the @sc{mime} object as if it were a different @sc{mime} media type | 9279 View the @sc{mime} object as if it were a different @sc{mime} media type |
9280 (@code{gnus-mime-view-part-as-type}). | 9280 (@code{gnus-mime-view-part-as-type}). |
9281 | 9281 |
9282 @findex gnus-mime-pipe-part | 9282 @findex gnus-mime-pipe-part |
9283 @item | @r{(Article)} | 9283 @item | @r{(Article)} |
9284 Output the @sc{mime} object to a process (@code{gnus-mime-pipe-part}). | 9284 Output the @sc{mime} object to a process (@code{gnus-mime-pipe-part}). |
9285 | 9285 |
9425 @vindex gnus-part-display-hook | 9425 @vindex gnus-part-display-hook |
9426 You can, of course, write your own functions to be called from | 9426 You can, of course, write your own functions to be called from |
9427 @code{gnus-part-display-hook}. The functions are called narrowed to the | 9427 @code{gnus-part-display-hook}. The functions are called narrowed to the |
9428 part, and you can do anything you like, pretty much. There is no | 9428 part, and you can do anything you like, pretty much. There is no |
9429 information that you have to keep in the buffer---you can change | 9429 information that you have to keep in the buffer---you can change |
9430 everything. | 9430 everything. |
9431 | 9431 |
9432 | 9432 |
9433 @node Article Keymap | 9433 @node Article Keymap |
9434 @section Article Keymap | 9434 @section Article Keymap |
9435 | 9435 |
10512 @enumerate | 10512 @enumerate |
10513 @item | 10513 @item |
10514 The file contains one or more line, each of which define one server. | 10514 The file contains one or more line, each of which define one server. |
10515 | 10515 |
10516 @item | 10516 @item |
10517 Each line may contain an arbitrary number of token/value pairs. | 10517 Each line may contain an arbitrary number of token/value pairs. |
10518 | 10518 |
10519 The valid tokens include @samp{machine}, @samp{login}, @samp{password}, | 10519 The valid tokens include @samp{machine}, @samp{login}, @samp{password}, |
10520 @samp{default}. In addition Gnus introduces two new tokens, not present | 10520 @samp{default}. In addition Gnus introduces two new tokens, not present |
10521 in the original @file{.netrc}/@code{ftp} syntax, namely @samp{port} and | 10521 in the original @file{.netrc}/@code{ftp} syntax, namely @samp{port} and |
10522 @samp{force}. (This is the only way the @file{.authinfo} file format | 10522 @samp{force}. (This is the only way the @file{.authinfo} file format |
10571 | 10571 |
10572 The default value is | 10572 The default value is |
10573 | 10573 |
10574 @lisp | 10574 @lisp |
10575 '(("nntpd 1\\.5\\.11t" | 10575 '(("nntpd 1\\.5\\.11t" |
10576 (remove-hook 'nntp-server-opened-hook | 10576 (remove-hook 'nntp-server-opened-hook |
10577 'nntp-send-mode-reader))) | 10577 'nntp-send-mode-reader))) |
10578 @end lisp | 10578 @end lisp |
10579 | 10579 |
10580 This ensures that Gnus doesn't send the @code{MODE READER} command to | 10580 This ensures that Gnus doesn't send the @code{MODE READER} command to |
10581 nntpd 1.5.11t, since that command chokes that server, I've been told. | 10581 nntpd 1.5.11t, since that command chokes that server, I've been told. |
10712 define a server as follows: | 10712 define a server as follows: |
10713 | 10713 |
10714 @lisp | 10714 @lisp |
10715 ;; Type `C-c C-c' after you've finished editing. | 10715 ;; Type `C-c C-c' after you've finished editing. |
10716 ;; | 10716 ;; |
10717 ;; "snews" is port 563 and is predefined | 10717 ;; "snews" is port 563 and is predefined |
10718 ;; in our /etc/services | 10718 ;; in our /etc/services |
10719 ;; | 10719 ;; |
10720 (nntp "snews.bar.com" | 10720 (nntp "snews.bar.com" |
10721 (nntp-open-connection-function | 10721 (nntp-open-connection-function |
10722 nntp-open-ssl-stream) | 10722 nntp-open-ssl-stream) |
10723 (nntp-port-number "snews") | 10723 (nntp-port-number "snews") |
10724 (nntp-address "snews.bar.com")) | 10724 (nntp-address "snews.bar.com")) |
10725 @end lisp | 10725 @end lisp |
10726 | 10726 |
10876 | 10876 |
10877 Reading mail with a newsreader---isn't that just plain WeIrD? But of | 10877 Reading mail with a newsreader---isn't that just plain WeIrD? But of |
10878 course. | 10878 course. |
10879 | 10879 |
10880 @menu | 10880 @menu |
10881 * Mail in a Newsreader:: Important introductory notes. | 10881 * Mail in a Newsreader:: Important introductory notes. |
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 Back End 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. |
10895 | 10895 |
10896 | 10896 |
10897 @node Mail in a Newsreader | 10897 @node Mail in a Newsreader |
10898 @subsection Mail in a Newsreader | 10898 @subsection Mail in a Newsreader |
10899 | 10899 |
10900 If you are used to traditional mail readers, but have decided to switch | 10900 If you are used to traditional mail readers, but have decided to switch |
10901 to reading mail with Gnus, you may find yourself experiencing something | 10901 to reading mail with Gnus, you may find yourself experiencing something |
10902 of a culture shock. | 10902 of a culture shock. |
10903 | 10903 |
10904 Gnus does not behave like traditional mail readers. If you want to make | 10904 Gnus does not behave like traditional mail readers. If you want to make |
10905 it behave that way, you can, but it's an uphill battle. | 10905 it behave that way, you can, but it's an uphill battle. |
10906 | 10906 |
10907 Gnus, by default, handles all its groups using the same approach. This | 10907 Gnus, by default, handles all its groups using the same approach. This |
10908 approach is very newsreaderly---you enter a group, see the new/unread | 10908 approach is very newsreaderly---you enter a group, see the new/unread |
10909 messages, and when you read the messages, they get marked as read, and | 10909 messages, and when you read the messages, they get marked as read, and |
10913 | 10913 |
10914 Does this mean that all the messages that have been marked as read are | 10914 Does this mean that all the messages that have been marked as read are |
10915 deleted? How awful! | 10915 deleted? How awful! |
10916 | 10916 |
10917 But, no, it means that old messages are @dfn{expired} according to some | 10917 But, no, it means that old messages are @dfn{expired} according to some |
10918 scheme or other. For news messages, the expire process is controlled by | 10918 scheme or other. For news messages, the expire process is controlled by |
10919 the news administrator; for mail, the expire process is controlled by | 10919 the news administrator; for mail, the expire process is controlled by |
10920 you. The expire process for mail is covered in depth in @pxref{Expiring | 10920 you. The expire process for mail is covered in depth in @pxref{Expiring |
10921 Mail}. | 10921 Mail}. |
10922 | 10922 |
10923 What many Gnus users find, after using it a while for both news and | 10923 What many Gnus users find, after using it a while for both news and |
11069 @kindex nnmail-split-history | 11069 @kindex nnmail-split-history |
11070 If you wish to see where the previous mail split put the messages, you | 11070 If you wish to see where the previous mail split put the messages, you |
11071 can use the @kbd{M-x nnmail-split-history} command. If you wish to see | 11071 can use the @kbd{M-x nnmail-split-history} command. If you wish to see |
11072 where re-spooling messages would put the messages, you can use | 11072 where re-spooling messages would put the messages, you can use |
11073 @code{gnus-summary-respool-trace} and related commands (@pxref{Mail | 11073 @code{gnus-summary-respool-trace} and related commands (@pxref{Mail |
11074 Group Commands}). | 11074 Group Commands}). |
11075 | 11075 |
11076 Gnus gives you all the opportunity you could possibly want for shooting | 11076 Gnus gives you all the opportunity you could possibly want for shooting |
11077 yourself in the foot. Let's say you create a group that will contain | 11077 yourself in the foot. Let's say you create a group that will contain |
11078 all the mail you get from your boss. And then you accidentally | 11078 all the mail you get from your boss. And then you accidentally |
11079 unsubscribe from the group. Gnus will still put all the mail from your | 11079 unsubscribe from the group. Gnus will still put all the mail from your |
11144 | 11144 |
11145 @lisp | 11145 @lisp |
11146 (file) | 11146 (file) |
11147 @end lisp | 11147 @end lisp |
11148 | 11148 |
11149 If the mail spool file is not located on the local machine, it's best to | 11149 If the mail spool file is not located on the local machine, it's best to |
11150 use POP or @sc{imap} or the like to fetch the mail. You can not use ange-ftp | 11150 use POP or @sc{imap} or the like to fetch the mail. You can not use ange-ftp |
11151 file names here---it has no way to lock the mail spool while moving the | 11151 file names here---it has no way to lock the mail spool while moving the |
11152 mail. | 11152 mail. |
11153 | 11153 |
11154 If it's impossible to set up a proper server, you can use ssh instead. | 11154 If it's impossible to set up a proper server, you can use ssh instead. |
11155 | 11155 |
11335 @end table | 11335 @end table |
11336 | 11336 |
11337 Two example maildir mail sources: | 11337 Two example maildir mail sources: |
11338 | 11338 |
11339 @lisp | 11339 @lisp |
11340 (maildir :path "/home/user-name/Maildir/" | 11340 (maildir :path "/home/user-name/Maildir/" |
11341 :subdirs ("cur" "new")) | 11341 :subdirs ("cur" "new")) |
11342 @end lisp | 11342 @end lisp |
11343 | 11343 |
11344 @lisp | 11344 @lisp |
11345 (maildir :path "/user@@remotehost.org:~/Maildir/" | 11345 (maildir :path "/user@@remotehost.org:~/Maildir/" |
11346 :subdirs ("new")) | 11346 :subdirs ("new")) |
11347 @end lisp | 11347 @end lisp |
11348 | 11348 |
11349 @item imap | 11349 @item imap |
11350 Get mail from a @sc{imap} server. If you don't want to use @sc{imap} | 11350 Get mail from a @sc{imap} server. If you don't want to use @sc{imap} |
11433 @end table | 11433 @end table |
11434 | 11434 |
11435 An example @sc{imap} mail source: | 11435 An example @sc{imap} mail source: |
11436 | 11436 |
11437 @lisp | 11437 @lisp |
11438 (imap :server "mail.mycorp.com" | 11438 (imap :server "mail.mycorp.com" |
11439 :stream kerberos4 | 11439 :stream kerberos4 |
11440 :fetchflag "\\Seen") | 11440 :fetchflag "\\Seen") |
11441 @end lisp | 11441 @end lisp |
11442 | 11442 |
11443 @item webmail | 11443 @item webmail |
11444 Get mail from a webmail server, such as www.hotmail.com, | 11444 Get mail from a webmail server, such as www.hotmail.com, |
11474 @end table | 11474 @end table |
11475 | 11475 |
11476 An example webmail source: | 11476 An example webmail source: |
11477 | 11477 |
11478 @lisp | 11478 @lisp |
11479 (webmail :subtype 'hotmail | 11479 (webmail :subtype 'hotmail |
11480 :user "user-name" | 11480 :user "user-name" |
11481 :password "secret") | 11481 :password "secret") |
11482 @end lisp | 11482 @end lisp |
11483 @end table | 11483 @end table |
11484 | 11484 |
11485 @table @dfn | 11485 @table @dfn |
11493 If non-nil, fetch the mail even when Gnus is unplugged. If you use | 11493 If non-nil, fetch the mail even when Gnus is unplugged. If you use |
11494 directory source to get mail, you can specify it as in this example: | 11494 directory source to get mail, you can specify it as in this example: |
11495 | 11495 |
11496 @lisp | 11496 @lisp |
11497 (setq mail-sources | 11497 (setq mail-sources |
11498 '((directory :path "/home/pavel/.Spool/" | 11498 '((directory :path "/home/pavel/.Spool/" |
11499 :suffix "" | 11499 :suffix "" |
11500 :plugged t))) | 11500 :plugged t))) |
11501 @end lisp | 11501 @end lisp |
11502 | 11502 |
11503 Gnus will then fetch your mail even when you are unplugged. This is | 11503 Gnus will then fetch your mail even when you are unplugged. This is |
11702 ("subject" "ding" "ding.misc")) | 11702 ("subject" "ding" "ding.misc")) |
11703 ;; Other mailing lists... | 11703 ;; Other mailing lists... |
11704 (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list") | 11704 (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list") |
11705 (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list") | 11705 (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list") |
11706 ;; Both lists below have the same suffix, so prevent | 11706 ;; Both lists below have the same suffix, so prevent |
11707 ;; cross-posting to mkpkg.list of messages posted only to | 11707 ;; cross-posting to mkpkg.list of messages posted only to |
11708 ;; the bugs- list, but allow cross-posting when the | 11708 ;; the bugs- list, but allow cross-posting when the |
11709 ;; message was really cross-posted. | 11709 ;; message was really cross-posted. |
11710 (any "bugs-mypackage@@somewhere" "mypkg.bugs") | 11710 (any "bugs-mypackage@@somewhere" "mypkg.bugs") |
11711 (any "mypackage@@somewhere\" - "bugs-mypackage" "mypkg.list") | 11711 (any "mypackage@@somewhere\" - "bugs-mypackage" "mypkg.list") |
11712 ;; People... | 11712 ;; People... |
12717 method described above) on a per-group basis. That is, @code{nnmbox} | 12717 method described above) on a per-group basis. That is, @code{nnmbox} |
12718 itself puts *all* one's mail in one file; @code{nnfolder} provides a | 12718 itself puts *all* one's mail in one file; @code{nnfolder} provides a |
12719 little bit of optimization to this so that each of one's mail groups has | 12719 little bit of optimization to this so that each of one's mail groups has |
12720 a Unix mail box file. It's faster than @code{nnmbox} because each group | 12720 a Unix mail box file. It's faster than @code{nnmbox} because each group |
12721 can be parsed separately, and still provides the simple Unix mail box | 12721 can be parsed separately, and still provides the simple Unix mail box |
12722 format requiring minimal effort in moving the mail around. In addition, | 12722 format requiring minimal effort in moving the mail around. In addition, |
12723 it maintains an ``active'' file making it much faster for Gnus to figure | 12723 it maintains an ``active'' file making it much faster for Gnus to figure |
12724 out how many messages there are in each separate group. | 12724 out how many messages there are in each separate group. |
12725 | 12725 |
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 |
12744 is easy to understand---they are friendly to new users; you just point | 12744 is easy to understand---they are friendly to new users; you just point |
12745 and click, and there's the discussion. With mailing lists, you have to | 12745 and click, and there's the discussion. With mailing lists, you have to |
12746 go through a cumbersome subscription procedure, and most people don't | 12746 go through a cumbersome subscription procedure, and most people don't |
12747 even know what a news group is. | 12747 even know what a news group is. |
12748 | 12748 |
12749 The problem with this scenario is that web browsers are not very good at | 12749 The problem with this scenario is that web browsers are not very good at |
12750 being newsreaders. They do not keep track of what articles you've read; | 12750 being newsreaders. They do not keep track of what articles you've read; |
12751 they do not allow you to score on subjects you're interested in; they do | 12751 they do not allow you to score on subjects you're interested in; they do |
12752 not allow off-line browsing; they require you to click around and drive | 12752 not allow off-line browsing; they require you to click around and drive |
12753 you mad in the end. | 12753 you mad in the end. |
12754 | 12754 |
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 back ends 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 |
12767 @end menu | 12767 @end menu |
12768 | 12768 |
12769 All the web sources require Emacs/w3 and the url library to work. | 12769 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 back end | 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 back ends, | 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 |
12969 probably the most popular Web bulletin board system used. It has a | 12969 probably the most popular Web bulletin board system used. It has a |
12970 quite regular and nice interface, and it's possible to get the | 12970 quite regular and nice interface, and it's possible to get the |
12971 information Gnus needs to keep groups updated. | 12971 information Gnus needs to keep groups updated. |
12972 | 12972 |
12973 The easiest way to get started with @code{nnultimate} is to say | 12973 The easiest way to get started with @code{nnultimate} is to say |
12974 something like the following in the group buffer: @kbd{B nnultimate @key{RET} | 12974 something like the following in the group buffer: @kbd{B nnultimate @key{RET} |
12975 http://www.tcj.com/messboard/ubbcgi/ @key{RET}}. (Substitute the @sc{url} | 12975 http://www.tcj.com/messboard/ubbcgi/ @key{RET}}. (Substitute the @sc{url} |
12976 (not including @samp{Ultimate.cgi} or the like at the end) for a forum | 12976 (not including @samp{Ultimate.cgi} or the like at the end) for a forum |
12977 you're interested in; there's quite a list of them on the Ultimate web | 12977 you're interested in; there's quite a list of them on the Ultimate web |
12978 site.) Then subscribe to the groups you're interested in from the | 12978 site.) Then subscribe to the groups you're interested in from the |
12979 server buffer, and read them from the group buffer. | 12979 server buffer, and read them from the group buffer. |
13030 @cindex w3 | 13030 @cindex w3 |
13031 @cindex html | 13031 @cindex html |
13032 @cindex url | 13032 @cindex url |
13033 @cindex Netscape | 13033 @cindex Netscape |
13034 | 13034 |
13035 Gnus uses the url library to fetch web pages and Emacs/w3 to display web | 13035 Gnus uses the url library to fetch web pages and Emacs/w3 to display web |
13036 pages. Emacs/w3 is documented in its own manual, but there are some | 13036 pages. Emacs/w3 is documented in its own manual, but there are some |
13037 things that may be more relevant for Gnus users. | 13037 things that may be more relevant for Gnus users. |
13038 | 13038 |
13039 For instance, a common question is how to make Emacs/w3 follow links | 13039 For instance, a common question is how to make Emacs/w3 follow links |
13040 using the @code{browse-url} functions (which will call some external web | 13040 using the @code{browse-url} functions (which will call some external web |
13041 browser like Netscape). Here's one way: | 13041 browser like Netscape). Here's one way: |
13042 | 13042 |
13043 @lisp | 13043 @lisp |
13044 (eval-after-load "w3" | 13044 (eval-after-load "w3" |
13045 '(progn | 13045 '(progn |
13720 | 13720 |
13721 Here's an example: | 13721 Here's an example: |
13722 | 13722 |
13723 @lisp | 13723 @lisp |
13724 (setq gnus-post-method | 13724 (setq gnus-post-method |
13725 '(nngateway | 13725 '(nngateway |
13726 "mail2news@@replay.com" | 13726 "mail2news@@replay.com" |
13727 (nngateway-header-transformation | 13727 (nngateway-header-transformation |
13728 nngateway-mail2news-header-transformation))) | 13728 nngateway-mail2news-header-transformation))) |
13729 @end lisp | 13729 @end lisp |
13730 | 13730 |
13769 | 13769 |
13770 A server configuration in @code{~/.gnus} with a few @sc{imap} servers | 13770 A server configuration in @code{~/.gnus} with a few @sc{imap} servers |
13771 might look something like this: | 13771 might look something like this: |
13772 | 13772 |
13773 @lisp | 13773 @lisp |
13774 (setq gnus-secondary-select-methods | 13774 (setq gnus-secondary-select-methods |
13775 '((nnimap "simpleserver") ; no special configuration | 13775 '((nnimap "simpleserver") ; no special configuration |
13776 ; perhaps a ssh port forwarded server: | 13776 ; perhaps a ssh port forwarded server: |
13777 (nnimap "dolk" | 13777 (nnimap "dolk" |
13778 (nnimap-address "localhost") | 13778 (nnimap-address "localhost") |
13779 (nnimap-server-port 1430)) | 13779 (nnimap-server-port 1430)) |
13831 | 13831 |
13832 Example server specification: | 13832 Example server specification: |
13833 | 13833 |
13834 @lisp | 13834 @lisp |
13835 (nnimap "mail.server.com" | 13835 (nnimap "mail.server.com" |
13836 (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" | 13836 (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" |
13837 ("~friend/Mail/" . "list/*")))) | 13837 ("~friend/Mail/" . "list/*")))) |
13838 @end lisp | 13838 @end lisp |
13839 | 13839 |
13840 @item nnimap-stream | 13840 @item nnimap-stream |
13841 @vindex nnimap-stream | 13841 @vindex nnimap-stream |
14039 matching the regexp in the second element in the sublist. Got that? | 14039 matching the regexp in the second element in the sublist. Got that? |
14040 Neither did I, we need examples. | 14040 Neither did I, we need examples. |
14041 | 14041 |
14042 @lisp | 14042 @lisp |
14043 (setq nnimap-split-rule | 14043 (setq nnimap-split-rule |
14044 '(("INBOX.nnimap" | 14044 '(("INBOX.nnimap" |
14045 "^Sender: owner-nnimap@@vic20.globalcom.se") | 14045 "^Sender: owner-nnimap@@vic20.globalcom.se") |
14046 ("INBOX.junk" "^Subject:.*MAKE MONEY") | 14046 ("INBOX.junk" "^Subject:.*MAKE MONEY") |
14047 ("INBOX.private" ""))) | 14047 ("INBOX.private" ""))) |
14048 @end lisp | 14048 @end lisp |
14049 | 14049 |
15616 returned is the local score file. Phu. | 15616 returned is the local score file. Phu. |
15617 | 15617 |
15618 For example, to do hierarchical scoring but use a non-server-specific | 15618 For example, to do hierarchical scoring but use a non-server-specific |
15619 overall score file, you could use the value | 15619 overall score file, you could use the value |
15620 @example | 15620 @example |
15621 (list (lambda (group) ("all.SCORE")) | 15621 (list (lambda (group) ("all.SCORE")) |
15622 'gnus-score-find-hierarchical) | 15622 'gnus-score-find-hierarchical) |
15623 @end example | 15623 @end example |
15624 | 15624 |
15625 @item gnus-score-expiry-days | 15625 @item gnus-score-expiry-days |
15626 @vindex gnus-score-expiry-days | 15626 @vindex gnus-score-expiry-days |
16295 | 16295 |
16296 @item Multiple crossposts | 16296 @item Multiple crossposts |
16297 If you want to lower the score of articles that have been crossposted to | 16297 If you want to lower the score of articles that have been crossposted to |
16298 more than, say, 3 groups: | 16298 more than, say, 3 groups: |
16299 @lisp | 16299 @lisp |
16300 ("xref" | 16300 ("xref" |
16301 ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" | 16301 ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" |
16302 -1000 nil r)) | 16302 -1000 nil r)) |
16303 @end lisp | 16303 @end lisp |
16304 | 16304 |
16305 @item Matching on the body | 16305 @item Matching on the body |
17531 One common desire for a multiple frame split is to have a separate frame | 17531 One common desire for a multiple frame split is to have a separate frame |
17532 for composing mail and news while leaving the original frame intact. To | 17532 for composing mail and news while leaving the original frame intact. To |
17533 accomplish that, something like the following can be done: | 17533 accomplish that, something like the following can be done: |
17534 | 17534 |
17535 @lisp | 17535 @lisp |
17536 (message | 17536 (message |
17537 (frame 1.0 | 17537 (frame 1.0 |
17538 (if (not (buffer-live-p gnus-summary-buffer)) | 17538 (if (not (buffer-live-p gnus-summary-buffer)) |
17539 (car (cdr (assoc 'group gnus-buffer-configuration))) | 17539 (car (cdr (assoc 'group gnus-buffer-configuration))) |
17540 (car (cdr (assoc 'summary gnus-buffer-configuration)))) | 17540 (car (cdr (assoc 'summary gnus-buffer-configuration)))) |
17541 (vertical ((user-position . t) (top . 1) (left . 1) | 17541 (vertical ((user-position . t) (top . 1) (left . 1) |
17573 windows resized. | 17573 windows resized. |
17574 | 17574 |
17575 @subsection Example Window Configurations | 17575 @subsection Example Window Configurations |
17576 | 17576 |
17577 @itemize @bullet | 17577 @itemize @bullet |
17578 @item | 17578 @item |
17579 Narrow left hand side occupied by group buffer. Right hand side split | 17579 Narrow left hand side occupied by group buffer. Right hand side split |
17580 between summary buffer (top one-sixth) and article buffer (bottom). | 17580 between summary buffer (top one-sixth) and article buffer (bottom). |
17581 | 17581 |
17582 @ifinfo | 17582 @ifinfo |
17583 @example | 17583 @example |
18088 @findex gnus-undo-mode | 18088 @findex gnus-undo-mode |
18089 @vindex gnus-use-undo | 18089 @vindex gnus-use-undo |
18090 @findex gnus-undo | 18090 @findex gnus-undo |
18091 The undoability is provided by the @code{gnus-undo-mode} minor mode. It | 18091 The undoability is provided by the @code{gnus-undo-mode} minor mode. It |
18092 is used if @code{gnus-use-undo} is non-@code{nil}, which is the | 18092 is used if @code{gnus-use-undo} is non-@code{nil}, which is the |
18093 default. The @kbd{C-M-_} key performs the @code{gnus-undo} | 18093 default. The @kbd{C-M-_} key performs the @code{gnus-undo} |
18094 command, which should feel kinda like the normal Emacs @code{undo} | 18094 command, which should feel kinda like the normal Emacs @code{undo} |
18095 command. | 18095 command. |
18096 | 18096 |
18097 | 18097 |
18098 @node Moderation | 18098 @node Moderation |
18913 On September 13th 1997, Quassia Gnus was started and lasted 37 releases. | 18913 On September 13th 1997, Quassia Gnus was started and lasted 37 releases. |
18914 If was released as ``Gnus 5.6'' on March 8th 1998 (46 releases). | 18914 If was released as ``Gnus 5.6'' on March 8th 1998 (46 releases). |
18915 | 18915 |
18916 Gnus 5.6 begat Pterodactyl Gnus on August 29th 1998 and was released as | 18916 Gnus 5.6 begat Pterodactyl Gnus on August 29th 1998 and was released as |
18917 ``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd | 18917 ``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd |
18918 1999. | 18918 1999. |
18919 | 18919 |
18920 If you happen upon a version of Gnus that has a prefixed name -- | 18920 If you happen upon a version of Gnus that has a prefixed name -- |
18921 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' -- | 18921 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' -- |
18922 don't panic. Don't let it know that you're frightened. Back away. | 18922 don't panic. Don't let it know that you're frightened. Back away. |
18923 Slowly. Whatever you do, don't run. Walk away, calmly, until you're | 18923 Slowly. Whatever you do, don't run. Walk away, calmly, until you're |
20148 (setq nnmail-spool-file 'procmail) | 20148 (setq nnmail-spool-file 'procmail) |
20149 (setq nnmail-procmail-directory "~/mail/incoming/") | 20149 (setq nnmail-procmail-directory "~/mail/incoming/") |
20150 (setq nnmail-procmail-suffix "\\.in") | 20150 (setq nnmail-procmail-suffix "\\.in") |
20151 @end lisp | 20151 @end lisp |
20152 | 20152 |
20153 this now has changed to | 20153 this now has changed to |
20154 | 20154 |
20155 @lisp | 20155 @lisp |
20156 (setq mail-sources | 20156 (setq mail-sources |
20157 '((directory :path "~/mail/incoming/" | 20157 '((directory :path "~/mail/incoming/" |
20158 :suffix ".in"))) | 20158 :suffix ".in"))) |
20177 of variables starting with @code{gnus-treat-} have been added. | 20177 of variables starting with @code{gnus-treat-} have been added. |
20178 | 20178 |
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 back ends 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 |
20186 @item Gnus can now read IMAP mail via @code{nnimap}. | 20186 @item Gnus can now read IMAP mail via @code{nnimap}. |
20187 | 20187 |
20256 | 20256 |
20257 I guess most manuals are written after-the-fact; documenting a program | 20257 I guess most manuals are written after-the-fact; documenting a program |
20258 that's already there. This is not how this manual is written. When | 20258 that's already there. This is not how this manual is written. When |
20259 implementing something, I write the manual entry for that something | 20259 implementing something, I write the manual entry for that something |
20260 straight away. I then see that it's difficult to explain the | 20260 straight away. I then see that it's difficult to explain the |
20261 functionality, so I write how it's supposed to be, and then I change the | 20261 functionality, so I write how it's supposed to be, and then I change the |
20262 implementation. Writing the documentation and writing the code goes | 20262 implementation. Writing the documentation and writing the code goes |
20263 hand in hand. | 20263 hand in hand. |
20264 | 20264 |
20265 This, of course, means that this manual has no, or little, flow. It | 20265 This, of course, means that this manual has no, or little, flow. It |
20266 documents absolutely everything in Gnus, but often not where you're | 20266 documents absolutely everything in Gnus, but often not where you're |
20267 looking for it. It is a reference manual, and not a guide to how to get | 20267 looking for it. It is a reference manual, and not a guide to how to get |
20268 started with Gnus. | 20268 started with Gnus. |
20269 | 20269 |
20270 That would be a totally different book, that should be written using the | 20270 That would be a totally different book, that should be written using the |
20271 reference manual as source material. It would look quite differently. | 20271 reference manual as source material. It would look quite differently. |
20272 | 20272 |
20273 | 20273 |
20274 @page | 20274 @page |
20275 @node Terminology | 20275 @node Terminology |
21486 | 21486 |
21487 (defvoo nndir-nov-is-evil nil | 21487 (defvoo nndir-nov-is-evil nil |
21488 "*Non-nil means that nndir will never retrieve NOV headers." | 21488 "*Non-nil means that nndir will never retrieve NOV headers." |
21489 nnml-nov-is-evil) | 21489 nnml-nov-is-evil) |
21490 | 21490 |
21491 (defvoo nndir-current-group "" | 21491 (defvoo nndir-current-group "" |
21492 nil | 21492 nil |
21493 nnml-current-group nnmh-current-group) | 21493 nnml-current-group nnmh-current-group) |
21494 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory) | 21494 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory) |
21495 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail) | 21495 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail) |
21496 | 21496 |
21497 (defvoo nndir-status-string "" nil nnmh-status-string) | 21497 (defvoo nndir-status-string "" nil nnmh-status-string) |
21506 (or (cadr (assq 'nndir-directory defs)) | 21506 (or (cadr (assq 'nndir-directory defs)) |
21507 server)) | 21507 server)) |
21508 (unless (assq 'nndir-directory defs) | 21508 (unless (assq 'nndir-directory defs) |
21509 (push `(nndir-directory ,server) defs)) | 21509 (push `(nndir-directory ,server) defs)) |
21510 (push `(nndir-current-group | 21510 (push `(nndir-current-group |
21511 ,(file-name-nondirectory | 21511 ,(file-name-nondirectory |
21512 (directory-file-name nndir-directory))) | 21512 (directory-file-name nndir-directory))) |
21513 defs) | 21513 defs) |
21514 (push `(nndir-top-directory | 21514 (push `(nndir-top-directory |
21515 ,(file-name-directory (directory-file-name nndir-directory))) | 21515 ,(file-name-directory (directory-file-name nndir-directory))) |
21516 defs) | 21516 defs) |