diff options
| author | Miles Bader | 2007-10-28 09:18:39 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-10-28 09:18:39 +0000 |
| commit | 01c52d3165ffec363014bd9033ea2c317d32d6d6 (patch) | |
| tree | 5d90be562d45a88f172483b9a33ab4ada197d772 /doc | |
| parent | ccae01a639d69bc215e4af2835131cda3141e498 (diff) | |
| download | emacs-01c52d3165ffec363014bd9033ea2c317d32d6d6.tar.gz emacs-01c52d3165ffec363014bd9033ea2c317d32d6d6.zip | |
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-911
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/misc/ChangeLog | 453 | ||||
| -rw-r--r-- | doc/misc/emacs-mime.texi | 55 | ||||
| -rw-r--r-- | doc/misc/gnus-coding.texi | 381 | ||||
| -rw-r--r-- | doc/misc/gnus-faq.texi | 24 | ||||
| -rw-r--r-- | doc/misc/gnus-news.el | 121 | ||||
| -rw-r--r-- | doc/misc/gnus-news.texi | 264 | ||||
| -rw-r--r-- | doc/misc/gnus.texi | 1513 | ||||
| -rw-r--r-- | doc/misc/message.texi | 112 | ||||
| -rw-r--r-- | doc/misc/pgg.texi | 14 | ||||
| -rw-r--r-- | doc/misc/sasl.texi | 270 | ||||
| -rw-r--r-- | doc/misc/sieve.texi | 6 |
11 files changed, 2708 insertions, 505 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 6c7b4b60715..f3d8feaf251 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,456 @@ | |||
| 1 | 2007-10-28 Miles Bader <miles@gnu.org> | ||
| 2 | |||
| 3 | * gnus-news.texi, gnus-coding.texi, sasl.texi: New files. | ||
| 4 | |||
| 5 | 2007-10-28 Emanuele Giaquinta <e.giaquinta@glauco.it> (tiny change) | ||
| 6 | |||
| 7 | * gnus-faq.texi ([5.12]): Remove reference to discontinued service. | ||
| 8 | |||
| 9 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 10 | |||
| 11 | * gnus.texi (Sorting the Summary Buffer): Remove | ||
| 12 | gnus-article-sort-by-date-reverse. | ||
| 13 | |||
| 14 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 15 | |||
| 16 | * gnus.texi (Non-ASCII Group Names): New node. | ||
| 17 | (Misc Group Stuff): Move gnus-group-name-charset-method-alist and | ||
| 18 | gnus-group-name-charset-group-alist to Non-ASCII Group Names node. | ||
| 19 | |||
| 20 | 2007-10-28 Micha,Ak(Bl Cadilhac <michael@cadilhac.name> | ||
| 21 | |||
| 22 | * gnus.texi (Mail Source Specifiers, IMAP): Add a notice on the need to | ||
| 23 | clean the output of the program `imap-shell-program'. | ||
| 24 | |||
| 25 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 26 | |||
| 27 | * gnus.texi (IMAP): Mention nnimap-logout-timeout. | ||
| 28 | |||
| 29 | 2007-10-28 Tassilo Horn <tassilo@member.fsf.org> | ||
| 30 | |||
| 31 | * gnus.texi (Sticky Articles): Documentation for sticky article | ||
| 32 | buffers. | ||
| 33 | |||
| 34 | 2007-10-28 Micha,Ak(Bl Cadilhac <michael@cadilhac.name> | ||
| 35 | |||
| 36 | * gnus.texi (RSS): Document nnrss-ignore-article-fields. | ||
| 37 | |||
| 38 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 39 | |||
| 40 | * gnus.texi (Various Various): Mention gnus-add-timestamp-to-message. | ||
| 41 | |||
| 42 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 43 | |||
| 44 | * gnus.texi (Archived Messages): Document | ||
| 45 | gnus-update-message-archive-method. | ||
| 46 | |||
| 47 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 48 | |||
| 49 | * gnus.texi (Limiting): Document gnus-summary-limit-to-address. | ||
| 50 | |||
| 51 | 2007-10-28 Micha,Ak(Bl Cadilhac <michael@cadilhac.name> | ||
| 52 | |||
| 53 | * gnus.texi (Group Maneuvering): Document | ||
| 54 | `gnus-summary-next-group-on-exit'. | ||
| 55 | |||
| 56 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 57 | |||
| 58 | * gnus.texi (Really Various Summary Commands): Mention | ||
| 59 | gnus-auto-select-on-ephemeral-exit. | ||
| 60 | |||
| 61 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 62 | |||
| 63 | * gnus.texi, message.texi: Bump version number. | ||
| 64 | |||
| 65 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 66 | |||
| 67 | * gnus.texi (Group Line Specification, Misc Group Stuff) | ||
| 68 | (Server Commands): Parenthesize @pxref{Mail Spool}. | ||
| 69 | |||
| 70 | 2007-10-28 Didier Verna <didier@xemacs.org> | ||
| 71 | |||
| 72 | New user option: message-signature-directory. | ||
| 73 | * message.texi (Insertion Variables): Document it. | ||
| 74 | * gnus.texi (Posting Styles): Ditto. | ||
| 75 | |||
| 76 | 2007-10-28 Didier Verna <didier@xemacs.org> | ||
| 77 | |||
| 78 | * gnus.texi (Group Line Specification): | ||
| 79 | * gnus.texi (Misc Group Stuff): | ||
| 80 | * gnus.texi (Server Commands): Document the group compaction feature. | ||
| 81 | |||
| 82 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 83 | |||
| 84 | * gnus-faq.texi ([5.2]): Adjust for message-fill-column. | ||
| 85 | |||
| 86 | * message.texi (Various Message Variables): Add message-fill-column. | ||
| 87 | |||
| 88 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 89 | |||
| 90 | * gnus.texi: Untabify. | ||
| 91 | |||
| 92 | 2007-10-28 Didier Verna <didier@xemacs.org> | ||
| 93 | |||
| 94 | * gnus.texi (Group Parameters): Document the posting-style merging | ||
| 95 | process in topic-mode. | ||
| 96 | |||
| 97 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 98 | |||
| 99 | * gnus.texi (Scoring On Other Headers): Add gnus-inhibit-slow-scoring. | ||
| 100 | |||
| 101 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 102 | |||
| 103 | * gnus.texi (Mail Spool): Fix typo. | ||
| 104 | Update copyright. | ||
| 105 | |||
| 106 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 107 | |||
| 108 | * gnus.texi (Limiting): Add gnus-summary-limit-to-singletons. | ||
| 109 | |||
| 110 | 2007-10-28 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 111 | |||
| 112 | * gnus.texi (Summary Generation Commands): | ||
| 113 | Add gnus-summary-insert-ticked-articles. | ||
| 114 | |||
| 115 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 116 | |||
| 117 | * gnus.texi | ||
| 118 | (SpamAssassin back end): Rename spam-spamassassin-path to | ||
| 119 | spam-spamassassin-program. | ||
| 120 | |||
| 121 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 122 | |||
| 123 | * gnus.texi (Mail and Post): Add gnus-message-highlight-citation. | ||
| 124 | |||
| 125 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 126 | |||
| 127 | * gnus.texi (Limiting): Add gnus-summary-limit-to-headers. | ||
| 128 | |||
| 129 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 130 | |||
| 131 | * message.texi (Mail Headers): Document `opportunistic'. | ||
| 132 | |||
| 133 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 134 | |||
| 135 | * emacs-mime.texi (Encoding Customization): Explain how to set | ||
| 136 | mm-coding-system-priorities per hierarchy. | ||
| 137 | |||
| 138 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 139 | |||
| 140 | * gnus.texi (Washing Mail): Add nnmail-ignore-broken-references and | ||
| 141 | nnmail-broken-references-mailers instead of nnmail-fix-eudora-headers. | ||
| 142 | |||
| 143 | 2007-10-28 Didier Verna <didier@xemacs.org> | ||
| 144 | |||
| 145 | * message.texi (Wide Reply): Update documentation of | ||
| 146 | message-dont-reply-to-names (now allowing a list of regexps). | ||
| 147 | |||
| 148 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 149 | |||
| 150 | * gnus.texi (Spam Package Introduction): Fix spam menu and links. | ||
| 151 | |||
| 152 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 153 | |||
| 154 | * gnus.texi (SpamAssassin back end): Fix typo. | ||
| 155 | |||
| 156 | * sieve.texi (Examples): Fix grammar. | ||
| 157 | |||
| 158 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 159 | |||
| 160 | * gnus.texi (Searching for Articles): Document M-S and M-R. | ||
| 161 | (Limiting): Document / b. | ||
| 162 | |||
| 163 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 164 | |||
| 165 | * gnus.texi (Thread Commands): T M-^. | ||
| 166 | |||
| 167 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 168 | |||
| 169 | * message.texi (Mail Aliases): Document ecomplete. | ||
| 170 | (Mail Aliases): Fix typo. | ||
| 171 | |||
| 172 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 173 | |||
| 174 | * gnus.texi (Face): Restore xref to gnus-face-properties-alist; | ||
| 175 | fix typo. | ||
| 176 | |||
| 177 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 178 | |||
| 179 | * gnus.texi (Mail Spool): Grammar fix. | ||
| 180 | |||
| 181 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 182 | |||
| 183 | * gnus.texi (Mail Spool): nnml-use-compressed-files can be a | ||
| 184 | string. | ||
| 185 | |||
| 186 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 187 | |||
| 188 | * gnus.texi (Group Parameters): Fix description. | ||
| 189 | |||
| 190 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 191 | |||
| 192 | * gnus.texi (Gmane Spam Reporting): Fix | ||
| 193 | spam-report-gmane-use-article-number. Add | ||
| 194 | spam-report-user-mail-address. | ||
| 195 | |||
| 196 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 197 | |||
| 198 | * emacs-mime.texi (Non-MIME): x-gnus-verbatim -> x-verbatim. | ||
| 199 | |||
| 200 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 201 | |||
| 202 | * gnus.texi (Group Parameters): Add simplified sorting example based on | ||
| 203 | example for `Sorting the Summary Buffer' from Jari Aalto | ||
| 204 | <jari.aalto@cante.net>. | ||
| 205 | (Example Methods): Add example for an indirect connection. | ||
| 206 | |||
| 207 | 2007-10-28 Kevin Greiner <kevin.greiner@compsol.cc> | ||
| 208 | |||
| 209 | * gnus.texi (nntp-open-via-telnet-and-telnet): Fixed grammar. | ||
| 210 | (Agent Parameters): Updated parameter names to match code. | ||
| 211 | (Group Agent Commands): Corrected 'gnus-agent-fetch-series' as | ||
| 212 | 'gnus-agent-summary-fetch-series'. | ||
| 213 | (Agent and flags): New section providing a generalized discussion | ||
| 214 | of flag handling. | ||
| 215 | (Agent and IMAP): Removed flag discussion. | ||
| 216 | (Agent Variables): Added 'gnus-agent-synchronize-flags' | ||
| 217 | |||
| 218 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 219 | |||
| 220 | * gnus.texi (Exiting the Summary Buffer): Add new function | ||
| 221 | `gnus-summary-catchup-and-goto-prev-group', bound to `Z p'. | ||
| 222 | |||
| 223 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 224 | |||
| 225 | * gnus.texi (Conformity): Fix typo. | ||
| 226 | (Customizing Articles): Document `first'. | ||
| 227 | |||
| 228 | 2007-10-28 Jari Aalto <jari.aalto@cante.net> | ||
| 229 | |||
| 230 | * gnus.texi (Sorting the Summary Buffer): | ||
| 231 | Add `gnus-thread-sort-by-date-reverse'. Add example | ||
| 232 | host to different sorting in NNTP and RSS groups. | ||
| 233 | |||
| 234 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 235 | |||
| 236 | * message.texi (Insertion): Describe prefix for | ||
| 237 | message-mark-inserted-region and message-mark-insert-file. | ||
| 238 | |||
| 239 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 240 | |||
| 241 | * emacs-mime.texi (Non-MIME): Add Slrn-style verbatim marks and | ||
| 242 | LaTeX documents. Describe "text/x-gnus-verbatim". | ||
| 243 | |||
| 244 | 2007-10-28 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 245 | |||
| 246 | * gnus.texi (Blacklists and Whitelists) | ||
| 247 | (Blacklists and Whitelists, BBDB Whitelists) | ||
| 248 | (Gmane Spam Reporting, Bogofilter, spam-stat spam filtering) | ||
| 249 | (spam-stat spam filtering, SpamOracle) | ||
| 250 | (Extending the Spam ELisp package): Removed extra quote symbol for | ||
| 251 | clarity. | ||
| 252 | |||
| 253 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 254 | |||
| 255 | * gnus.texi (MIME Commands): Add gnus-article-save-part-and-strip, | ||
| 256 | gnus-article-delete-part and gnus-article-replace-part. | ||
| 257 | (Using MIME): Add gnus-mime-replace-part. | ||
| 258 | |||
| 259 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 260 | |||
| 261 | * gnus.texi (Mail Spool): Mention that `nnml-use-compressed-files' | ||
| 262 | requires `auto-compression-mode' to be enabled. Add new nnml | ||
| 263 | variable `nnml-compressed-files-size-threshold'. | ||
| 264 | |||
| 265 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 266 | |||
| 267 | * gnus.texi (Sorting the Summary Buffer): Added | ||
| 268 | gnus-thread-sort-by-recipient. | ||
| 269 | |||
| 270 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 271 | |||
| 272 | * message.texi (Insertion Variables): Mention new variable | ||
| 273 | `message-yank-empty-prefix'. Change `message-yank-cited-prefix' | ||
| 274 | documentation accordingly. | ||
| 275 | |||
| 276 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 277 | |||
| 278 | * gnus.texi (To From Newsgroups): Mention new variables | ||
| 279 | `gnus-summary-to-prefix' and `gnus-summary-newsgroup-prefix'. | ||
| 280 | |||
| 281 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 282 | |||
| 283 | * gnus.texi (Using MIME): gnus-mime-copy-part supports the charset | ||
| 284 | stuff; gnus-mime-inline-part does the automatic decompression. | ||
| 285 | |||
| 286 | 2007-10-28 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 287 | |||
| 288 | * gnus.texi (Spam ELisp Package Configuration Examples): | ||
| 289 | "training.ham" should be "training.spam" | ||
| 290 | |||
| 291 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 292 | |||
| 293 | * message.texi (Mail Variables): Fix the default value for | ||
| 294 | message-send-mail-function. | ||
| 295 | |||
| 296 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 297 | |||
| 298 | * gnus.texi (Optional Back End Functions): nntp-request-update-info | ||
| 299 | always returns nil exceptionally. | ||
| 300 | |||
| 301 | 2007-10-28 Simon Josefsson <jas@extundo.com> | ||
| 302 | |||
| 303 | * gnus.texi (Article Washing): Add libidn URL. Suggested by | ||
| 304 | Michael Cook <michael@waxrat.com>. | ||
| 305 | |||
| 306 | 2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 307 | |||
| 308 | * gnus.texi (Topic Commands): Fix next/previous. | ||
| 309 | |||
| 310 | 2007-10-28 Simon Josefsson <jas@extundo.com> | ||
| 311 | |||
| 312 | * gnus.texi (Article Washing): Mention `W i'. | ||
| 313 | |||
| 314 | 2007-10-28 Jochen K,A|(Bpper <jochen@fhi-berlin.mpg.de> | ||
| 315 | |||
| 316 | * gnus.texi (Group Parameters): Slight extension of sieve | ||
| 317 | parameter description. | ||
| 318 | |||
| 319 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 320 | |||
| 321 | * gnus.texi (Score Decays): `gnus-decay-scores' can be a regexp | ||
| 322 | matching score files as well. | ||
| 323 | (Picons): Describe `gnus-picon-style'. | ||
| 324 | |||
| 325 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 326 | |||
| 327 | * message.texi (Message Headers): Mention that headers are hidden | ||
| 328 | using narrowing, and how to expose them. | ||
| 329 | Update copyright. | ||
| 330 | |||
| 331 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 332 | |||
| 333 | * gnusref.tex: Mention `gnus-summary-limit-to-recipient' and | ||
| 334 | `gnus-summary-sort-by-recipient'. | ||
| 335 | |||
| 336 | 2007-10-28 Romain Francoise <romain@orebokech.com> | ||
| 337 | |||
| 338 | * gnus.texi (NNTP marks): New node. | ||
| 339 | (NNTP): Move NNTP marks variables to the new node. | ||
| 340 | |||
| 341 | 2007-10-28 Jesper Harder <harder@ifa.au.dk> | ||
| 342 | |||
| 343 | * gnus.texi, gnus-news.texi, pgg.texi, sasl.texi: backend -> back | ||
| 344 | end. | ||
| 345 | |||
| 346 | * gnus.texi (MIME Commands, Hashcash): Markup fix. | ||
| 347 | |||
| 348 | 2007-10-28 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 349 | |||
| 350 | * gnus.texi: replaced @file{spam.el} with @code{spam.el} | ||
| 351 | everywhere for consistency. | ||
| 352 | (Filtering Spam Using The Spam ELisp Package): admonish again. | ||
| 353 | (Spam ELisp Package Sequence of Events): this is Gnus, say so. | ||
| 354 | Say "regular expression" instead of "regex." Admonish. Pick | ||
| 355 | other words to sound better (s/so/thus/). | ||
| 356 | (Spam ELisp Package Filtering of Incoming Mail): mention | ||
| 357 | statistical filters. Remove old TODO. | ||
| 358 | (Spam ELisp Package Sorting and Score Display in Summary Buffer): | ||
| 359 | new section on sorting and displaying the spam score | ||
| 360 | (BBDB Whitelists): mention spam-use-BBDB-exclusive is not a | ||
| 361 | backend but an alias to spam-use-BBDB | ||
| 362 | (Extending the Spam ELisp package): rewrite the example using the | ||
| 363 | new backend functionality. | ||
| 364 | |||
| 365 | 2007-10-28 Simon Josefsson <jas@extundo.com> | ||
| 366 | |||
| 367 | * gnus.texi (NNTP): Mention nntp-marks-is-evil and | ||
| 368 | nntp-marks-directory, from Romain Francoise | ||
| 369 | <romain@orebokech.com>. | ||
| 370 | |||
| 371 | 2007-10-28 Magnus Henoch <mange@freemail.hu> | ||
| 372 | |||
| 373 | * gnus.texi (Hashcash): New default value of | ||
| 374 | hashcash-default-payment. | ||
| 375 | |||
| 376 | 2007-10-28 Simon Josefsson <jas@extundo.com> | ||
| 377 | |||
| 378 | * gnus.texi (Hashcash): Fix URL. Add pref to spam section. | ||
| 379 | (Anti-spam Hashcash Payments): No need to load hashcash.el now. | ||
| 380 | |||
| 381 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 382 | |||
| 383 | * gnus.texi (Adaptive Scoring): Added gnus-adaptive-pretty-print. | ||
| 384 | |||
| 385 | 2007-10-28 Simon Josefsson <jas@extundo.com> | ||
| 386 | |||
| 387 | * gnus.texi (documentencoding): Add, to avoid warnings. | ||
| 388 | |||
| 389 | 2007-10-28 Simon Josefsson <jas@extundo.com> | ||
| 390 | |||
| 391 | * message.texi (Mail Headers): Add. | ||
| 392 | |||
| 393 | * gnus.texi (Hashcash): Fix. | ||
| 394 | |||
| 395 | 2007-10-28 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 396 | |||
| 397 | * gnus.texi (Hashcash): changed location of library, also mention | ||
| 398 | that payments can be verified and fix the name of the | ||
| 399 | hashcash-path variable | ||
| 400 | |||
| 401 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 402 | |||
| 403 | * gnus.texi | ||
| 404 | (Article Display): Add `gnus-picon-style'. | ||
| 405 | |||
| 406 | 2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 407 | |||
| 408 | * gnus.texi (SpamAssassin backend): Add it to the detailmenu. | ||
| 409 | |||
| 410 | 2007-10-28 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 411 | |||
| 412 | * gnus.texi (Blacklists and Whitelists, BBDB Whitelists) | ||
| 413 | (Bogofilter, spam-stat spam filtering, SpamOracle): old incorrect | ||
| 414 | warning about ham processors in spam groups removed | ||
| 415 | |||
| 416 | 2007-10-28 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 417 | From Hubert Chan <hubert@uhoreg.ca> | ||
| 418 | |||
| 419 | * gnus.texi (SpamAssassin backend): added new node about SpamAssassin | ||
| 420 | |||
| 421 | 2007-10-28 Jesper Harder <harder@ifa.au.dk> | ||
| 422 | |||
| 423 | * gnus.texi (Spam ELisp Package Sequence of Events): Index. | ||
| 424 | (Mailing List): Typo. | ||
| 425 | (Customizing Articles): Add gnus-treat-ansi-sequences. | ||
| 426 | (Article Washing): Index. | ||
| 427 | |||
| 428 | * message.texi: Use m-dash consistently. | ||
| 429 | |||
| 430 | 2007-10-28 Jesper Harder <harder@ifa.au.dk> | ||
| 431 | |||
| 432 | * gnus.texi (GroupLens): Remove. | ||
| 433 | |||
| 434 | 2007-10-28 Kevin Greiner <kgreiner@xpediantsolutions.com> | ||
| 435 | |||
| 436 | * gnus.texi (Outgoing Messages, Agent Variables): Add | ||
| 437 | gnus-agent-queue-mail and gnus-agent-prompt-send-queue. | ||
| 438 | Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> | ||
| 439 | |||
| 440 | 2007-10-28 Jesper Harder <harder@ifa.au.dk> | ||
| 441 | |||
| 442 | * gnus.texi (Limiting): Add gnus-summary-limit-to-replied. | ||
| 443 | |||
| 444 | 2007-10-28 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 445 | |||
| 446 | * gnus.texi (Article Washing): Add `gnus-article-treat-ansi-sequences'. | ||
| 447 | |||
| 448 | * gnus.texi (No Gnus): New node. Includes `gnus-news.texi'. | ||
| 449 | |||
| 450 | 2007-10-28 Simon Josefsson <jas@extundo.com> | ||
| 451 | |||
| 452 | * gnus.texi (Top): Add SASL. | ||
| 453 | |||
| 1 | 2007-10-27 Jay Belanger <jay.p.belanger@gmail.com> | 454 | 2007-10-27 Jay Belanger <jay.p.belanger@gmail.com> |
| 2 | 455 | ||
| 3 | * calc.texi (Formulas, Composition Basics): Lower the | 456 | * calc.texi (Formulas, Composition Basics): Lower the |
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi index 7490c9b6bc2..d4cbf8380b6 100644 --- a/doc/misc/emacs-mime.texi +++ b/doc/misc/emacs-mime.texi | |||
| @@ -180,8 +180,27 @@ Patches. This is intended for groups where diffs of committed files | |||
| 180 | are automatically sent to. It only works in groups matching | 180 | are automatically sent to. It only works in groups matching |
| 181 | @code{mm-uu-diff-groups-regexp}. | 181 | @code{mm-uu-diff-groups-regexp}. |
| 182 | 182 | ||
| 183 | @item verbatim-marks | ||
| 184 | @cindex verbatim-marks | ||
| 185 | Slrn-style verbatim marks. | ||
| 186 | |||
| 187 | @item LaTeX | ||
| 188 | @cindex LaTeX | ||
| 189 | LaTeX documents. It only works in groups matching | ||
| 190 | @code{mm-uu-tex-groups-regexp}. | ||
| 191 | |||
| 183 | @end table | 192 | @end table |
| 184 | 193 | ||
| 194 | @cindex text/x-verbatim | ||
| 195 | @c Is @vindex suitable for a face? | ||
| 196 | @vindex mm-uu-extract | ||
| 197 | Some inlined non-@acronym{MIME} attachments are displayed using the face | ||
| 198 | @code{mm-uu-extract}. By default, no @acronym{MIME} button for these | ||
| 199 | parts is displayed. You can force displaying a button using @kbd{K b} | ||
| 200 | (@code{gnus-summary-display-buttonized}) or add @code{text/x-verbatim} | ||
| 201 | to @code{gnus-buttonized-mime-types}, @xref{MIME Commands, ,MIME | ||
| 202 | Commands, gnus, Gnus Manual}. | ||
| 203 | |||
| 185 | @node Handles | 204 | @node Handles |
| 186 | @section Handles | 205 | @section Handles |
| 187 | 206 | ||
| @@ -849,6 +868,36 @@ ISO-8859-1 if possible, you can set this variable to | |||
| 849 | @code{(iso-8859-1)}. You can override this setting on a per-message | 868 | @code{(iso-8859-1)}. You can override this setting on a per-message |
| 850 | basis by using the @code{charset} @acronym{MML} tag (@pxref{MML Definition}). | 869 | basis by using the @code{charset} @acronym{MML} tag (@pxref{MML Definition}). |
| 851 | 870 | ||
| 871 | As different hierarchies prefer different charsets, you may want to set | ||
| 872 | @code{mm-coding-system-priorities} according to the hierarchy in Gnus. | ||
| 873 | Here's an example: | ||
| 874 | |||
| 875 | @c Corrections about preferred charsets are welcome. de, fr and fj | ||
| 876 | @c should be correct, I don't know about the rest (so these are only | ||
| 877 | @c examples): | ||
| 878 | @lisp | ||
| 879 | (add-to-list 'gnus-newsgroup-variables 'mm-coding-system-priorities) | ||
| 880 | (setq gnus-parameters | ||
| 881 | (nconc | ||
| 882 | ;; Some charsets are just examples! | ||
| 883 | '(("^cn\\." ;; Chinese | ||
| 884 | (mm-coding-system-priorities | ||
| 885 | '(iso-8859-1 cn-big5 chinese-iso-7bit utf-8))) | ||
| 886 | ("^cz\\.\\|^pl\\." ;; Central and Eastern European | ||
| 887 | (mm-coding-system-priorities '(iso-8859-2 utf-8))) | ||
| 888 | ("^de\\." ;; German language | ||
| 889 | (mm-coding-system-priorities '(iso-8859-1 iso-8859-15 utf-8))) | ||
| 890 | ("^fr\\." ;; French | ||
| 891 | (mm-coding-system-priorities '(iso-8859-15 iso-8859-1 utf-8))) | ||
| 892 | ("^fj\\." ;; Japanese | ||
| 893 | (mm-coding-system-priorities | ||
| 894 | '(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8))) | ||
| 895 | ("^ru\\." ;; Cyrillic | ||
| 896 | (mm-coding-system-priorities | ||
| 897 | '(koi8-r iso-8859-5 iso-8859-1 utf-8)))) | ||
| 898 | gnus-parameters)) | ||
| 899 | @end lisp | ||
| 900 | |||
| 852 | @item mm-content-transfer-encoding-defaults | 901 | @item mm-content-transfer-encoding-defaults |
| 853 | @vindex mm-content-transfer-encoding-defaults | 902 | @vindex mm-content-transfer-encoding-defaults |
| 854 | Mapping from @acronym{MIME} types to encoding to use. This variable is usually | 903 | Mapping from @acronym{MIME} types to encoding to use. This variable is usually |
| @@ -1155,7 +1204,7 @@ Return the value of the field under point. | |||
| 1155 | @item mail-encode-encoded-word-region | 1204 | @item mail-encode-encoded-word-region |
| 1156 | @findex mail-encode-encoded-word-region | 1205 | @findex mail-encode-encoded-word-region |
| 1157 | Encode the non-@acronym{ASCII} words in the region. For instance, | 1206 | Encode the non-@acronym{ASCII} words in the region. For instance, |
| 1158 | @samp{Naïve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}. | 1207 | @samp{Na@"{@dotless{i}}ve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}. |
| 1159 | 1208 | ||
| 1160 | @item mail-encode-encoded-word-buffer | 1209 | @item mail-encode-encoded-word-buffer |
| 1161 | @findex mail-encode-encoded-word-buffer | 1210 | @findex mail-encode-encoded-word-buffer |
| @@ -1168,7 +1217,7 @@ Encode the words that need encoding in a string, and return the result. | |||
| 1168 | 1217 | ||
| 1169 | @example | 1218 | @example |
| 1170 | (mail-encode-encoded-word-string | 1219 | (mail-encode-encoded-word-string |
| 1171 | "This is naïve, baby") | 1220 | "This is na@"{@dotless{i}}ve, baby") |
| 1172 | @result{} "This is =?iso-8859-1?q?na=EFve,?= baby" | 1221 | @result{} "This is =?iso-8859-1?q?na=EFve,?= baby" |
| 1173 | @end example | 1222 | @end example |
| 1174 | 1223 | ||
| @@ -1183,7 +1232,7 @@ Decode the encoded words in the string and return the result. | |||
| 1183 | @example | 1232 | @example |
| 1184 | (mail-decode-encoded-word-string | 1233 | (mail-decode-encoded-word-string |
| 1185 | "This is =?iso-8859-1?q?na=EFve,?= baby") | 1234 | "This is =?iso-8859-1?q?na=EFve,?= baby") |
| 1186 | @result{} "This is naïve, baby" | 1235 | @result{} "This is na@"{@dotless{i}}ve, baby" |
| 1187 | @end example | 1236 | @end example |
| 1188 | 1237 | ||
| 1189 | @end table | 1238 | @end table |
diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi new file mode 100644 index 00000000000..1fead8c9b80 --- /dev/null +++ b/doc/misc/gnus-coding.texi | |||
| @@ -0,0 +1,381 @@ | |||
| 1 | \input texinfo | ||
| 2 | |||
| 3 | @setfilename gnus-coding | ||
| 4 | @settitle Gnus Coding Style and Maintainance Guide | ||
| 5 | @syncodeindex fn cp | ||
| 6 | @syncodeindex vr cp | ||
| 7 | @syncodeindex pg cp | ||
| 8 | |||
| 9 | @copying | ||
| 10 | Copyright (c) 2004, 2005, 2007 Free Software Foundation, Inc. | ||
| 11 | |||
| 12 | @quotation | ||
| 13 | Permission is granted to copy, distribute and/or modify this document | ||
| 14 | under the terms of the GNU Free Documentation License, Version 1.1 or | ||
| 15 | any later version published by the Free Software Foundation; with no | ||
| 16 | Invariant Sections, with the Front-Cover texts being ``A GNU | ||
| 17 | Manual'', and with the Back-Cover Texts as in (a) below. A copy of the | ||
| 18 | license is included in the section entitled ``GNU Free Documentation | ||
| 19 | License'' in the Emacs manual. | ||
| 20 | |||
| 21 | (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify | ||
| 22 | this GNU Manual, like GNU software. Copies published by the Free | ||
| 23 | Software Foundation raise funds for GNU development.'' | ||
| 24 | |||
| 25 | This document is part of a collection distributed under the GNU Free | ||
| 26 | Documentation License. If you want to distribute this document | ||
| 27 | separately from the collection, you can do so by adding a copy of the | ||
| 28 | license to the document, as described in section 6 of the license. | ||
| 29 | @end quotation | ||
| 30 | @end copying | ||
| 31 | |||
| 32 | |||
| 33 | @titlepage | ||
| 34 | @title Gnus Coding Style and Maintainance Guide | ||
| 35 | |||
| 36 | @author by Reiner Steib <Reiner.Steib@@gmx.de> | ||
| 37 | |||
| 38 | @insertcopying | ||
| 39 | @end titlepage | ||
| 40 | |||
| 41 | @c Obviously this is only a very rudimentary draft. We put it in CVS | ||
| 42 | @c anyway hoping that it might annoy someone enough to fix it. ;-) | ||
| 43 | @c Fixing only a paragraph also is appreciated. | ||
| 44 | |||
| 45 | @node Top | ||
| 46 | @top Gnus Coding Style and Maintainance Guide | ||
| 47 | This manual describes @dots{} | ||
| 48 | @menu | ||
| 49 | * Gnus Coding Style:: Gnus Coding Style | ||
| 50 | * Gnus Maintainance Guide:: Gnus Maintainance Guide | ||
| 51 | @end menu | ||
| 52 | |||
| 53 | @c @ref{Gnus Reference Guide, ,Gnus Reference Guide, gnus, The Gnus Newsreader} | ||
| 54 | |||
| 55 | @node Gnus Coding Style | ||
| 56 | @chapter Gnus Coding Style | ||
| 57 | @section Dependencies | ||
| 58 | |||
| 59 | The Gnus distribution contains a lot of libraries that have been written | ||
| 60 | for Gnus and used intensively for Gnus. But many of those libraries are | ||
| 61 | useful on their own. E.g. other Emacs Lisp packages might use the | ||
| 62 | @acronym{MIME} library @xref{Top, ,Top, emacs-mime, The Emacs MIME | ||
| 63 | Manual}. | ||
| 64 | |||
| 65 | @subsection General purpose libraries | ||
| 66 | |||
| 67 | @table @file | ||
| 68 | |||
| 69 | @item netrc.el | ||
| 70 | @file{.netrc} parsing functionality. | ||
| 71 | @c As of 2005-10-21... | ||
| 72 | There are no Gnus dependencies in this file. | ||
| 73 | |||
| 74 | @item format-spec.el | ||
| 75 | Functions for formatting arbitrary formatting strings. | ||
| 76 | @c As of 2005-10-21... | ||
| 77 | There are no Gnus dependencies in this file. | ||
| 78 | |||
| 79 | @item hex-util.el | ||
| 80 | Functions to encode/decode hexadecimal string. | ||
| 81 | @c As of 2007-08-25... | ||
| 82 | There are no Gnus dependencies in these files. | ||
| 83 | @end table | ||
| 84 | |||
| 85 | @subsection Encryption and security | ||
| 86 | |||
| 87 | @table @file | ||
| 88 | @item encrypt.el | ||
| 89 | File encryption routines | ||
| 90 | @c As of 2005-10-25... | ||
| 91 | There are no Gnus dependencies in this file. | ||
| 92 | |||
| 93 | @item password.el | ||
| 94 | Read passwords from user, possibly using a password cache. | ||
| 95 | @c As of 2005-10-21... | ||
| 96 | There are no Gnus dependencies in this file. | ||
| 97 | |||
| 98 | @item tls.el | ||
| 99 | TLS/SSL support via wrapper around GnuTLS | ||
| 100 | @c As of 2005-10-21... | ||
| 101 | There are no Gnus dependencies in this file. | ||
| 102 | |||
| 103 | @item pgg*.el | ||
| 104 | Glue for the various PGP implementations. | ||
| 105 | @c As of 2005-10-21... | ||
| 106 | There are no Gnus dependencies in these files. | ||
| 107 | |||
| 108 | @item sha1.el | ||
| 109 | SHA1 Secure Hash Algorithm. | ||
| 110 | @c As of 2007-08-25... | ||
| 111 | There are no Gnus dependencies in these files. | ||
| 112 | @end table | ||
| 113 | |||
| 114 | @subsection Networking | ||
| 115 | |||
| 116 | @table @file | ||
| 117 | @item dig.el | ||
| 118 | Domain Name System dig interface. | ||
| 119 | @c As of 2005-10-21... | ||
| 120 | There are no serious Gnus dependencies in this file. Uses | ||
| 121 | @code{gnus-run-mode-hooks} (a wrapper function). | ||
| 122 | |||
| 123 | @item dns.el, dns-mode.el | ||
| 124 | Domain Name Service lookups. | ||
| 125 | @c As of 2005-10-21... | ||
| 126 | There are no Gnus dependencies in these files. | ||
| 127 | @end table | ||
| 128 | |||
| 129 | @subsection Mail and News related RFCs | ||
| 130 | |||
| 131 | @table @file | ||
| 132 | @item pop3.el | ||
| 133 | Post Office Protocol (RFC 1460) interface. | ||
| 134 | @c As of 2005-10-21... | ||
| 135 | There are no Gnus dependencies in this file. | ||
| 136 | |||
| 137 | @item imap.el | ||
| 138 | @acronym{IMAP} library. | ||
| 139 | @c As of 2005-10-21... | ||
| 140 | There are no Gnus dependencies in this file. | ||
| 141 | |||
| 142 | @item ietf-drums.el | ||
| 143 | Functions for parsing RFC822bis headers. | ||
| 144 | @c As of 2005-10-21... | ||
| 145 | There are no Gnus dependencies in this file. | ||
| 146 | |||
| 147 | @item rfc1843.el | ||
| 148 | HZ (rfc1843) decoding. HZ is a data format for exchanging files of | ||
| 149 | arbitrarily mixed Chinese and @acronym{ASCII} characters. | ||
| 150 | @c As of 2005-10-21... | ||
| 151 | @code{rfc1843-gnus-setup} seem to be useful only for Gnus. Maybe this | ||
| 152 | function should be relocated to remove dependencies on Gnus. Other | ||
| 153 | minor dependencies: @code{gnus-newsgroup-name} could be eliminated by | ||
| 154 | using an optional argument to @code{rfc1843-decode-article-body}. | ||
| 155 | |||
| 156 | @item rfc2045.el | ||
| 157 | Functions for decoding rfc2045 headers | ||
| 158 | @c As of 2007-08-25... | ||
| 159 | There are no Gnus dependencies in these files. | ||
| 160 | |||
| 161 | @item rfc2047.el | ||
| 162 | Functions for encoding and decoding rfc2047 messages | ||
| 163 | @c As of 2007-08-25... | ||
| 164 | There are no Gnus dependencies in these files. | ||
| 165 | @c | ||
| 166 | Only a couple of tests for gnusy symbols. | ||
| 167 | |||
| 168 | @item rfc2104.el | ||
| 169 | RFC2104 Hashed Message Authentication Codes | ||
| 170 | @c As of 2007-08-25... | ||
| 171 | There are no Gnus dependencies in these files. | ||
| 172 | |||
| 173 | @item rfc2231.el | ||
| 174 | Functions for decoding rfc2231 headers | ||
| 175 | @c As of 2007-08-25... | ||
| 176 | There are no Gnus dependencies in these files. | ||
| 177 | |||
| 178 | @item flow-fill.el | ||
| 179 | Interpret RFC2646 "flowed" text. | ||
| 180 | @c As of 2005-10-27... | ||
| 181 | There are no Gnus dependencies in this file. | ||
| 182 | |||
| 183 | @item uudecode.el | ||
| 184 | Elisp native uudecode. | ||
| 185 | @c As of 2005-12-06... | ||
| 186 | There are no Gnus dependencies in this file. | ||
| 187 | @c ... but the custom group is gnus-extract. | ||
| 188 | |||
| 189 | @item canlock.el | ||
| 190 | Functions for Cancel-Lock feature | ||
| 191 | @c Cf. draft-ietf-usefor-cancel-lock-01.txt | ||
| 192 | @c Although this draft has expired, Canlock-Lock revived in 2007 when | ||
| 193 | @c major news providers (e.g. news.individual.org) started to use it. | ||
| 194 | @c As of 2007-08-25... | ||
| 195 | There are no Gnus dependencies in these files. | ||
| 196 | |||
| 197 | @end table | ||
| 198 | |||
| 199 | @subsection message | ||
| 200 | |||
| 201 | All message composition from Gnus (both mail and news) takes place in | ||
| 202 | Message mode buffers. Message mode is intended to be a replacement for | ||
| 203 | Emacs mail mode. There should be no Gnus dependencies in | ||
| 204 | @file{message.el}. Alas it is not anymore. Patches and suggestions to | ||
| 205 | remove the dependencies are welcome. | ||
| 206 | |||
| 207 | @c message.el requires nnheader which requires gnus-util. | ||
| 208 | |||
| 209 | @subsection Emacs @acronym{MIME} | ||
| 210 | |||
| 211 | The files @file{mml*.el} and @file{mm-*.el} provide @acronym{MIME} | ||
| 212 | functionality for Emacs. | ||
| 213 | |||
| 214 | @acronym{MML} (@acronym{MIME} Meta Language) is supposed to be | ||
| 215 | independent from Gnus. Alas it is not anymore. Patches and suggestions | ||
| 216 | to remove the dependencies are welcome. | ||
| 217 | |||
| 218 | @subsection Gnus backends | ||
| 219 | |||
| 220 | The files @file{nn*.el} provide functionality for accessing NNTP | ||
| 221 | (@file{nntp.el}), IMAP (@file{nnimap.el}) and several other Mail back | ||
| 222 | ends (probably @file{nnml.el}, @file{nnfolder.el} and | ||
| 223 | @file{nnmaildir.el} are the most widely used mail back ends). | ||
| 224 | |||
| 225 | @c mm-uu requires nnheader which requires gnus-util. message.el also | ||
| 226 | @c requires nnheader. | ||
| 227 | |||
| 228 | |||
| 229 | @section Compatibility | ||
| 230 | |||
| 231 | No Gnus and Gnus 5.10.10 and up should work on: | ||
| 232 | @itemize @bullet | ||
| 233 | @item | ||
| 234 | Emacs 21.1 and up. | ||
| 235 | @item | ||
| 236 | XEmacs 21.4 and up. | ||
| 237 | @end itemize | ||
| 238 | |||
| 239 | Gnus 5.10.8 and below should work on: | ||
| 240 | @itemize @bullet | ||
| 241 | @item | ||
| 242 | Emacs 20.7 and up. | ||
| 243 | @item | ||
| 244 | XEmacs 21.1 and up. | ||
| 245 | @end itemize | ||
| 246 | |||
| 247 | @node Gnus Maintainance Guide | ||
| 248 | @chapter Gnus Maintainance Guide | ||
| 249 | |||
| 250 | @section Stable and development versions | ||
| 251 | |||
| 252 | The development of Gnus normally is done on the CVS trunk, i.e. there | ||
| 253 | are no separate branches to develop and test new features. Most of the | ||
| 254 | time, the trunk is developed quite actively with more or less daily | ||
| 255 | changes. Only after a new major release, e.g. 5.10.1, there's usually a | ||
| 256 | feature period of several months. After the release of Gnus 5.10.6 the | ||
| 257 | development of new features started again on the trunk while the 5.10 | ||
| 258 | series is continued on the stable branch (v5-10) from which more stable | ||
| 259 | releases will be done when needed (5.10.7, @dots{}). | ||
| 260 | @ref{Gnus Development, ,Gnus Development, gnus, The Gnus Newsreader} | ||
| 261 | |||
| 262 | Stable releases of Gnus finally become part of Emacs. E.g. Gnus 5.8 | ||
| 263 | became a part of Emacs 21 (relabeled to Gnus 5.9). The 5.10 series | ||
| 264 | became part of Emacs 22 as Gnus 5.11. | ||
| 265 | |||
| 266 | @section Syncing | ||
| 267 | |||
| 268 | @c Some MIDs related to this follow. Use http://thread.gmane.org/MID | ||
| 269 | @c (and click on the subject) to get the thread on Gmane. | ||
| 270 | |||
| 271 | @c Some quotes from Miles Bader follow... | ||
| 272 | |||
| 273 | @c <v9eklyke6b.fsf@marauder.physik.uni-ulm.de> | ||
| 274 | @c <buovfd71nkk.fsf@mctpc71.ucom.lsi.nec.co.jp> | ||
| 275 | |||
| 276 | In the past, the inclusion of Gnus into Emacs was quite cumbersome. For | ||
| 277 | each change made to Gnus in Emacs repository, it had to be checked that | ||
| 278 | it was applied to the new Gnus version, too. Else, bug fixes done in | ||
| 279 | Emacs repository might have been lost. | ||
| 280 | |||
| 281 | With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus | ||
| 282 | gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus | ||
| 283 | CVS semi-automatically. These bug fixes are installed on the stable | ||
| 284 | branch and on the trunk. Basically the idea is that the gateway will | ||
| 285 | cause all common files in Emacs and Gnus v5-10 to be identical except | ||
| 286 | when there's a very good reason (e.g., the Gnus version string in Emacs | ||
| 287 | says @samp{5.11}, but the v5-10 version string remains @samp{5.10.x}). | ||
| 288 | Furthermore, all changes in these files in either Emacs or the v5-10 | ||
| 289 | branch will be installed into the Gnus CVS trunk, again except where | ||
| 290 | there's a good reason. | ||
| 291 | @c (typically so far the only exception has been that the changes | ||
| 292 | @c already exist in the trunk in modified form). | ||
| 293 | Because of this, when the next major version of Gnus will be included in | ||
| 294 | Emacs, it should be very easy -- just plonk in the files from the Gnus | ||
| 295 | trunk without worrying about lost changes from the Emacs tree. | ||
| 296 | |||
| 297 | The effect of this is that as hacker, you should generally only have to | ||
| 298 | make changes in one place: | ||
| 299 | |||
| 300 | @itemize | ||
| 301 | @item | ||
| 302 | If it's a file which is thought of as being outside of Gnus (e.g., the | ||
| 303 | new @file{encrypt.el}), you should probably make the change in the Emacs | ||
| 304 | tree, and it will show up in the Gnus tree a few days later. | ||
| 305 | |||
| 306 | If you don't have Emacs CVS access (or it's inconvenient), you can | ||
| 307 | change such a file in the v5-10 branch, and it should propagate to Emacs | ||
| 308 | CVS -- however, it will get some extra scrutiny (by Miles) to see if the | ||
| 309 | changes are possibly controversial and need discussion on the mailing | ||
| 310 | list. Many changes are obvious bug-fixes however, so often there won't | ||
| 311 | be any problem. | ||
| 312 | |||
| 313 | @item | ||
| 314 | If it's to a Gnus file, and it's important enough that it should be part | ||
| 315 | of Emacs and the v5-10 branch, then you can make the change on the v5-10 | ||
| 316 | branch, and it will go into Emacs CVS and the Gnus CVS trunk (a few days | ||
| 317 | later). The most prominent examples for such changes are bug-fixed | ||
| 318 | including improvements on the documentation. | ||
| 319 | |||
| 320 | If you know that there will be conflicts (perhaps because the affected | ||
| 321 | source code is different in v5-10 and the Gnus CVS trunk), then you can | ||
| 322 | install your change in both places, and when I try to sync them, there | ||
| 323 | will be a conflict -- however, since in most such cases there would be a | ||
| 324 | conflict @emph{anyway}, it's often easier for me to resolve it simply if | ||
| 325 | I see two @samp{identical} changes, and can just choose the proper one, | ||
| 326 | rather than having to actually fix the code. | ||
| 327 | |||
| 328 | @item | ||
| 329 | For general Gnus development changes, of course you just make the | ||
| 330 | change on the Gnus CVS trunk and it goes into Emacs a few years | ||
| 331 | later... :-) | ||
| 332 | @end itemize | ||
| 333 | |||
| 334 | Of course in any case, if you just can't wait for me to sync your | ||
| 335 | change, you can commit it in more than one place and probably there will | ||
| 336 | be no problem; usually the changes are textually identical anyway, so | ||
| 337 | can be easily resolved automatically (sometimes I notice silly things in | ||
| 338 | such multiple commits, like whitespace differences, and unify those ;-). | ||
| 339 | |||
| 340 | |||
| 341 | @c I do Emacs->Gnus less often (than Gnus->Emacs) because it tends to | ||
| 342 | @c require more manual work. | ||
| 343 | |||
| 344 | @c By default I sync about once a week. I also try to follow any Gnus | ||
| 345 | @c threads on the mailing lists and make sure any changes being discussed | ||
| 346 | @c are kept more up-to-date (so say 1-2 days delay for "topical" changes). | ||
| 347 | |||
| 348 | @c <buovfd71nkk.fsf@mctpc71.ucom.lsi.nec.co.jp> | ||
| 349 | |||
| 350 | @c BTW, just to add even more verbose explanation about the syncing thing: | ||
| 351 | |||
| 352 | @section Miscellanea | ||
| 353 | |||
| 354 | @heading @file{GNUS-NEWS} | ||
| 355 | |||
| 356 | Starting from No Gnus, the @file{GNUS-NEWS} is created from | ||
| 357 | @file{texi/gnus-news.texi}. Don't edit @file{GNUS-NEWS}. Edit | ||
| 358 | @file{texi/gnus-news.texi}, type @command{make GNUS-NEWS} in the | ||
| 359 | @file{texi} directory and commit @file{GNUS-NEWS} and | ||
| 360 | @file{texi/gnus-news.texi}. | ||
| 361 | |||
| 362 | @heading Conventions for version information in defcustoms | ||
| 363 | |||
| 364 | For new customizable variables introduced in Oort Gnus (including the | ||
| 365 | v5-10 branch) use @code{:version "22.1" ;; Oort Gnus} (including the | ||
| 366 | comment) or e.g. @code{:version "22.2" ;; Gnus 5.10.10} if the feature | ||
| 367 | was added for Emacs 22.2 and Gnus 5.10.10. | ||
| 368 | @c | ||
| 369 | If the variable is new in No Gnus use @code{:version "23.0" ;; No Gnus}. | ||
| 370 | |||
| 371 | The same applies for customizable variables when its default value was | ||
| 372 | changed. | ||
| 373 | |||
| 374 | @c Local Variables: | ||
| 375 | @c mode: texinfo | ||
| 376 | @c coding: iso-8859-1 | ||
| 377 | @c End: | ||
| 378 | |||
| 379 | @ignore | ||
| 380 | arch-tag: ab15234c-2c8a-4cbd-8111-1811bcc6f931 | ||
| 381 | @end ignore | ||
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index 6bfb3477627..53a14254aad 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi | |||
| @@ -1286,18 +1286,23 @@ How to enable automatic word-wrap when composing messages? | |||
| 1286 | 1286 | ||
| 1287 | @subsubheading Answer | 1287 | @subsubheading Answer |
| 1288 | 1288 | ||
| 1289 | Say | 1289 | Starting from No Gnus, automatic word-wrap is already enabled by |
| 1290 | default, see the variable message-fill-column. | ||
| 1291 | |||
| 1292 | For other versions of Gnus, say | ||
| 1290 | 1293 | ||
| 1291 | @example | 1294 | @example |
| 1292 | (add-hook 'message-mode-hook | 1295 | (unless (boundp 'message-fill-column) |
| 1293 | (lambda () | 1296 | (add-hook 'message-mode-hook |
| 1294 | (setq fill-column 72) | 1297 | (lambda () |
| 1295 | (turn-on-auto-fill))) | 1298 | (setq fill-column 72) |
| 1299 | (turn-on-auto-fill)))) | ||
| 1296 | @end example | 1300 | @end example |
| 1297 | @noindent | 1301 | @noindent |
| 1298 | 1302 | ||
| 1299 | in ~/.gnus.el. You can reformat a paragraph by hitting | 1303 | in ~/.gnus.el. |
| 1300 | @samp{M-q} (as usual) | 1304 | |
| 1305 | You can reformat a paragraph by hitting @samp{M-q} (as usual). | ||
| 1301 | 1306 | ||
| 1302 | @node [5.3] | 1307 | @node [5.3] |
| 1303 | @subsubheading Question 5.3 | 1308 | @subsubheading Question 5.3 |
| @@ -1676,10 +1681,7 @@ you to use something like | |||
| 1676 | yourUserName.userfqdn.provider.net, or you can use | 1681 | yourUserName.userfqdn.provider.net, or you can use |
| 1677 | somethingUnique.yourdomain.tld if you own the domain | 1682 | somethingUnique.yourdomain.tld if you own the domain |
| 1678 | yourdomain.tld, or you can register at a service which | 1683 | yourdomain.tld, or you can register at a service which |
| 1679 | gives private users a FQDN for free, e.g. | 1684 | gives private users a FQDN for free. |
| 1680 | @uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}. | ||
| 1681 | (Sorry but this website is in German, if you know of an | ||
| 1682 | English one offering the same, drop me a note). | ||
| 1683 | 1685 | ||
| 1684 | Finally you can tell Gnus not to generate a Message-ID | 1686 | Finally you can tell Gnus not to generate a Message-ID |
| 1685 | for News at all (and letting the server do the job) by saying | 1687 | for News at all (and letting the server do the job) by saying |
diff --git a/doc/misc/gnus-news.el b/doc/misc/gnus-news.el new file mode 100644 index 00000000000..9f31513e435 --- /dev/null +++ b/doc/misc/gnus-news.el | |||
| @@ -0,0 +1,121 @@ | |||
| 1 | ;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source | ||
| 2 | ;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | ;; Author: Reiner Steib <Reiner.Steib@gmx.de> | ||
| 5 | ;; Keywords: tools | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | ;; GNU Emacs is free software; you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation; either version 3, or (at your option) | ||
| 12 | ;; any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | |||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 21 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 22 | ;; Boston, MA 02110-1301, USA. | ||
| 23 | |||
| 24 | ;;; Commentary: | ||
| 25 | |||
| 26 | ;;; Code: | ||
| 27 | |||
| 28 | (defvar gnus-news-header-disclaimer | ||
| 29 | "GNUS NEWS -- history of user-visible changes. | ||
| 30 | |||
| 31 | Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, | ||
| 32 | 2006, 2007 Free Software Foundation, Inc. | ||
| 33 | See the end of the file for license conditions. | ||
| 34 | |||
| 35 | Please send Gnus bug reports to bugs@gnus.org. | ||
| 36 | For older news, see Gnus info node \"New Features\".\n\n") | ||
| 37 | |||
| 38 | (defvar gnus-news-trailer | ||
| 39 | " | ||
| 40 | * For older news, see Gnus info node \"New Features\". | ||
| 41 | |||
| 42 | ---------------------------------------------------------------------- | ||
| 43 | |||
| 44 | This file is part of GNU Emacs. | ||
| 45 | |||
| 46 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 47 | it under the terms of the GNU General Public License as published by | ||
| 48 | the Free Software Foundation; either version 3, or (at your option) | ||
| 49 | any later version. | ||
| 50 | |||
| 51 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 52 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 53 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 54 | GNU General Public License for more details. | ||
| 55 | |||
| 56 | You should have received a copy of the GNU General Public License | ||
| 57 | along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 58 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 59 | Boston, MA 02110-1301, USA. | ||
| 60 | |||
| 61 | \nLocal variables:\nmode: outline | ||
| 62 | paragraph-separate: \"[ ]*$\"\nend:\n") | ||
| 63 | |||
| 64 | (defvar gnus-news-makeinfo-command "makeinfo") | ||
| 65 | |||
| 66 | (defvar gnus-news-fill-column 80) | ||
| 67 | |||
| 68 | (defvar gnus-news-makeinfo-switches | ||
| 69 | (concat " --no-headers --paragraph-indent=0" | ||
| 70 | " --no-validate" ;; Allow unresolved references. | ||
| 71 | " --fill-column=" (number-to-string | ||
| 72 | (+ 3 ;; will strip leading spaces later | ||
| 73 | (or gnus-news-fill-column 80))))) | ||
| 74 | |||
| 75 | (defun batch-gnus-news () | ||
| 76 | "Make GNUS-NEWS in batch mode." | ||
| 77 | (let (infile outfile) | ||
| 78 | (setq infile (car command-line-args-left) | ||
| 79 | command-line-args-left (cdr command-line-args-left) | ||
| 80 | outfile (car command-line-args-left) | ||
| 81 | command-line-args-left nil) | ||
| 82 | (if (and infile outfile) | ||
| 83 | (message "Creating `%s' from `%s'..." outfile infile) | ||
| 84 | (error "Not enough files given.")) | ||
| 85 | (gnus-news-translate-file infile outfile))) | ||
| 86 | |||
| 87 | (defun gnus-news-translate-file (infile outfile) | ||
| 88 | "Translate INFILE (texinfo) to OUTFILE (GNUS-NEWS)." | ||
| 89 | (let* ((dir (concat (or (getenv "srcdir") ".") "/")) | ||
| 90 | (infile (concat dir infile)) | ||
| 91 | (buffer (find-file-noselect (concat dir outfile)))) | ||
| 92 | (with-temp-buffer | ||
| 93 | ;; Could be done using `texinfmt' stuff as in `infohack.el'. | ||
| 94 | (insert | ||
| 95 | (shell-command-to-string | ||
| 96 | (concat gnus-news-makeinfo-command " " | ||
| 97 | gnus-news-makeinfo-switches " " infile))) | ||
| 98 | (goto-char (point-max)) | ||
| 99 | (delete-char -1) | ||
| 100 | (goto-char (point-min)) | ||
| 101 | (save-excursion | ||
| 102 | (while (re-search-forward "^ \\* " nil t) | ||
| 103 | (replace-match "\f\n* "))) | ||
| 104 | (save-excursion | ||
| 105 | (while (re-search-forward "^ \\* " nil t) | ||
| 106 | (replace-match "** "))) | ||
| 107 | (save-excursion | ||
| 108 | (while (re-search-forward "^ " nil t) | ||
| 109 | (replace-match ""))) | ||
| 110 | ;; Avoid `*' from @ref at beginning of line: | ||
| 111 | (save-excursion | ||
| 112 | (while (re-search-forward "^\\*Note" nil t) | ||
| 113 | (replace-match " \\&"))) | ||
| 114 | (goto-char (point-min)) | ||
| 115 | (insert gnus-news-header-disclaimer) | ||
| 116 | (goto-char (point-max)) | ||
| 117 | (insert gnus-news-trailer) | ||
| 118 | (write-region (point-min) (point-max) outfile)))) | ||
| 119 | |||
| 120 | ;;; arch-tag: e23cdd27-eafd-4ba0-816f-98f5edb0dc29 | ||
| 121 | ;;; gnus-news.el ends here | ||
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi new file mode 100644 index 00000000000..821354717e2 --- /dev/null +++ b/doc/misc/gnus-news.texi | |||
| @@ -0,0 +1,264 @@ | |||
| 1 | @c -*-texinfo-*- | ||
| 2 | |||
| 3 | @c Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | @c Permission is granted to anyone to make or distribute verbatim copies | ||
| 6 | @c of this document as received, in any medium, provided that the | ||
| 7 | @c copyright notice and this permission notice are preserved, | ||
| 8 | @c thus giving the recipient permission to redistribute in turn. | ||
| 9 | |||
| 10 | @c Permission is granted to distribute modified versions | ||
| 11 | @c of this document, or of portions of it, | ||
| 12 | @c under the above conditions, provided also that they | ||
| 13 | @c carry prominent notices stating who last changed them. | ||
| 14 | |||
| 15 | @c This file contains a list of news features Gnus. It is supposed to be | ||
| 16 | @c included in `gnus.texi'. `GNUS-NEWS' is automatically generated from | ||
| 17 | @c this file (see `gnus-news.el'). | ||
| 18 | |||
| 19 | @itemize @bullet | ||
| 20 | |||
| 21 | @item Installation changes | ||
| 22 | |||
| 23 | @itemize @bullet | ||
| 24 | @item Upgrading from previous (stable) version if you have used No Gnus. | ||
| 25 | |||
| 26 | If you have tried No Gnus (the unstable Gnus branch leading to this | ||
| 27 | release) but went back to a stable version, be careful when upgrading | ||
| 28 | to this version. In particular, you will probably want to remove the | ||
| 29 | @file{~/News/marks} directory (perhaps selectively), so that flags are | ||
| 30 | read from your @file{~/.newsrc.eld} instead of from the stale marks | ||
| 31 | file, where this release will store flags for nntp. See a later entry | ||
| 32 | for more information about nntp marks. Note that downgrading isn't | ||
| 33 | safe in general. | ||
| 34 | |||
| 35 | @item Lisp files are now installed in @file{.../site-lisp/gnus/} by default. | ||
| 36 | It defaulted to @file{.../site-lisp/} formerly. In addition to this, | ||
| 37 | the new installer issues a warning if other Gnus installations which | ||
| 38 | will shadow the latest one are detected. You can then remove those | ||
| 39 | shadows manually or remove them using @code{make | ||
| 40 | remove-installed-shadows}. | ||
| 41 | @end itemize | ||
| 42 | |||
| 43 | @item New packages and libraries within Gnus | ||
| 44 | |||
| 45 | @itemize @bullet | ||
| 46 | |||
| 47 | @item Gnus includes the Emacs Lisp @acronym{SASL} library. | ||
| 48 | |||
| 49 | This provides a clean @acronym{API} to @acronym{SASL} mechanisms from | ||
| 50 | within Emacs. The user visible aspects of this, compared to the earlier | ||
| 51 | situation, include support for @acronym{DIGEST}-@acronym{MD5} and | ||
| 52 | @acronym{NTLM}. @xref{Top, ,Emacs SASL, sasl, Emacs SASL}. | ||
| 53 | |||
| 54 | @item ManageSieve connections uses the @acronym{SASL} library by default. | ||
| 55 | |||
| 56 | The primary change this brings is support for @acronym{DIGEST-MD5} and | ||
| 57 | @acronym{NTLM}, when the server supports it. | ||
| 58 | |||
| 59 | @item Gnus includes a password cache mechanism in password.el. | ||
| 60 | |||
| 61 | It is enabled by default (see @code{password-cache}), with a short | ||
| 62 | timeout of 16 seconds (see @code{password-cache-expiry}). If | ||
| 63 | @acronym{PGG} is used as the @acronym{PGP} back end, the @acronym{PGP} | ||
| 64 | passphrase is managed by this mechanism. Passwords for ManageSieve | ||
| 65 | connections are managed by this mechanism, after querying the user | ||
| 66 | about whether to do so. | ||
| 67 | @end itemize | ||
| 68 | |||
| 69 | @item Changes in summary and article mode | ||
| 70 | |||
| 71 | @itemize @bullet | ||
| 72 | |||
| 73 | @item Gnus now supports sticky article buffers. Those are article buffers | ||
| 74 | that are not reused when you select another article. @xref{Sticky | ||
| 75 | Articles}. | ||
| 76 | |||
| 77 | @item International host names (@acronym{IDNA}) can now be decoded | ||
| 78 | inside article bodies using @kbd{W i} | ||
| 79 | (@code{gnus-summary-idna-message}). This requires that GNU Libidn | ||
| 80 | (@url{http://www.gnu.org/software/libidn/}) has been installed. | ||
| 81 | @c FIXME: Also mention @code{message-use-idna}? | ||
| 82 | |||
| 83 | @item The non-@acronym{ASCII} group names handling has been much | ||
| 84 | improved. The back ends that fully support non-@acronym{ASCII} group | ||
| 85 | names are now @code{nntp}, @code{nnml}, and @code{nnrss}. Also the | ||
| 86 | agent, the cache, and the marks features work with those back ends. | ||
| 87 | @xref{Non-ASCII Group Names}. | ||
| 88 | |||
| 89 | @item Gnus now displays @acronym{DNS} master files sent as text/dns | ||
| 90 | using dns-mode. | ||
| 91 | |||
| 92 | @item Gnus supports new limiting commands in the Summary buffer: | ||
| 93 | @kbd{/ r} (@code{gnus-summary-limit-to-replied}) and @kbd{/ R} | ||
| 94 | (@code{gnus-summary-limit-to-recipient}). @xref{Limiting}. | ||
| 95 | |||
| 96 | @item You can now fetch all ticked articles from the server using | ||
| 97 | @kbd{Y t} (@code{gnus-summary-insert-ticked-articles}). @xref{Summary | ||
| 98 | Generation Commands}. | ||
| 99 | |||
| 100 | @item Gnus supports a new sort command in the Summary buffer: | ||
| 101 | @kbd{C-c C-s C-t} (@code{gnus-summary-sort-by-recipient}). @xref{Summary | ||
| 102 | Sorting}. | ||
| 103 | |||
| 104 | @item @acronym{S/MIME} now features @acronym{LDAP} user certificate searches. | ||
| 105 | You need to configure the server in @code{smime-ldap-host-list}. | ||
| 106 | |||
| 107 | @item URLs inside Open@acronym{PGP} headers are retrieved and imported | ||
| 108 | to your PGP key ring when you click on them. | ||
| 109 | |||
| 110 | @item | ||
| 111 | Picons can be displayed right from the textual address, see | ||
| 112 | @code{gnus-picon-style}. @xref{Picons}. | ||
| 113 | |||
| 114 | @item @acronym{ANSI} @acronym{SGR} control sequences can be transformed | ||
| 115 | using @kbd{W A}. | ||
| 116 | |||
| 117 | @acronym{ANSI} sequences are used in some Chinese hierarchies for | ||
| 118 | highlighting articles (@code{gnus-article-treat-ansi-sequences}). | ||
| 119 | |||
| 120 | @item Gnus now MIME decodes articles even when they lack "MIME-Version" header. | ||
| 121 | This changes the default of @code{gnus-article-loose-mime}. | ||
| 122 | |||
| 123 | @item @code{gnus-decay-scores} can be a regexp matching score files. | ||
| 124 | For example, set it to @samp{\\.ADAPT\\'} and only adaptive score files | ||
| 125 | will be decayed. @xref{Score Decays}. | ||
| 126 | |||
| 127 | @item Strings prefixing to the @code{To} and @code{Newsgroup} headers in | ||
| 128 | summary lines when using @code{gnus-ignored-from-addresses} can be | ||
| 129 | customized with @code{gnus-summary-to-prefix} and | ||
| 130 | @code{gnus-summary-newsgroup-prefix}. @xref{To From Newsgroups}. | ||
| 131 | |||
| 132 | @item You can replace @acronym{MIME} parts with external bodies. | ||
| 133 | See @code{gnus-mime-replace-part} and @code{gnus-article-replace-part}. | ||
| 134 | @xref{MIME Commands}, @ref{Using MIME}. | ||
| 135 | |||
| 136 | @item | ||
| 137 | The option @code{mm-fill-flowed} can be used to disable treatment of | ||
| 138 | format=flowed messages. Also, flowed text is disabled when sending | ||
| 139 | inline @acronym{PGP} signed messages. @xref{Flowed text, ,Flowed text, | ||
| 140 | emacs-mime, The Emacs MIME Manual}. (New in Gnus 5.10.7) | ||
| 141 | @c This entry is also present in the node "Oort Gnus". | ||
| 142 | |||
| 143 | @end itemize | ||
| 144 | |||
| 145 | @item Changes in Message mode | ||
| 146 | |||
| 147 | @itemize @bullet | ||
| 148 | @item Gnus now supports the ``hashcash'' client puzzle anti-spam mechanism. | ||
| 149 | Use @code{(setq message-generate-hashcash t)} to enable. | ||
| 150 | @xref{Hashcash}. | ||
| 151 | |||
| 152 | @item You can now drag and drop attachments to the Message buffer. | ||
| 153 | See @code{mml-dnd-protocol-alist} and @code{mml-dnd-attach-options}. | ||
| 154 | @xref{MIME, ,MIME, message, Message Manual}. | ||
| 155 | |||
| 156 | @item The option @code{message-yank-empty-prefix} now controls how | ||
| 157 | empty lines are prefixed in cited text. @xref{Insertion Variables, | ||
| 158 | ,Insertion Variables, message, Message Manual}. | ||
| 159 | |||
| 160 | @item Gnus uses narrowing to hide headers in Message buffers. | ||
| 161 | The @code{References} header is hidden by default. To make all | ||
| 162 | headers visible, use @code{(setq message-hidden-headers nil)}. | ||
| 163 | @xref{Message Headers, ,Message Headers, message, Message Manual}. | ||
| 164 | |||
| 165 | @item You can highlight different levels of citations like in the | ||
| 166 | article buffer. See @code{gnus-message-highlight-citation}. | ||
| 167 | |||
| 168 | @item @code{auto-fill-mode} is enabled by default in Message mode. | ||
| 169 | See @code{message-fill-column}. @xref{Various Message Variables, , | ||
| 170 | Message Headers, message, Message Manual}. | ||
| 171 | |||
| 172 | @item You can now store signature files in a special directory | ||
| 173 | named @code{message-signature-directory}. | ||
| 174 | |||
| 175 | @item The option @code{message-citation-line-format} controls the format | ||
| 176 | of the "Whomever writes:" line. You need to set | ||
| 177 | @code{message-citation-line-function} to | ||
| 178 | @code{message-insert-formated-citation-line} as well. | ||
| 179 | @end itemize | ||
| 180 | |||
| 181 | @item Changes in back ends | ||
| 182 | |||
| 183 | @itemize @bullet | ||
| 184 | @item The nntp back end stores article marks in @file{~/News/marks}. | ||
| 185 | |||
| 186 | The directory can be changed using the (customizable) variable | ||
| 187 | @code{nntp-marks-directory}, and marks can be disabled using the | ||
| 188 | (back end) variable @code{nntp-marks-is-evil}. The advantage of this | ||
| 189 | is that you can copy @file{~/News/marks} (using rsync, scp or | ||
| 190 | whatever) to another Gnus installation, and it will realize what | ||
| 191 | articles you have read and marked. The data in @file{~/News/marks} | ||
| 192 | has priority over the same data in @file{~/.newsrc.eld}. | ||
| 193 | |||
| 194 | @item | ||
| 195 | You can import and export your @acronym{RSS} subscriptions from | ||
| 196 | @acronym{OPML} files. @xref{RSS}. | ||
| 197 | |||
| 198 | @item @acronym{IMAP} identity (@acronym{RFC} 2971) is supported. | ||
| 199 | |||
| 200 | By default, Gnus does not send any information about itself, but you can | ||
| 201 | customize it using the variable @code{nnimap-id}. | ||
| 202 | |||
| 203 | @item The @code{nnrss} back end now supports multilingual text. | ||
| 204 | Non-@acronym{ASCII} group names for the @code{nnrss} groups are also | ||
| 205 | supported. @xref{RSS}. | ||
| 206 | |||
| 207 | @item Retrieving mail with @acronym{POP3} is supported over @acronym{SSL}/@acronym{TLS} and with StartTLS. | ||
| 208 | |||
| 209 | @item The nnml back end allows other compression programs beside @file{gzip} | ||
| 210 | for compressed message files. @xref{Mail Spool}. | ||
| 211 | |||
| 212 | @item The nnml back end supports group compaction. | ||
| 213 | |||
| 214 | This feature, accessible via the functions | ||
| 215 | @code{gnus-group-compact-group} (@kbd{G z} in the group buffer) and | ||
| 216 | @code{gnus-server-compact-server} (@kbd{z} in the server buffer) | ||
| 217 | renumbers all articles in a group, starting from 1 and removing gaps. | ||
| 218 | As a consequence, you get a correct total article count (until | ||
| 219 | messages are deleted again). | ||
| 220 | @end itemize | ||
| 221 | |||
| 222 | @item Appearance | ||
| 223 | @c Maybe it's not worth to separate this from "Miscellaneous"? | ||
| 224 | |||
| 225 | @itemize @bullet | ||
| 226 | |||
| 227 | @item The tool bar has been updated to use GNOME icons. | ||
| 228 | You can also customize the tool bar. There's no documentation in the | ||
| 229 | manual yet, but @kbd{M-x customize-apropos RET -tool-bar$} should get | ||
| 230 | you started. (Only for Emacs, not in XEmacs.) | ||
| 231 | @c FIXME: Document this in the manual | ||
| 232 | |||
| 233 | @item The tool bar icons are now (de)activated correctly | ||
| 234 | in the group buffer, see the variable @code{gnus-group-update-tool-bar}. | ||
| 235 | Its default value depends on your Emacs version. | ||
| 236 | @c FIXME: Document this in the manual | ||
| 237 | |||
| 238 | @item You can change the location of XEmacs' toolbars in Gnus buffers. | ||
| 239 | See @code{gnus-use-toolbar} and @code{message-use-toolbar}. | ||
| 240 | |||
| 241 | @end itemize | ||
| 242 | |||
| 243 | @item Miscellaneous changes | ||
| 244 | |||
| 245 | @itemize @bullet | ||
| 246 | @item Having edited the select-method for the foreign server in the | ||
| 247 | server buffer is immediately reflected to the subscription of the groups | ||
| 248 | which use the server in question. For instance, if you change | ||
| 249 | @code{nntp-via-address} into @samp{bar.example.com} from | ||
| 250 | @samp{foo.example.com}, Gnus will connect to the news host by way of the | ||
| 251 | intermediate host @samp{bar.example.com} from next time. | ||
| 252 | |||
| 253 | @item The @file{all.SCORE} file can be edited from the group buffer | ||
| 254 | using @kbd{W e}. | ||
| 255 | |||
| 256 | @end itemize | ||
| 257 | |||
| 258 | @end itemize | ||
| 259 | |||
| 260 | @c gnus-news.texi ends here. | ||
| 261 | |||
| 262 | @ignore | ||
| 263 | arch-tag: 872c7569-4340-4d73-9d1d-7826d9f94a51 | ||
| 264 | @end ignore | ||
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index 4093b061f74..2be85ab9b30 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi | |||
| @@ -6,6 +6,8 @@ | |||
| 6 | @syncodeindex vr cp | 6 | @syncodeindex vr cp |
| 7 | @syncodeindex pg cp | 7 | @syncodeindex pg cp |
| 8 | 8 | ||
| 9 | @documentencoding ISO-8859-1 | ||
| 10 | |||
| 9 | @copying | 11 | @copying |
| 10 | Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, | 12 | Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, |
| 11 | 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. | 13 | 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. |
| @@ -50,7 +52,7 @@ license to the document, as described in section 6 of the license. | |||
| 50 | \begin{document} | 52 | \begin{document} |
| 51 | 53 | ||
| 52 | % Adjust ../Makefile.in if you change the following line: | 54 | % Adjust ../Makefile.in if you change the following line: |
| 53 | \newcommand{\gnusversionname}{Gnus v5.11} | 55 | \newcommand{\gnusversionname}{No Gnus v0.7} |
| 54 | \newcommand{\gnuschaptername}{} | 56 | \newcommand{\gnuschaptername}{} |
| 55 | \newcommand{\gnussectionname}{} | 57 | \newcommand{\gnussectionname}{} |
| 56 | 58 | ||
| @@ -360,7 +362,7 @@ spool or your mbox file. All at the same time, if you want to push your | |||
| 360 | luck. | 362 | luck. |
| 361 | 363 | ||
| 362 | @c Adjust ../Makefile.in if you change the following line: | 364 | @c Adjust ../Makefile.in if you change the following line: |
| 363 | This manual corresponds to Gnus v5.11. | 365 | This manual corresponds to No Gnus v0.7. |
| 364 | 366 | ||
| 365 | @end ifinfo | 367 | @end ifinfo |
| 366 | 368 | ||
| @@ -412,6 +414,7 @@ Other related manuals | |||
| 412 | * Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts. | 414 | * Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts. |
| 413 | * Sieve:(sieve). Managing Sieve scripts in Emacs. | 415 | * Sieve:(sieve). Managing Sieve scripts in Emacs. |
| 414 | * PGG:(pgg). @acronym{PGP/MIME} with Gnus. | 416 | * PGG:(pgg). @acronym{PGP/MIME} with Gnus. |
| 417 | * SASL:(sasl). @acronym{SASL} authentication in Emacs. | ||
| 415 | 418 | ||
| 416 | @detailmenu | 419 | @detailmenu |
| 417 | --- The Detailed Node Listing --- | 420 | --- The Detailed Node Listing --- |
| @@ -454,6 +457,7 @@ Group Buffer | |||
| 454 | * Browse Foreign Server:: You can browse a server. See what it has to offer. | 457 | * Browse Foreign Server:: You can browse a server. See what it has to offer. |
| 455 | * Exiting Gnus:: Stop reading news and get some work done. | 458 | * Exiting Gnus:: Stop reading news and get some work done. |
| 456 | * Group Topics:: A folding group mode divided into topics. | 459 | * Group Topics:: A folding group mode divided into topics. |
| 460 | * Non-ASCII Group Names:: Accessing groups of non-English names. | ||
| 457 | * Misc Group Stuff:: Other stuff that you can to do. | 461 | * Misc Group Stuff:: Other stuff that you can to do. |
| 458 | 462 | ||
| 459 | Group Buffer Format | 463 | Group Buffer Format |
| @@ -493,6 +497,7 @@ Summary Buffer | |||
| 493 | * Asynchronous Fetching:: Gnus might be able to pre-fetch articles. | 497 | * Asynchronous Fetching:: Gnus might be able to pre-fetch articles. |
| 494 | * Article Caching:: You may store articles in a cache. | 498 | * Article Caching:: You may store articles in a cache. |
| 495 | * Persistent Articles:: Making articles expiry-resistant. | 499 | * Persistent Articles:: Making articles expiry-resistant. |
| 500 | * Sticky Articles:: Article buffers that are not reused. | ||
| 496 | * Article Backlog:: Having already read articles hang around. | 501 | * Article Backlog:: Having already read articles hang around. |
| 497 | * Saving Articles:: Ways of customizing article saving. | 502 | * Saving Articles:: Ways of customizing article saving. |
| 498 | * Decoding Articles:: Gnus can treat series of (uu)encoded articles. | 503 | * Decoding Articles:: Gnus can treat series of (uu)encoded articles. |
| @@ -646,6 +651,7 @@ Getting News | |||
| 646 | * Direct Functions:: Connecting directly to the server. | 651 | * Direct Functions:: Connecting directly to the server. |
| 647 | * Indirect Functions:: Connecting indirectly to the server. | 652 | * Indirect Functions:: Connecting indirectly to the server. |
| 648 | * Common Variables:: Understood by several connection functions. | 653 | * Common Variables:: Understood by several connection functions. |
| 654 | * NNTP marks:: Storing marks for @acronym{NNTP} servers. | ||
| 649 | 655 | ||
| 650 | Getting Mail | 656 | Getting Mail |
| 651 | 657 | ||
| @@ -749,6 +755,7 @@ Gnus Unplugged | |||
| 749 | * Agent as Cache:: The Agent is a big cache too. | 755 | * Agent as Cache:: The Agent is a big cache too. |
| 750 | * Agent Expiry:: How to make old articles go away. | 756 | * Agent Expiry:: How to make old articles go away. |
| 751 | * Agent Regeneration:: How to recover from lost connections and other accidents. | 757 | * Agent Regeneration:: How to recover from lost connections and other accidents. |
| 758 | * Agent and flags:: How the Agent maintains flags. | ||
| 752 | * Agent and IMAP:: How to use the Agent with @acronym{IMAP}. | 759 | * Agent and IMAP:: How to use the Agent with @acronym{IMAP}. |
| 753 | * Outgoing Messages:: What happens when you post/mail something? | 760 | * Outgoing Messages:: What happens when you post/mail something? |
| 754 | * Agent Variables:: Customizing is fun. | 761 | * Agent Variables:: Customizing is fun. |
| @@ -784,17 +791,9 @@ Scoring | |||
| 784 | * Global Score Files:: Earth-spanning, ear-splitting score files. | 791 | * Global Score Files:: Earth-spanning, ear-splitting score files. |
| 785 | * Kill Files:: They are still here, but they can be ignored. | 792 | * Kill Files:: They are still here, but they can be ignored. |
| 786 | * Converting Kill Files:: Translating kill files to score files. | 793 | * Converting Kill Files:: Translating kill files to score files. |
| 787 | * GroupLens:: Getting predictions on what you like to read. | ||
| 788 | * Advanced Scoring:: Using logical expressions to build score rules. | 794 | * Advanced Scoring:: Using logical expressions to build score rules. |
| 789 | * Score Decays:: It can be useful to let scores wither away. | 795 | * Score Decays:: It can be useful to let scores wither away. |
| 790 | 796 | ||
| 791 | GroupLens | ||
| 792 | |||
| 793 | * Using GroupLens:: How to make Gnus use GroupLens. | ||
| 794 | * Rating Articles:: Letting GroupLens know how you rate articles. | ||
| 795 | * Displaying Predictions:: Displaying predictions given by GroupLens. | ||
| 796 | * GroupLens Variables:: Customizing GroupLens. | ||
| 797 | |||
| 798 | Advanced Scoring | 797 | Advanced Scoring |
| 799 | 798 | ||
| 800 | * Advanced Scoring Syntax:: A definition. | 799 | * Advanced Scoring Syntax:: A definition. |
| @@ -901,6 +900,7 @@ New Features | |||
| 901 | * Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. | 900 | * Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. |
| 902 | * Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9. | 901 | * Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9. |
| 903 | * Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11. | 902 | * Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11. |
| 903 | * No Gnus:: Very punny. | ||
| 904 | 904 | ||
| 905 | Customization | 905 | Customization |
| 906 | 906 | ||
| @@ -1067,6 +1067,11 @@ you would typically set this variable to | |||
| 1067 | (setq gnus-secondary-select-methods '((nnmbox ""))) | 1067 | (setq gnus-secondary-select-methods '((nnmbox ""))) |
| 1068 | @end lisp | 1068 | @end lisp |
| 1069 | 1069 | ||
| 1070 | Note: the @acronym{NNTP} back end stores marks in marks files | ||
| 1071 | (@pxref{NNTP marks}). This feature makes it easy to share marks between | ||
| 1072 | several Gnus installations, but may slow down things a bit when fetching | ||
| 1073 | new articles. @xref{NNTP marks}, for more information. | ||
| 1074 | |||
| 1070 | 1075 | ||
| 1071 | @node The First Time | 1076 | @node The First Time |
| 1072 | @section The First Time | 1077 | @section The First Time |
| @@ -1718,6 +1723,7 @@ long as Gnus is active. | |||
| 1718 | * Browse Foreign Server:: You can browse a server. See what it has to offer. | 1723 | * Browse Foreign Server:: You can browse a server. See what it has to offer. |
| 1719 | * Exiting Gnus:: Stop reading news and get some work done. | 1724 | * Exiting Gnus:: Stop reading news and get some work done. |
| 1720 | * Group Topics:: A folding group mode divided into topics. | 1725 | * Group Topics:: A folding group mode divided into topics. |
| 1726 | * Non-ASCII Group Names:: Accessing groups of non-English names. | ||
| 1721 | * Misc Group Stuff:: Other stuff that you can to do. | 1727 | * Misc Group Stuff:: Other stuff that you can to do. |
| 1722 | @end menu | 1728 | @end menu |
| 1723 | 1729 | ||
| @@ -1819,8 +1825,15 @@ the true unread message count is not possible efficiently. For | |||
| 1819 | hysterical raisins, even the mail back ends, where the true number of | 1825 | hysterical raisins, even the mail back ends, where the true number of |
| 1820 | unread messages might be available efficiently, use the same limited | 1826 | unread messages might be available efficiently, use the same limited |
| 1821 | interface. To remove this restriction from Gnus means that the back | 1827 | interface. To remove this restriction from Gnus means that the back |
| 1822 | end interface has to be changed, which is not an easy job. If you | 1828 | end interface has to be changed, which is not an easy job. |
| 1823 | want to work on this, please contact the Gnus mailing list. | 1829 | |
| 1830 | The nnml backend (@pxref{Mail Spool}) has a feature called ``group | ||
| 1831 | compaction'' which circumvents this deficiency: the idea is to | ||
| 1832 | renumber all articles from 1, removing all gaps between numbers, hence | ||
| 1833 | getting a correct total count. Other backends may support this in the | ||
| 1834 | future. In order to keep your total article count relatively up to | ||
| 1835 | date, you might want to compact your groups (or even directly your | ||
| 1836 | server) from time to time. @xref{Misc Group Stuff}, @xref{Server Commands}. | ||
| 1824 | 1837 | ||
| 1825 | @item y | 1838 | @item y |
| 1826 | Number of unread, unticked, non-dormant articles. | 1839 | Number of unread, unticked, non-dormant articles. |
| @@ -1886,6 +1899,12 @@ the group lately. | |||
| 1886 | A string that says when you last read the group (@pxref{Group | 1899 | A string that says when you last read the group (@pxref{Group |
| 1887 | Timestamp}). | 1900 | Timestamp}). |
| 1888 | 1901 | ||
| 1902 | @item F | ||
| 1903 | The disk space used by the articles fetched by both the cache and | ||
| 1904 | agent. The value is automatically scaled to bytes(B), kilobytes(K), | ||
| 1905 | megabytes(M), or gigabytes(G) to minimize the column width. A format | ||
| 1906 | of %7F is sufficient for a fixed-width column. | ||
| 1907 | |||
| 1889 | @item u | 1908 | @item u |
| 1890 | User defined specifier. The next character in the format string should | 1909 | User defined specifier. The next character in the format string should |
| 1891 | be a letter. Gnus will call the function | 1910 | be a letter. Gnus will call the function |
| @@ -2071,6 +2090,11 @@ commands will move to the next group, not the next unread group. Even | |||
| 2071 | the commands that say they move to the next unread group. The default | 2090 | the commands that say they move to the next unread group. The default |
| 2072 | is @code{t}. | 2091 | is @code{t}. |
| 2073 | 2092 | ||
| 2093 | @vindex gnus-summary-next-group-on-exit | ||
| 2094 | If @code{gnus-summary-next-group-on-exit} is @code{t}, when a summary is | ||
| 2095 | exited, the point in the group buffer is moved to the next unread group. | ||
| 2096 | Otherwise, the point is set to the group just exited. The default is | ||
| 2097 | @code{t}. | ||
| 2074 | 2098 | ||
| 2075 | @node Selecting a Group | 2099 | @node Selecting a Group |
| 2076 | @section Selecting a Group | 2100 | @section Selecting a Group |
| @@ -2988,6 +3012,15 @@ like this in the group parameters: | |||
| 2988 | (signature "Funky Signature")) | 3012 | (signature "Funky Signature")) |
| 2989 | @end example | 3013 | @end example |
| 2990 | 3014 | ||
| 3015 | If you're using topics to organize your group buffer | ||
| 3016 | (@pxref{Group Topics}), note that posting styles can also be set in | ||
| 3017 | the topics parameters. Posting styles in topic parameters apply to all | ||
| 3018 | groups in this topic. More precisely, the posting-style settings for a | ||
| 3019 | group result from the hierarchical merging of all posting-style | ||
| 3020 | entries in the parameters of this group and all the topics it belongs | ||
| 3021 | to. | ||
| 3022 | |||
| 3023 | |||
| 2991 | @item post-method | 3024 | @item post-method |
| 2992 | @cindex post-method | 3025 | @cindex post-method |
| 2993 | If it is set, the value is used as the method for posting message | 3026 | If it is set, the value is used as the method for posting message |
| @@ -3014,11 +3047,25 @@ translating the group parameter into a Sieve script (@pxref{Sieve | |||
| 3014 | Commands}) the following Sieve code is generated: | 3047 | Commands}) the following Sieve code is generated: |
| 3015 | 3048 | ||
| 3016 | @example | 3049 | @example |
| 3017 | if address \"sender\" \"sieve-admin@@extundo.com\" @{ | 3050 | if address "sender" "sieve-admin@@extundo.com" @{ |
| 3018 | fileinto \"INBOX.list.sieve\"; | 3051 | fileinto "INBOX.list.sieve"; |
| 3052 | @} | ||
| 3053 | @end example | ||
| 3054 | |||
| 3055 | To generate tests for multiple email-addresses use a group parameter | ||
| 3056 | like @code{(sieve address "sender" ("name@@one.org" else@@two.org"))}. | ||
| 3057 | When generating a sieve script (@pxref{Sieve Commands}) Sieve code | ||
| 3058 | like the following is generated: | ||
| 3059 | |||
| 3060 | @example | ||
| 3061 | if address "sender" ["name@@one.org", "else@@two.org"] @{ | ||
| 3062 | fileinto "INBOX.list.sieve"; | ||
| 3019 | @} | 3063 | @} |
| 3020 | @end example | 3064 | @end example |
| 3021 | 3065 | ||
| 3066 | See @pxref{Sieve Commands} for commands and variables that might be of | ||
| 3067 | interest in relation to the sieve parameter. | ||
| 3068 | |||
| 3022 | The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve, | 3069 | The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve, |
| 3023 | Top, sieve, Emacs Sieve}. | 3070 | Top, sieve, Emacs Sieve}. |
| 3024 | 3071 | ||
| @@ -3132,6 +3179,33 @@ value of the @code{gnus-parameters-case-fold-search} variable to | |||
| 3132 | @code{nil}. Otherwise, set it to @code{t} if you want to compare them | 3179 | @code{nil}. Otherwise, set it to @code{t} if you want to compare them |
| 3133 | always in a case-insensitive manner. | 3180 | always in a case-insensitive manner. |
| 3134 | 3181 | ||
| 3182 | You can define different sorting to different groups via | ||
| 3183 | @code{gnus-parameters}. Here is an example to sort an @acronym{NNTP} | ||
| 3184 | group by reverse date to see the latest news at the top and an | ||
| 3185 | @acronym{RSS} group by subject. In this example, the first group is the | ||
| 3186 | Debian daily news group @code{gmane.linux.debian.user.news} from | ||
| 3187 | news.gmane.org. The @acronym{RSS} group corresponds to the Debian | ||
| 3188 | weekly news RSS feed | ||
| 3189 | @url{http://packages.debian.org/unstable/newpkg_main.en.rdf}, | ||
| 3190 | @xref{RSS}. | ||
| 3191 | |||
| 3192 | @lisp | ||
| 3193 | (setq | ||
| 3194 | gnus-parameters | ||
| 3195 | '(("nntp.*gmane\\.debian\\.user\\.news" | ||
| 3196 | (gnus-show-threads nil) | ||
| 3197 | (gnus-article-sort-functions '((not gnus-article-sort-by-date))) | ||
| 3198 | (gnus-use-adaptive-scoring nil) | ||
| 3199 | (gnus-use-scoring nil)) | ||
| 3200 | ("nnrss.*debian" | ||
| 3201 | (gnus-show-threads nil) | ||
| 3202 | (gnus-article-sort-functions 'gnus-article-sort-by-subject) | ||
| 3203 | (gnus-use-adaptive-scoring nil) | ||
| 3204 | (gnus-use-scoring t) | ||
| 3205 | (gnus-score-find-score-files-function 'gnus-score-find-single) | ||
| 3206 | (gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n")))) | ||
| 3207 | @end lisp | ||
| 3208 | |||
| 3135 | 3209 | ||
| 3136 | @node Listing Groups | 3210 | @node Listing Groups |
| 3137 | @section Listing Groups | 3211 | @section Listing Groups |
| @@ -3847,7 +3921,7 @@ Go to the next topic (@code{gnus-topic-goto-next-topic}). | |||
| 3847 | @item T M-p | 3921 | @item T M-p |
| 3848 | @kindex T M-p (Topic) | 3922 | @kindex T M-p (Topic) |
| 3849 | @findex gnus-topic-goto-previous-topic | 3923 | @findex gnus-topic-goto-previous-topic |
| 3850 | Go to the next topic (@code{gnus-topic-goto-previous-topic}). | 3924 | Go to the previous topic (@code{gnus-topic-goto-previous-topic}). |
| 3851 | 3925 | ||
| 3852 | @item G p | 3926 | @item G p |
| 3853 | @kindex G p (Topic) | 3927 | @kindex G p (Topic) |
| @@ -4086,6 +4160,132 @@ happen. In fact, I hereby declare that it is @dfn{undefined} what | |||
| 4086 | happens. You just have to be careful if you do stuff like that. | 4160 | happens. You just have to be careful if you do stuff like that. |
| 4087 | 4161 | ||
| 4088 | 4162 | ||
| 4163 | @node Non-ASCII Group Names | ||
| 4164 | @section Accessing groups of non-English names | ||
| 4165 | @cindex non-ascii group names | ||
| 4166 | |||
| 4167 | There are some news servers that provide groups of which the names are | ||
| 4168 | expressed with their native languages in the world. For instance, in a | ||
| 4169 | certain news server there are some newsgroups of which the names are | ||
| 4170 | spelled in Chinese, where people are talking in Chinese. You can, of | ||
| 4171 | course, subscribe to such news groups using Gnus. Currently Gnus | ||
| 4172 | supports non-@acronym{ASCII} group names not only with the @code{nntp} | ||
| 4173 | back end but also with the @code{nnml} back end and the @code{nnrss} | ||
| 4174 | back end. | ||
| 4175 | |||
| 4176 | Every such group name is encoded by a certain charset in the server | ||
| 4177 | side (in an @acronym{NNTP} server its administrator determines the | ||
| 4178 | charset, but for groups in the other back ends it is determined by you). | ||
| 4179 | Gnus has to display the decoded ones for you in the group buffer and the | ||
| 4180 | article buffer, and needs to use the encoded ones when communicating | ||
| 4181 | with servers. However, Gnus doesn't know what charset is used for each | ||
| 4182 | non-@acronym{ASCII} group name. The following two variables are just | ||
| 4183 | the ones for telling Gnus what charset should be used for each group: | ||
| 4184 | |||
| 4185 | @table @code | ||
| 4186 | @item gnus-group-name-charset-method-alist | ||
| 4187 | @vindex gnus-group-name-charset-method-alist | ||
| 4188 | An alist of select methods and charsets. The default value is | ||
| 4189 | @code{nil}. The names of groups in the server specified by that select | ||
| 4190 | method are all supposed to use the corresponding charset. For example: | ||
| 4191 | |||
| 4192 | @lisp | ||
| 4193 | (setq gnus-group-name-charset-method-alist | ||
| 4194 | '(((nntp "news.com.cn") . cn-gb-2312))) | ||
| 4195 | @end lisp | ||
| 4196 | |||
| 4197 | Charsets specified for groups with this variable are preferred to the | ||
| 4198 | ones specified for the same groups with the | ||
| 4199 | @code{gnus-group-name-charset-group-alist} variable (see below). | ||
| 4200 | |||
| 4201 | A select method can be very long, like: | ||
| 4202 | |||
| 4203 | @lisp | ||
| 4204 | (nntp "gmane" | ||
| 4205 | (nntp-address "news.gmane.org") | ||
| 4206 | (nntp-end-of-line "\n") | ||
| 4207 | (nntp-open-connection-function | ||
| 4208 | nntp-open-via-rlogin-and-telnet) | ||
| 4209 | (nntp-via-rlogin-command "ssh") | ||
| 4210 | (nntp-via-rlogin-command-switches | ||
| 4211 | ("-C" "-t" "-e" "none")) | ||
| 4212 | (nntp-via-address @dots{})) | ||
| 4213 | @end lisp | ||
| 4214 | |||
| 4215 | In that case, you can truncate it into @code{(nntp "gmane")} in this | ||
| 4216 | variable. That is, it is enough to contain only the back end name and | ||
| 4217 | the server name. | ||
| 4218 | |||
| 4219 | @item gnus-group-name-charset-group-alist | ||
| 4220 | @cindex UTF-8 group names | ||
| 4221 | @vindex gnus-group-name-charset-group-alist | ||
| 4222 | An alist of regexp of group name and the charset for group names. | ||
| 4223 | @code{((".*" . utf-8))} is the default value if UTF-8 is supported, | ||
| 4224 | otherwise the default is @code{nil}. For example: | ||
| 4225 | |||
| 4226 | @lisp | ||
| 4227 | (setq gnus-group-name-charset-group-alist | ||
| 4228 | '(("\\.com\\.cn:" . cn-gb-2312) | ||
| 4229 | (".*" . utf-8))) | ||
| 4230 | @end lisp | ||
| 4231 | |||
| 4232 | Note that this variable is ignored if the match is made with | ||
| 4233 | @code{gnus-group-name-charset-method-alist}. | ||
| 4234 | @end table | ||
| 4235 | |||
| 4236 | Those two variables are used also to determine the charset for encoding | ||
| 4237 | and decoding non-@acronym{ASCII} group names that are in the back ends | ||
| 4238 | other than @code{nntp}. It means that it is you who determine it. If | ||
| 4239 | you do nothing, the charset used for group names in those back ends will | ||
| 4240 | all be @code{utf-8} because of the last element of | ||
| 4241 | @code{gnus-group-name-charset-group-alist}. | ||
| 4242 | |||
| 4243 | There is one more important variable for non-@acronym{ASCII} group | ||
| 4244 | names. @emph{XEmacs users must set this}. Emacs users necessarily need | ||
| 4245 | not do: | ||
| 4246 | |||
| 4247 | @table @code | ||
| 4248 | @item nnmail-pathname-coding-system | ||
| 4249 | The value of this variable should be a coding system or @code{nil} | ||
| 4250 | (which is the default). The @code{nnml} back end, the @code{nnrss} back | ||
| 4251 | end, the @acronym{NNTP} marks feature (@pxref{NNTP marks}), the agent, | ||
| 4252 | and the cache use non-@acronym{ASCII} group names in those files and | ||
| 4253 | directories. This variable overrides the value of | ||
| 4254 | @code{file-name-coding-system} which specifies the coding system used | ||
| 4255 | when encoding and decoding those file names and directory names. | ||
| 4256 | |||
| 4257 | In XEmacs (with the @code{mule} feature), @code{file-name-coding-system} | ||
| 4258 | is the only means to specify the coding system used to encode and decode | ||
| 4259 | file names. Therefore, @emph{you, XEmacs users, have to set it} to the | ||
| 4260 | coding system that is suitable to encode and decode non-@acronym{ASCII} | ||
| 4261 | group names. On the other hand, Emacs uses the value of | ||
| 4262 | @code{default-file-name-coding-system} if @code{file-name-coding-system} | ||
| 4263 | is @code{nil}. Normally the value of | ||
| 4264 | @code{default-file-name-coding-system} is initialized according to the | ||
| 4265 | locale, so you will need to do nothing if the value is suitable to | ||
| 4266 | encode and decode non-@acronym{ASCII} group names. | ||
| 4267 | |||
| 4268 | The value of this variable (or @code{default-file-name-coding-system}) | ||
| 4269 | does not necessarily need to be the same value that is determined by | ||
| 4270 | @code{gnus-group-name-charset-method-alist} and | ||
| 4271 | @code{gnus-group-name-charset-group-alist}. | ||
| 4272 | |||
| 4273 | If you want to subscribe to the groups spelled in Chinese but | ||
| 4274 | @code{default-file-name-coding-system} is initialized by default to | ||
| 4275 | @code{iso-latin-1} for example, that is the most typical case where you | ||
| 4276 | have to set @code{nnmail-pathname-coding-system} even if you are an | ||
| 4277 | Emacs user. The @code{utf-8} coding system is a good candidate for it. | ||
| 4278 | Otherwise, you may change the locale in your system so that | ||
| 4279 | @code{default-file-name-coding-system} may be initialized to an | ||
| 4280 | appropriate value, instead of specifying this variable. | ||
| 4281 | @end table | ||
| 4282 | |||
| 4283 | Note that when you copy or move articles from a non-@acronym{ASCII} | ||
| 4284 | group to another group, the charset used to encode and decode group | ||
| 4285 | names should be the same in both groups. Otherwise the Newsgroups | ||
| 4286 | header will be displayed incorrectly in the article buffer. | ||
| 4287 | |||
| 4288 | |||
| 4089 | @node Misc Group Stuff | 4289 | @node Misc Group Stuff |
| 4090 | @section Misc Group Stuff | 4290 | @section Misc Group Stuff |
| 4091 | 4291 | ||
| @@ -4152,6 +4352,15 @@ sending them over the network: they're just saved directly to the group | |||
| 4152 | in question. The corresponding back end must have a request-post method | 4352 | in question. The corresponding back end must have a request-post method |
| 4153 | for this to work though. | 4353 | for this to work though. |
| 4154 | 4354 | ||
| 4355 | @item G z | ||
| 4356 | @kindex G z (Group) | ||
| 4357 | @findex gnus-group-compact-group | ||
| 4358 | |||
| 4359 | Compact the group under point (@code{gnus-group-compact-group}). | ||
| 4360 | Currently implemented only in nnml (@pxref{Mail Spool}). This removes | ||
| 4361 | gaps between article numbers, hence getting a correct total article | ||
| 4362 | count. | ||
| 4363 | |||
| 4155 | @end table | 4364 | @end table |
| 4156 | 4365 | ||
| 4157 | Variables for the group buffer: | 4366 | Variables for the group buffer: |
| @@ -4179,31 +4388,6 @@ generated. It may be used to move point around, for instance. | |||
| 4179 | Groups matching this regexp will always be listed in the group buffer, | 4388 | Groups matching this regexp will always be listed in the group buffer, |
| 4180 | whether they are empty or not. | 4389 | whether they are empty or not. |
| 4181 | 4390 | ||
| 4182 | @item gnus-group-name-charset-method-alist | ||
| 4183 | @vindex gnus-group-name-charset-method-alist | ||
| 4184 | An alist of method and the charset for group names. It is used to show | ||
| 4185 | non-@acronym{ASCII} group names. | ||
| 4186 | |||
| 4187 | For example: | ||
| 4188 | @lisp | ||
| 4189 | (setq gnus-group-name-charset-method-alist | ||
| 4190 | '(((nntp "news.com.cn") . cn-gb-2312))) | ||
| 4191 | @end lisp | ||
| 4192 | |||
| 4193 | @item gnus-group-name-charset-group-alist | ||
| 4194 | @cindex UTF-8 group names | ||
| 4195 | @vindex gnus-group-name-charset-group-alist | ||
| 4196 | An alist of regexp of group name and the charset for group names. It | ||
| 4197 | is used to show non-@acronym{ASCII} group names. @code{((".*" | ||
| 4198 | utf-8))} is the default value if UTF-8 is supported, otherwise the | ||
| 4199 | default is @code{nil}. | ||
| 4200 | |||
| 4201 | For example: | ||
| 4202 | @lisp | ||
| 4203 | (setq gnus-group-name-charset-group-alist | ||
| 4204 | '(("\\.com\\.cn:" . cn-gb-2312))) | ||
| 4205 | @end lisp | ||
| 4206 | |||
| 4207 | @end table | 4391 | @end table |
| 4208 | 4392 | ||
| 4209 | @node Scanning New Messages | 4393 | @node Scanning New Messages |
| @@ -4536,6 +4720,7 @@ command or better use it as a prefix key. For example: | |||
| 4536 | * Asynchronous Fetching:: Gnus might be able to pre-fetch articles. | 4720 | * Asynchronous Fetching:: Gnus might be able to pre-fetch articles. |
| 4537 | * Article Caching:: You may store articles in a cache. | 4721 | * Article Caching:: You may store articles in a cache. |
| 4538 | * Persistent Articles:: Making articles expiry-resistant. | 4722 | * Persistent Articles:: Making articles expiry-resistant. |
| 4723 | * Sticky Articles:: Article buffers that are not reused. | ||
| 4539 | * Article Backlog:: Having already read articles hang around. | 4724 | * Article Backlog:: Having already read articles hang around. |
| 4540 | * Saving Articles:: Ways of customizing article saving. | 4725 | * Saving Articles:: Ways of customizing article saving. |
| 4541 | * Decoding Articles:: Gnus can treat series of (uu)encoded articles. | 4726 | * Decoding Articles:: Gnus can treat series of (uu)encoded articles. |
| @@ -4838,6 +5023,13 @@ summary line spec returns the @code{To}, @code{Newsreader} or | |||
| 4838 | @code{From} header, the value of the @code{To} or @code{Newsreader} | 5023 | @code{From} header, the value of the @code{To} or @code{Newsreader} |
| 4839 | headers are used instead. | 5024 | headers are used instead. |
| 4840 | 5025 | ||
| 5026 | To distinguish regular articles from those where the @code{From} field | ||
| 5027 | has been swapped, a string is prefixed to the @code{To} or | ||
| 5028 | @code{Newsgroups} header in the summary line. By default the string is | ||
| 5029 | @samp{-> } for @code{To} and @samp{=> } for @code{Newsgroups}, you can | ||
| 5030 | customize these strings with @code{gnus-summary-to-prefix} and | ||
| 5031 | @code{gnus-summary-newsgroup-prefix}. | ||
| 5032 | |||
| 4841 | @end enumerate | 5033 | @end enumerate |
| 4842 | 5034 | ||
| 4843 | @vindex nnmail-extra-headers | 5035 | @vindex nnmail-extra-headers |
| @@ -6362,6 +6554,27 @@ Limit the summary buffer to articles that match some author | |||
| 6362 | (@code{gnus-summary-limit-to-author}). If given a prefix, exclude | 6554 | (@code{gnus-summary-limit-to-author}). If given a prefix, exclude |
| 6363 | matching articles. | 6555 | matching articles. |
| 6364 | 6556 | ||
| 6557 | @item / R | ||
| 6558 | @kindex / R (Summary) | ||
| 6559 | @findex gnus-summary-limit-to-recipient | ||
| 6560 | Limit the summary buffer to articles that match some recipient | ||
| 6561 | (@code{gnus-summary-limit-to-recipient}). If given a prefix, exclude | ||
| 6562 | matching articles. | ||
| 6563 | |||
| 6564 | @item / A | ||
| 6565 | @kindex / A (Summary) | ||
| 6566 | @findex gnus-summary-limit-to-address | ||
| 6567 | Limit the summary buffer to articles in which contents of From, To or Cc | ||
| 6568 | header match a given address (@code{gnus-summary-limit-to-address}). If | ||
| 6569 | given a prefix, exclude matching articles. | ||
| 6570 | |||
| 6571 | @item / S | ||
| 6572 | @kindex / S (Summary) | ||
| 6573 | @findex gnus-summary-limit-to-singletons | ||
| 6574 | Limit the summary buffer to articles that aren't part of any displayed | ||
| 6575 | threads (@code{gnus-summary-limit-to-singletons}). If given a prefix, | ||
| 6576 | limit to articles that are part of displayed threads. | ||
| 6577 | |||
| 6365 | @item / x | 6578 | @item / x |
| 6366 | @kindex / x (Summary) | 6579 | @kindex / x (Summary) |
| 6367 | @findex gnus-summary-limit-to-extra | 6580 | @findex gnus-summary-limit-to-extra |
| @@ -6427,6 +6640,13 @@ group parameter predicate | |||
| 6427 | (@code{gnus-summary-limit-to-display-predicate}). @xref{Group | 6640 | (@code{gnus-summary-limit-to-display-predicate}). @xref{Group |
| 6428 | Parameters}, for more on this predicate. | 6641 | Parameters}, for more on this predicate. |
| 6429 | 6642 | ||
| 6643 | @item / r | ||
| 6644 | @kindex / r (Summary) | ||
| 6645 | @findex gnus-summary-limit-to-replied | ||
| 6646 | Limit the summary buffer to replied articles | ||
| 6647 | (@code{gnus-summary-limit-to-replied}). If given a prefix, exclude | ||
| 6648 | replied articles. | ||
| 6649 | |||
| 6430 | @item / E | 6650 | @item / E |
| 6431 | @itemx M S | 6651 | @itemx M S |
| 6432 | @kindex M S (Summary) | 6652 | @kindex M S (Summary) |
| @@ -6488,6 +6708,20 @@ if @var{back-end}@code{-get-new-mail} is non-@code{nil}. | |||
| 6488 | Insert all old articles in the summary buffer. If given a numbered | 6708 | Insert all old articles in the summary buffer. If given a numbered |
| 6489 | prefix, fetch this number of articles. | 6709 | prefix, fetch this number of articles. |
| 6490 | 6710 | ||
| 6711 | @item / b | ||
| 6712 | @kindex / b (Summary) | ||
| 6713 | @findex gnus-summary-limit-to-bodies | ||
| 6714 | Limit the summary buffer to articles that have bodies that match a | ||
| 6715 | certain regexp (@code{gnus-summary-limit-to-bodies}). If given a | ||
| 6716 | prefix, reverse the limit. This command is quite slow since it | ||
| 6717 | requires selecting each article to find the matches. | ||
| 6718 | |||
| 6719 | @item / h | ||
| 6720 | @kindex / h (Summary) | ||
| 6721 | @findex gnus-summary-limit-to-headers | ||
| 6722 | Like the previous command, only limit to headers instead | ||
| 6723 | (@code{gnus-summary-limit-to-headers}). | ||
| 6724 | |||
| 6491 | @end table | 6725 | @end table |
| 6492 | 6726 | ||
| 6493 | 6727 | ||
| @@ -6988,6 +7222,12 @@ summary buffer is otherwise unthreaded. | |||
| 6988 | Make the current article the child of the marked (or previous) article | 7222 | Make the current article the child of the marked (or previous) article |
| 6989 | (@code{gnus-summary-reparent-thread}). | 7223 | (@code{gnus-summary-reparent-thread}). |
| 6990 | 7224 | ||
| 7225 | @item T M-^ | ||
| 7226 | @kindex T M-^ (Summary) | ||
| 7227 | @findex gnus-summary-reparent-children | ||
| 7228 | Make the current article the parent of the marked articles | ||
| 7229 | (@code{gnus-summary-reparent-children}). | ||
| 7230 | |||
| 6991 | @end table | 7231 | @end table |
| 6992 | 7232 | ||
| 6993 | The following commands are thread movement commands. They all | 7233 | The following commands are thread movement commands. They all |
| @@ -7052,6 +7292,7 @@ Matching}). | |||
| 7052 | @findex gnus-thread-sort-by-score | 7292 | @findex gnus-thread-sort-by-score |
| 7053 | @findex gnus-thread-sort-by-subject | 7293 | @findex gnus-thread-sort-by-subject |
| 7054 | @findex gnus-thread-sort-by-author | 7294 | @findex gnus-thread-sort-by-author |
| 7295 | @findex gnus-thread-sort-by-recipient | ||
| 7055 | @findex gnus-thread-sort-by-number | 7296 | @findex gnus-thread-sort-by-number |
| 7056 | @findex gnus-thread-sort-by-random | 7297 | @findex gnus-thread-sort-by-random |
| 7057 | @vindex gnus-thread-sort-functions | 7298 | @vindex gnus-thread-sort-functions |
| @@ -7064,8 +7305,10 @@ function, a list of functions, or a list containing functions and | |||
| 7064 | 7305 | ||
| 7065 | By default, sorting is done on article numbers. Ready-made sorting | 7306 | By default, sorting is done on article numbers. Ready-made sorting |
| 7066 | predicate functions include @code{gnus-thread-sort-by-number}, | 7307 | predicate functions include @code{gnus-thread-sort-by-number}, |
| 7067 | @code{gnus-thread-sort-by-author}, @code{gnus-thread-sort-by-subject}, | 7308 | @code{gnus-thread-sort-by-author}, @code{gnus-thread-sort-by-recipient}, |
| 7068 | @code{gnus-thread-sort-by-date}, @code{gnus-thread-sort-by-score}, | 7309 | @code{gnus-thread-sort-by-subject}, |
| 7310 | @code{gnus-thread-sort-by-date}, | ||
| 7311 | @code{gnus-thread-sort-by-score}, | ||
| 7069 | @code{gnus-thread-sort-by-most-recent-number}, | 7312 | @code{gnus-thread-sort-by-most-recent-number}, |
| 7070 | @code{gnus-thread-sort-by-most-recent-date}, | 7313 | @code{gnus-thread-sort-by-most-recent-date}, |
| 7071 | @code{gnus-thread-sort-by-random} and | 7314 | @code{gnus-thread-sort-by-random} and |
| @@ -7103,8 +7346,7 @@ say something like: | |||
| 7103 | 7346 | ||
| 7104 | @lisp | 7347 | @lisp |
| 7105 | (setq gnus-thread-sort-functions | 7348 | (setq gnus-thread-sort-functions |
| 7106 | '((lambda (t1 t2) | 7349 | '((not gnus-thread-sort-by-number) |
| 7107 | (not (gnus-thread-sort-by-number t1 t2))) | ||
| 7108 | gnus-thread-sort-by-score)) | 7350 | gnus-thread-sort-by-score)) |
| 7109 | @end lisp | 7351 | @end lisp |
| 7110 | 7352 | ||
| @@ -7141,6 +7383,8 @@ say something like: | |||
| 7141 | gnus-article-sort-by-subject)) | 7383 | gnus-article-sort-by-subject)) |
| 7142 | @end lisp | 7384 | @end lisp |
| 7143 | 7385 | ||
| 7386 | You can define group specific sorting via @code{gnus-parameters}, | ||
| 7387 | @xref{Group Parameters}. | ||
| 7144 | 7388 | ||
| 7145 | 7389 | ||
| 7146 | @node Asynchronous Fetching | 7390 | @node Asynchronous Fetching |
| @@ -7362,6 +7606,53 @@ interested in persistent articles: | |||
| 7362 | (setq gnus-use-cache 'passive) | 7606 | (setq gnus-use-cache 'passive) |
| 7363 | @end lisp | 7607 | @end lisp |
| 7364 | 7608 | ||
| 7609 | @node Sticky Articles | ||
| 7610 | @section Sticky Articles | ||
| 7611 | @cindex sticky articles | ||
| 7612 | |||
| 7613 | When you select an article the current article buffer will be reused | ||
| 7614 | according to the value of the variable | ||
| 7615 | @code{gnus-single-article-buffer}. If its value is non-@code{nil} (the | ||
| 7616 | default) all articles reuse the same article buffer. Else each group | ||
| 7617 | has its own article buffer. | ||
| 7618 | |||
| 7619 | This implies that it's not possible to have more than one article buffer | ||
| 7620 | in a group at a time. But sometimes you might want to display all the | ||
| 7621 | latest emails from your mother, your father, your aunt, your uncle and | ||
| 7622 | your 17 cousins to coordinate the next christmas party. | ||
| 7623 | |||
| 7624 | That's where sticky articles come in handy. A sticky article buffer | ||
| 7625 | basically is a normal article buffer, but it won't be reused when you | ||
| 7626 | select another article. You can make an article sticky with: | ||
| 7627 | |||
| 7628 | @table @kbd | ||
| 7629 | @item A S | ||
| 7630 | @kindex A S (Summary) | ||
| 7631 | @findex gnus-sticky-article | ||
| 7632 | Make the current article sticky. If a prefix arg is given, ask for a | ||
| 7633 | name for this sticky article buffer. | ||
| 7634 | @end table | ||
| 7635 | |||
| 7636 | To close a sticky article buffer you can use these commands: | ||
| 7637 | |||
| 7638 | @table @kbd | ||
| 7639 | @item q | ||
| 7640 | @kindex q (Article) | ||
| 7641 | @findex bury-buffer | ||
| 7642 | Puts this sticky article buffer at the end of the list of all buffers. | ||
| 7643 | |||
| 7644 | @item k | ||
| 7645 | @kindex k (Article) | ||
| 7646 | @findex gnus-kill-sticky-article-buffer | ||
| 7647 | Kills this sticky article buffer. | ||
| 7648 | @end table | ||
| 7649 | |||
| 7650 | To kill all sticky article buffers you can use: | ||
| 7651 | |||
| 7652 | @defun gnus-kill-sticky-article-buffers ARG | ||
| 7653 | Kill all sticky article buffers. | ||
| 7654 | If a prefix ARG is given, ask for confirmation. | ||
| 7655 | @end defun | ||
| 7365 | 7656 | ||
| 7366 | @node Article Backlog | 7657 | @node Article Backlog |
| 7367 | @section Article Backlog | 7658 | @section Article Backlog |
| @@ -8555,6 +8846,16 @@ is rumored to have employed this form of, uh, somewhat weak encryption. | |||
| 8555 | @findex gnus-summary-morse-message | 8846 | @findex gnus-summary-morse-message |
| 8556 | Morse decode the article buffer (@code{gnus-summary-morse-message}). | 8847 | Morse decode the article buffer (@code{gnus-summary-morse-message}). |
| 8557 | 8848 | ||
| 8849 | @item W i | ||
| 8850 | @kindex W i (Summary) | ||
| 8851 | @findex gnus-summary-idna-message | ||
| 8852 | Decode IDNA encoded domain names in the current articles. IDNA | ||
| 8853 | encoded domain names looks like @samp{xn--bar}. If a string remain | ||
| 8854 | unencoded after running invoking this, it is likely an invalid IDNA | ||
| 8855 | string (@samp{xn--bar} is invalid). You must have GNU Libidn | ||
| 8856 | (@url{http://www.gnu.org/software/libidn/}) installed for this command | ||
| 8857 | to work. | ||
| 8858 | |||
| 8558 | @item W t | 8859 | @item W t |
| 8559 | @item t | 8860 | @item t |
| 8560 | @kindex W t (Summary) | 8861 | @kindex W t (Summary) |
| @@ -8657,9 +8958,9 @@ CRs into LF (this takes care of Mac line endings) | |||
| 8657 | Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}). | 8958 | Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}). |
| 8658 | Quoted-Printable is one common @acronym{MIME} encoding employed when | 8959 | Quoted-Printable is one common @acronym{MIME} encoding employed when |
| 8659 | sending non-@acronym{ASCII} (i.e., 8-bit) articles. It typically | 8960 | sending non-@acronym{ASCII} (i.e., 8-bit) articles. It typically |
| 8660 | makes strings like @samp{déjà vu} look like @samp{d=E9j=E0 vu}, which | 8961 | makes strings like @samp{d@'ej@`a vu} look like @samp{d=E9j=E0 vu}, |
| 8661 | doesn't look very readable to me. Note that this is usually done | 8962 | which doesn't look very readable to me. Note that this is usually |
| 8662 | automatically by Gnus if the message in question has a | 8963 | done automatically by Gnus if the message in question has a |
| 8663 | @code{Content-Transfer-Encoding} header that says that this encoding | 8964 | @code{Content-Transfer-Encoding} header that says that this encoding |
| 8664 | has been done. If a prefix is given, a charset will be asked for. | 8965 | has been done. If a prefix is given, a charset will be asked for. |
| 8665 | 8966 | ||
| @@ -8680,6 +8981,14 @@ Treat HZ or HZP (@code{gnus-article-decode-HZ}). HZ (or HZP) is one | |||
| 8680 | common encoding employed when sending Chinese articles. It typically | 8981 | common encoding employed when sending Chinese articles. It typically |
| 8681 | makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}. | 8982 | makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}. |
| 8682 | 8983 | ||
| 8984 | @item W A | ||
| 8985 | @kindex W A (Summary) | ||
| 8986 | @findex gnus-article-treat-ansi-sequences | ||
| 8987 | @cindex @acronym{ANSI} control sequences | ||
| 8988 | Translate @acronym{ANSI} SGR control sequences into overlays or | ||
| 8989 | extents (@code{gnus-article-treat-ansi-sequences}). @acronym{ANSI} | ||
| 8990 | sequences are used in some Chinese hierarchies for highlighting. | ||
| 8991 | |||
| 8683 | @item W u | 8992 | @item W u |
| 8684 | @kindex W u (Summary) | 8993 | @kindex W u (Summary) |
| 8685 | @findex gnus-article-unsplit-urls | 8994 | @findex gnus-article-unsplit-urls |
| @@ -9307,7 +9616,7 @@ Translate the article from one language to another | |||
| 9307 | @cindex viewing attachments | 9616 | @cindex viewing attachments |
| 9308 | 9617 | ||
| 9309 | The following commands all understand the numerical prefix. For | 9618 | The following commands all understand the numerical prefix. For |
| 9310 | instance, @kbd{3 b} means ``view the third @acronym{MIME} part''. | 9619 | instance, @kbd{3 K v} means ``view the third @acronym{MIME} part''. |
| 9311 | 9620 | ||
| 9312 | @table @kbd | 9621 | @table @kbd |
| 9313 | @item b | 9622 | @item b |
| @@ -9320,6 +9629,21 @@ View the @acronym{MIME} part. | |||
| 9320 | @kindex K o (Summary) | 9629 | @kindex K o (Summary) |
| 9321 | Save the @acronym{MIME} part. | 9630 | Save the @acronym{MIME} part. |
| 9322 | 9631 | ||
| 9632 | @item K O | ||
| 9633 | @kindex K O (Summary) | ||
| 9634 | Prompt for a file name, then save the @acronym{MIME} part and strip it | ||
| 9635 | from the article. The stripped @acronym{MIME} object will be referred | ||
| 9636 | via the message/external-body @acronym{MIME} type. | ||
| 9637 | |||
| 9638 | @item K r | ||
| 9639 | @kindex K r (Summary) | ||
| 9640 | Replace the @acronym{MIME} part with an external body. | ||
| 9641 | |||
| 9642 | @item K d | ||
| 9643 | @kindex K d (Summary) | ||
| 9644 | Delete the @acronym{MIME} part and add some information about the | ||
| 9645 | removed part. | ||
| 9646 | |||
| 9323 | @item K c | 9647 | @item K c |
| 9324 | @kindex K c (Summary) | 9648 | @kindex K c (Summary) |
| 9325 | Copy the @acronym{MIME} part. | 9649 | Copy the @acronym{MIME} part. |
| @@ -9677,6 +10001,11 @@ Sort by article number (@code{gnus-summary-sort-by-number}). | |||
| 9677 | @findex gnus-summary-sort-by-author | 10001 | @findex gnus-summary-sort-by-author |
| 9678 | Sort by author (@code{gnus-summary-sort-by-author}). | 10002 | Sort by author (@code{gnus-summary-sort-by-author}). |
| 9679 | 10003 | ||
| 10004 | @item C-c C-s C-t | ||
| 10005 | @kindex C-c C-s C-t (Summary) | ||
| 10006 | @findex gnus-summary-sort-by-recipient | ||
| 10007 | Sort by recipient (@code{gnus-summary-sort-by-recipient}). | ||
| 10008 | |||
| 9680 | @item C-c C-s C-s | 10009 | @item C-c C-s C-s |
| 9681 | @kindex C-c C-s C-s (Summary) | 10010 | @kindex C-c C-s C-s (Summary) |
| 9682 | @findex gnus-summary-sort-by-subject | 10011 | @findex gnus-summary-sort-by-subject |
| @@ -10401,6 +10730,18 @@ Search through all subsequent (raw) articles for a regexp | |||
| 10401 | Search through all previous (raw) articles for a regexp | 10730 | Search through all previous (raw) articles for a regexp |
| 10402 | (@code{gnus-summary-search-article-backward}). | 10731 | (@code{gnus-summary-search-article-backward}). |
| 10403 | 10732 | ||
| 10733 | @item M-S | ||
| 10734 | @kindex M-S (Summary) | ||
| 10735 | @findex gnus-summary-repeat-search-article-forward | ||
| 10736 | Repeat the previous search forwards | ||
| 10737 | (@code{gnus-summary-repeat-search-article-forward}). | ||
| 10738 | |||
| 10739 | @item M-R | ||
| 10740 | @kindex M-R (Summary) | ||
| 10741 | @findex gnus-summary-repeat-search-article-backward | ||
| 10742 | Repeat the previous search backwards | ||
| 10743 | (@code{gnus-summary-repeat-search-article-backward}). | ||
| 10744 | |||
| 10404 | @item & | 10745 | @item & |
| 10405 | @kindex & (Summary) | 10746 | @kindex & (Summary) |
| 10406 | @findex gnus-summary-execute-command | 10747 | @findex gnus-summary-execute-command |
| @@ -10442,6 +10783,12 @@ Pull all cached articles (for the current group) into the summary buffer | |||
| 10442 | Pull all dormant articles (for the current group) into the summary buffer | 10783 | Pull all dormant articles (for the current group) into the summary buffer |
| 10443 | (@code{gnus-summary-insert-dormant-articles}). | 10784 | (@code{gnus-summary-insert-dormant-articles}). |
| 10444 | 10785 | ||
| 10786 | @item Y t | ||
| 10787 | @kindex Y t (Summary) | ||
| 10788 | @findex gnus-summary-insert-ticked-articles | ||
| 10789 | Pull all ticked articles (for the current group) into the summary buffer | ||
| 10790 | (@code{gnus-summary-insert-ticked-articles}). | ||
| 10791 | |||
| 10445 | @end table | 10792 | @end table |
| 10446 | 10793 | ||
| 10447 | 10794 | ||
| @@ -10464,6 +10811,28 @@ whenever you see a message that is a collection of other messages of | |||
| 10464 | some format, you @kbd{C-d} and read these messages in a more convenient | 10811 | some format, you @kbd{C-d} and read these messages in a more convenient |
| 10465 | fashion. | 10812 | fashion. |
| 10466 | 10813 | ||
| 10814 | @vindex gnus-auto-select-on-ephemeral-exit | ||
| 10815 | The variable @code{gnus-auto-select-on-ephemeral-exit} controls what | ||
| 10816 | article should be selected after exiting a digest group. Valid values | ||
| 10817 | include: | ||
| 10818 | |||
| 10819 | @table @code | ||
| 10820 | @item next | ||
| 10821 | Select the next article. | ||
| 10822 | |||
| 10823 | @item next-unread | ||
| 10824 | Select the next unread article. | ||
| 10825 | |||
| 10826 | @item next-noselect | ||
| 10827 | Move the cursor to the next article. This is the default. | ||
| 10828 | |||
| 10829 | @item next-unread-noselect | ||
| 10830 | Move the cursor to the next unread article. | ||
| 10831 | @end table | ||
| 10832 | |||
| 10833 | If it has any other value or there is no next (unread) article, the | ||
| 10834 | article selected before entering to the digest group will appear. | ||
| 10835 | |||
| 10467 | @item C-M-d | 10836 | @item C-M-d |
| 10468 | @kindex C-M-d (Summary) | 10837 | @kindex C-M-d (Summary) |
| 10469 | @findex gnus-summary-read-document | 10838 | @findex gnus-summary-read-document |
| @@ -10562,6 +10931,12 @@ Mark all articles, even the ticked ones, as read and then exit | |||
| 10562 | Mark all articles as read and go to the next group | 10931 | Mark all articles as read and go to the next group |
| 10563 | (@code{gnus-summary-catchup-and-goto-next-group}). | 10932 | (@code{gnus-summary-catchup-and-goto-next-group}). |
| 10564 | 10933 | ||
| 10934 | @item Z p | ||
| 10935 | @kindex Z p (Summary) | ||
| 10936 | @findex gnus-summary-catchup-and-goto-prev-group | ||
| 10937 | Mark all articles as read and go to the previous group | ||
| 10938 | (@code{gnus-summary-catchup-and-goto-prev-group}). | ||
| 10939 | |||
| 10565 | @item Z R | 10940 | @item Z R |
| 10566 | @itemx C-x C-s | 10941 | @itemx C-x C-s |
| 10567 | @kindex Z R (Summary) | 10942 | @kindex Z R (Summary) |
| @@ -10891,7 +11266,7 @@ Send a message to the mailing list owner, if List-Owner field exists. | |||
| 10891 | 11266 | ||
| 10892 | @item C-c C-n a | 11267 | @item C-c C-n a |
| 10893 | @kindex C-c C-n a (Summary) | 11268 | @kindex C-c C-n a (Summary) |
| 10894 | @findex gnus-mailing-list-owner | 11269 | @findex gnus-mailing-list-archive |
| 10895 | Browse the mailing list archive, if List-Archive field exists. | 11270 | Browse the mailing list archive, if List-Archive field exists. |
| 10896 | 11271 | ||
| 10897 | @end table | 11272 | @end table |
| @@ -11111,6 +11486,13 @@ like. The stripped @acronym{MIME} object will be referred via the | |||
| 11111 | message/external-body @acronym{MIME} type. | 11486 | message/external-body @acronym{MIME} type. |
| 11112 | (@code{gnus-mime-save-part-and-strip}). | 11487 | (@code{gnus-mime-save-part-and-strip}). |
| 11113 | 11488 | ||
| 11489 | @findex gnus-mime-replace-part | ||
| 11490 | @item r (Article) | ||
| 11491 | @kindex r (Article) | ||
| 11492 | Prompt for a file name, replace the @acronym{MIME} object with an | ||
| 11493 | external body refering to the file via the message/external-body | ||
| 11494 | @acronym{MIME} type. (@code{gnus-mime-replace-part}). | ||
| 11495 | |||
| 11114 | @findex gnus-mime-delete-part | 11496 | @findex gnus-mime-delete-part |
| 11115 | @item d (Article) | 11497 | @item d (Article) |
| 11116 | @kindex d (Article) | 11498 | @kindex d (Article) |
| @@ -11118,11 +11500,16 @@ Delete the @acronym{MIME} object from the article and replace it with some | |||
| 11118 | information about the removed @acronym{MIME} object | 11500 | information about the removed @acronym{MIME} object |
| 11119 | (@code{gnus-mime-delete-part}). | 11501 | (@code{gnus-mime-delete-part}). |
| 11120 | 11502 | ||
| 11503 | @c FIXME: gnus-auto-select-part should be documented here | ||
| 11504 | |||
| 11121 | @findex gnus-mime-copy-part | 11505 | @findex gnus-mime-copy-part |
| 11122 | @item c (Article) | 11506 | @item c (Article) |
| 11123 | @kindex c (Article) | 11507 | @kindex c (Article) |
| 11124 | Copy the @acronym{MIME} object to a fresh buffer and display this buffer | 11508 | Copy the @acronym{MIME} object to a fresh buffer and display this buffer |
| 11125 | (@code{gnus-mime-copy-part}). Compressed files like @file{.gz} and | 11509 | (@code{gnus-mime-copy-part}). If given a prefix, copy the raw contents |
| 11510 | without decoding. If given a numerical prefix, you can do semi-manual | ||
| 11511 | charset stuff (see @code{gnus-summary-show-article-charset-alist} in | ||
| 11512 | @ref{Paging the Article}). Compressed files like @file{.gz} and | ||
| 11126 | @file{.bz2} are automatically decompressed if | 11513 | @file{.bz2} are automatically decompressed if |
| 11127 | @code{auto-compression-mode} is enabled (@pxref{Compressed Files,, | 11514 | @code{auto-compression-mode} is enabled (@pxref{Compressed Files,, |
| 11128 | Accessing Compressed Files, emacs, The Emacs Editor}). | 11515 | Accessing Compressed Files, emacs, The Emacs Editor}). |
| @@ -11142,7 +11529,10 @@ Insert the contents of the @acronym{MIME} object into the buffer | |||
| 11142 | the raw contents without decoding. If given a numerical prefix, you can | 11529 | the raw contents without decoding. If given a numerical prefix, you can |
| 11143 | do semi-manual charset stuff (see | 11530 | do semi-manual charset stuff (see |
| 11144 | @code{gnus-summary-show-article-charset-alist} in @ref{Paging the | 11531 | @code{gnus-summary-show-article-charset-alist} in @ref{Paging the |
| 11145 | Article}). | 11532 | Article}). Compressed files like @file{.gz} and @file{.bz2} are |
| 11533 | automatically decompressed depending on @code{jka-compr} regardless of | ||
| 11534 | @code{auto-compression-mode} (@pxref{Compressed Files,, Accessing | ||
| 11535 | Compressed Files, emacs, The Emacs Editor}). | ||
| 11146 | 11536 | ||
| 11147 | @findex gnus-mime-view-part-internally | 11537 | @findex gnus-mime-view-part-internally |
| 11148 | @item E (Article) | 11538 | @item E (Article) |
| @@ -11217,7 +11607,10 @@ for sensible values. | |||
| 11217 | @code{head}: Do the treatment on the headers. | 11607 | @code{head}: Do the treatment on the headers. |
| 11218 | 11608 | ||
| 11219 | @item | 11609 | @item |
| 11220 | @code{last}: Do this treatment on the last part. | 11610 | @code{first}: Do this treatment on the first body part. |
| 11611 | |||
| 11612 | @item | ||
| 11613 | @code{last}: Do this treatment on the last body part. | ||
| 11221 | 11614 | ||
| 11222 | @item | 11615 | @item |
| 11223 | An integer: Do this treatment on all body parts that have a length less | 11616 | An integer: Do this treatment on all body parts that have a length less |
| @@ -11322,7 +11715,7 @@ possible but those listed are probably sufficient for most people. | |||
| 11322 | @item gnus-treat-overstrike (t, integer) | 11715 | @item gnus-treat-overstrike (t, integer) |
| 11323 | @item gnus-treat-strip-cr (t, integer) | 11716 | @item gnus-treat-strip-cr (t, integer) |
| 11324 | @item gnus-treat-strip-headers-in-body (t, integer) | 11717 | @item gnus-treat-strip-headers-in-body (t, integer) |
| 11325 | @item gnus-treat-strip-leading-blank-lines (t, integer) | 11718 | @item gnus-treat-strip-leading-blank-lines (t, first, integer) |
| 11326 | @item gnus-treat-strip-multiple-blank-lines (t, integer) | 11719 | @item gnus-treat-strip-multiple-blank-lines (t, integer) |
| 11327 | @item gnus-treat-strip-pem (t, last, integer) | 11720 | @item gnus-treat-strip-pem (t, last, integer) |
| 11328 | @item gnus-treat-strip-trailing-blank-lines (t, last, integer) | 11721 | @item gnus-treat-strip-trailing-blank-lines (t, last, integer) |
| @@ -11403,6 +11796,7 @@ is controlled by @code{gnus-body-boundary-delimiter}. | |||
| 11403 | @item gnus-treat-play-sounds | 11796 | @item gnus-treat-play-sounds |
| 11404 | @vindex gnus-treat-translate | 11797 | @vindex gnus-treat-translate |
| 11405 | @item gnus-treat-translate | 11798 | @item gnus-treat-translate |
| 11799 | @item gnus-treat-ansi-sequences (t) | ||
| 11406 | @vindex gnus-treat-x-pgp-sig | 11800 | @vindex gnus-treat-x-pgp-sig |
| 11407 | @item gnus-treat-x-pgp-sig (head) | 11801 | @item gnus-treat-x-pgp-sig (head) |
| 11408 | 11802 | ||
| @@ -11615,7 +12009,8 @@ This is the delimiter mentioned above. By default, it is @samp{^L} | |||
| 11615 | @item gnus-use-idna | 12009 | @item gnus-use-idna |
| 11616 | This variable controls whether Gnus performs IDNA decoding of | 12010 | This variable controls whether Gnus performs IDNA decoding of |
| 11617 | internationalized domain names inside @samp{From}, @samp{To} and | 12011 | internationalized domain names inside @samp{From}, @samp{To} and |
| 11618 | @samp{Cc} headers. This requires | 12012 | @samp{Cc} headers. @xref{IDNA, ,IDNA,message, The Message Manual}, |
| 12013 | for how to compose such messages. This requires | ||
| 11619 | @uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this | 12014 | @uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this |
| 11620 | variable is only enabled if you have installed it. | 12015 | variable is only enabled if you have installed it. |
| 11621 | 12016 | ||
| @@ -11873,6 +12268,10 @@ you're in, you could say something like the following: | |||
| 11873 | 12268 | ||
| 11874 | Modify to suit your needs. | 12269 | Modify to suit your needs. |
| 11875 | 12270 | ||
| 12271 | @vindex gnus-message-highlight-citation | ||
| 12272 | If @code{gnus-message-highlight-citation} is t, different levels of | ||
| 12273 | citations are highlighted like in Gnus article buffers also in message | ||
| 12274 | mode buffers. | ||
| 11876 | 12275 | ||
| 11877 | @node Archived Messages | 12276 | @node Archived Messages |
| 11878 | @section Archived Messages | 12277 | @section Archived Messages |
| @@ -11891,7 +12290,8 @@ Group Commands}). | |||
| 11891 | 12290 | ||
| 11892 | @vindex gnus-message-archive-method | 12291 | @vindex gnus-message-archive-method |
| 11893 | @code{gnus-message-archive-method} says what virtual server Gnus is to | 12292 | @code{gnus-message-archive-method} says what virtual server Gnus is to |
| 11894 | use to store sent messages. The default is: | 12293 | use to store sent messages. The default is @code{"archive"}, and when |
| 12294 | actually being used it is expanded into: | ||
| 11895 | 12295 | ||
| 11896 | @lisp | 12296 | @lisp |
| 11897 | (nnfolder "archive" | 12297 | (nnfolder "archive" |
| @@ -11901,6 +12301,22 @@ use to store sent messages. The default is: | |||
| 11901 | (nnfolder-inhibit-expiry t)) | 12301 | (nnfolder-inhibit-expiry t)) |
| 11902 | @end lisp | 12302 | @end lisp |
| 11903 | 12303 | ||
| 12304 | @quotation | ||
| 12305 | @vindex gnus-update-message-archive-method | ||
| 12306 | Note: a server like this is saved in the @file{~/.newsrc.eld} file first | ||
| 12307 | so that it may be used as a real method of the server which is named | ||
| 12308 | @code{"archive"} (that is, for the case where | ||
| 12309 | @code{gnus-message-archive-method} is set to @code{"archive"}) ever | ||
| 12310 | since. If it once has been saved, it will never be updated by default | ||
| 12311 | even if you change the value of @code{gnus-message-archive-method} | ||
| 12312 | afterward. Therefore, the server @code{"archive"} doesn't necessarily | ||
| 12313 | mean the @code{nnfolder} server like this at all times. If you want the | ||
| 12314 | saved method to reflect always the value of | ||
| 12315 | @code{gnus-message-archive-method}, set the | ||
| 12316 | @code{gnus-update-message-archive-method} variable to a non-@code{nil} | ||
| 12317 | value. The default value of this variable is @code{nil}. | ||
| 12318 | @end quotation | ||
| 12319 | |||
| 11904 | You can, however, use any mail select method (@code{nnml}, | 12320 | You can, however, use any mail select method (@code{nnml}, |
| 11905 | @code{nnmbox}, etc.). @code{nnfolder} is a quite likable select method | 12321 | @code{nnmbox}, etc.). @code{nnfolder} is a quite likable select method |
| 11906 | for doing this sort of thing, though. If you don't like the default | 12322 | for doing this sort of thing, though. If you don't like the default |
| @@ -12104,6 +12520,9 @@ name can be one of: | |||
| 12104 | @item @code{body} | 12520 | @item @code{body} |
| 12105 | @end itemize | 12521 | @end itemize |
| 12106 | 12522 | ||
| 12523 | Note that the @code{signature-file} attribute honors the variable | ||
| 12524 | @code{message-signature-directory}. | ||
| 12525 | |||
| 12107 | The attribute name can also be a string or a symbol. In that case, | 12526 | The attribute name can also be a string or a symbol. In that case, |
| 12108 | this will be used as a header name, and the value will be inserted in | 12527 | this will be used as a header name, and the value will be inserted in |
| 12109 | the headers of the article; if the value is @code{nil}, the header | 12528 | the headers of the article; if the value is @code{nil}, the header |
| @@ -12535,6 +12954,15 @@ Request that the server regenerate all its data structures | |||
| 12535 | (@code{gnus-server-regenerate-server}). This can be useful if you have | 12954 | (@code{gnus-server-regenerate-server}). This can be useful if you have |
| 12536 | a mail back end that has gotten out of sync. | 12955 | a mail back end that has gotten out of sync. |
| 12537 | 12956 | ||
| 12957 | @item z | ||
| 12958 | @kindex z (Server) | ||
| 12959 | @findex gnus-server-compact-server | ||
| 12960 | |||
| 12961 | Compact all groups in the server under point | ||
| 12962 | (@code{gnus-server-compact-server}). Currently implemented only in | ||
| 12963 | nnml (@pxref{Mail Spool}). This removes gaps between article numbers, | ||
| 12964 | hence getting a correct total article count. | ||
| 12965 | |||
| 12538 | @end table | 12966 | @end table |
| 12539 | 12967 | ||
| 12540 | 12968 | ||
| @@ -12616,7 +13044,19 @@ configuration to the example above: | |||
| 12616 | (nntp-via-rlogin-command "ssh") | 13044 | (nntp-via-rlogin-command "ssh") |
| 12617 | @end lisp | 13045 | @end lisp |
| 12618 | 13046 | ||
| 12619 | See also @code{nntp-via-rlogin-command-switches}. | 13047 | See also @code{nntp-via-rlogin-command-switches}. Here's an example for |
| 13048 | an indirect connection: | ||
| 13049 | @lisp | ||
| 13050 | (setq gnus-select-method | ||
| 13051 | '(nntp "indirect" | ||
| 13052 | (nntp-address "news.server.example") | ||
| 13053 | (nntp-via-user-name "intermediate_user_name") | ||
| 13054 | (nntp-via-address "intermediate.host.example") | ||
| 13055 | (nntp-via-rlogin-command "ssh") | ||
| 13056 | (nntp-end-of-line "\n") | ||
| 13057 | (nntp-via-rlogin-command-switches ("-C" "-t" "-e" "none")) | ||
| 13058 | (nntp-open-connection-function nntp-open-via-rlogin-and-telnet))) | ||
| 13059 | @end lisp | ||
| 12620 | 13060 | ||
| 12621 | If you're behind a firewall, but have direct access to the outside world | 13061 | If you're behind a firewall, but have direct access to the outside world |
| 12622 | through a wrapper command like "runsocks", you could open a socksified | 13062 | through a wrapper command like "runsocks", you could open a socksified |
| @@ -13006,9 +13446,9 @@ that doesn't seem to work. | |||
| 13006 | It is possible to customize how the connection to the nntp server will | 13446 | It is possible to customize how the connection to the nntp server will |
| 13007 | be opened. If you specify an @code{nntp-open-connection-function} | 13447 | be opened. If you specify an @code{nntp-open-connection-function} |
| 13008 | parameter, Gnus will use that function to establish the connection. | 13448 | parameter, Gnus will use that function to establish the connection. |
| 13009 | Six pre-made functions are supplied. These functions can be grouped in | 13449 | Seven pre-made functions are supplied. These functions can be grouped |
| 13010 | two categories: direct connection functions (four pre-made), and | 13450 | in two categories: direct connection functions (four pre-made), and |
| 13011 | indirect ones (two pre-made). | 13451 | indirect ones (three pre-made). |
| 13012 | 13452 | ||
| 13013 | @item nntp-never-echoes-commands | 13453 | @item nntp-never-echoes-commands |
| 13014 | @vindex nntp-never-echoes-commands | 13454 | @vindex nntp-never-echoes-commands |
| @@ -13049,6 +13489,7 @@ INN versions 2.3.0 and later, for instance. | |||
| 13049 | * Direct Functions:: Connecting directly to the server. | 13489 | * Direct Functions:: Connecting directly to the server. |
| 13050 | * Indirect Functions:: Connecting indirectly to the server. | 13490 | * Indirect Functions:: Connecting indirectly to the server. |
| 13051 | * Common Variables:: Understood by several connection functions. | 13491 | * Common Variables:: Understood by several connection functions. |
| 13492 | * NNTP marks:: Storing marks for @acronym{NNTP} servers. | ||
| 13052 | @end menu | 13493 | @end menu |
| 13053 | 13494 | ||
| 13054 | 13495 | ||
| @@ -13158,6 +13599,41 @@ the telnet command requires a pseudo-tty allocation on an intermediate | |||
| 13158 | host. | 13599 | host. |
| 13159 | @end table | 13600 | @end table |
| 13160 | 13601 | ||
| 13602 | Note that you may want to change the value for @code{nntp-end-of-line} | ||
| 13603 | to @samp{\n} (@pxref{Common Variables}). | ||
| 13604 | |||
| 13605 | @item nntp-open-via-rlogin-and-netcat | ||
| 13606 | @findex nntp-open-via-rlogin-and-netcat | ||
| 13607 | Does essentially the same, but uses | ||
| 13608 | @uref{http://netcat.sourceforge.net/, netcat} instead of @samp{telnet} | ||
| 13609 | to connect to the real @acronym{NNTP} server from the intermediate host. | ||
| 13610 | |||
| 13611 | @code{nntp-open-via-rlogin-and-netcat}-specific variables: | ||
| 13612 | |||
| 13613 | @table @code | ||
| 13614 | @item nntp-via-netcat-command | ||
| 13615 | @vindex nntp-via-netcat-command | ||
| 13616 | Command used to connect to the real @acronym{NNTP} server from the | ||
| 13617 | intermediate host. The default is @samp{nc}. You can also use other | ||
| 13618 | programs like @uref{http://www.imasy.or.jp/~gotoh/ssh/connect.html, | ||
| 13619 | connect} instead. | ||
| 13620 | |||
| 13621 | @item nntp-via-netcat-switches | ||
| 13622 | @vindex nntp-via-netcat-switches | ||
| 13623 | List of strings to be used as the switches to the | ||
| 13624 | @code{nntp-via-telnet-command} command. The default is @code{nil}. | ||
| 13625 | |||
| 13626 | @item nntp-via-rlogin-command | ||
| 13627 | @vindex nntp-via-rlogin-command | ||
| 13628 | Command used to log in on the intermediate host. The default is | ||
| 13629 | @samp{rsh}, but @samp{ssh} is a popular alternative. | ||
| 13630 | |||
| 13631 | @item nntp-via-rlogin-command-switches | ||
| 13632 | @vindex nntp-via-rlogin-command-switches | ||
| 13633 | List of strings to be used as the switches to | ||
| 13634 | @code{nntp-via-rlogin-command}. The default is @code{nil}. | ||
| 13635 | @end table | ||
| 13636 | |||
| 13161 | @item nntp-open-via-telnet-and-telnet | 13637 | @item nntp-open-via-telnet-and-telnet |
| 13162 | @findex nntp-open-via-telnet-and-telnet | 13638 | @findex nntp-open-via-telnet-and-telnet |
| 13163 | Does essentially the same, but uses @samp{telnet} instead of | 13639 | Does essentially the same, but uses @samp{telnet} instead of |
| @@ -13193,6 +13669,8 @@ is @samp{bash\\|\$ *\r?$\\|> *\r?}. | |||
| 13193 | 13669 | ||
| 13194 | @end table | 13670 | @end table |
| 13195 | 13671 | ||
| 13672 | Note that you may want to change the value for @code{nntp-end-of-line} | ||
| 13673 | to @samp{\n} (@pxref{Common Variables}). | ||
| 13196 | @end table | 13674 | @end table |
| 13197 | 13675 | ||
| 13198 | 13676 | ||
| @@ -13247,7 +13725,7 @@ not work with named ports. | |||
| 13247 | @vindex nntp-end-of-line | 13725 | @vindex nntp-end-of-line |
| 13248 | String to use as end-of-line marker when talking to the @acronym{NNTP} | 13726 | String to use as end-of-line marker when talking to the @acronym{NNTP} |
| 13249 | server. This is @samp{\r\n} by default, but should be @samp{\n} when | 13727 | server. This is @samp{\r\n} by default, but should be @samp{\n} when |
| 13250 | using a non native connection function. | 13728 | using a non native telnet connection function. |
| 13251 | 13729 | ||
| 13252 | @item nntp-telnet-command | 13730 | @item nntp-telnet-command |
| 13253 | @vindex nntp-telnet-command | 13731 | @vindex nntp-telnet-command |
| @@ -13263,6 +13741,52 @@ is @samp{("-8")}. | |||
| 13263 | 13741 | ||
| 13264 | @end table | 13742 | @end table |
| 13265 | 13743 | ||
| 13744 | @node NNTP marks | ||
| 13745 | @subsubsection NNTP marks | ||
| 13746 | @cindex storing NNTP marks | ||
| 13747 | |||
| 13748 | Gnus stores marks (@pxref{Marking Articles}) for @acronym{NNTP} | ||
| 13749 | servers in marks files. A marks file records what marks you have set | ||
| 13750 | in a group and each file is specific to the corresponding server. | ||
| 13751 | Marks files are stored in @file{~/News/marks} | ||
| 13752 | (@code{nntp-marks-directory}) under a classic hierarchy resembling | ||
| 13753 | that of a news server, for example marks for the group | ||
| 13754 | @samp{gmane.discuss} on the news.gmane.org server will be stored in | ||
| 13755 | the file @file{~/News/marks/news.gmane.org/gmane/discuss/.marks}. | ||
| 13756 | |||
| 13757 | Marks files are useful because you can copy the @file{~/News/marks} | ||
| 13758 | directory (using rsync, scp or whatever) to another Gnus installation, | ||
| 13759 | and it will realize what articles you have read and marked. The data | ||
| 13760 | in @file{~/News/marks} has priority over the same data in | ||
| 13761 | @file{~/.newsrc.eld}. | ||
| 13762 | |||
| 13763 | Note that marks files are very much server-specific: Gnus remembers | ||
| 13764 | the article numbers so if you don't use the same servers on both | ||
| 13765 | installations things are most likely to break (most @acronym{NNTP} | ||
| 13766 | servers do not use the same article numbers as any other server). | ||
| 13767 | However, if you use servers A, B, C on one installation and servers A, | ||
| 13768 | D, E on the other, you can sync the marks files for A and then you'll | ||
| 13769 | get synchronization for that server between the two installations. | ||
| 13770 | |||
| 13771 | Using @acronym{NNTP} marks can possibly incur a performance penalty so | ||
| 13772 | if Gnus feels sluggish, try setting the @code{nntp-marks-is-evil} | ||
| 13773 | variable to @code{t}. Marks will then be stored in @file{~/.newsrc.eld}. | ||
| 13774 | |||
| 13775 | Related variables: | ||
| 13776 | |||
| 13777 | @table @code | ||
| 13778 | |||
| 13779 | @item nntp-marks-is-evil | ||
| 13780 | @vindex nntp-marks-is-evil | ||
| 13781 | If non-@code{nil}, this back end will ignore any marks files. The | ||
| 13782 | default is @code{nil}. | ||
| 13783 | |||
| 13784 | @item nntp-marks-directory | ||
| 13785 | @vindex nntp-marks-directory | ||
| 13786 | The directory where marks for nntp groups will be stored. | ||
| 13787 | |||
| 13788 | @end table | ||
| 13789 | |||
| 13266 | 13790 | ||
| 13267 | @node News Spool | 13791 | @node News Spool |
| 13268 | @subsection News Spool | 13792 | @subsection News Spool |
| @@ -13926,7 +14450,9 @@ mapped into the @code{imap-shell-program} variable. This should be a | |||
| 13926 | ssh %s imapd | 14450 | ssh %s imapd |
| 13927 | @end example | 14451 | @end example |
| 13928 | 14452 | ||
| 13929 | The valid format specifier characters are: | 14453 | Make sure nothing is interfering with the output of the program, e.g., |
| 14454 | don't forget to redirect the error output to the void. The valid format | ||
| 14455 | specifier characters are: | ||
| 13930 | 14456 | ||
| 13931 | @table @samp | 14457 | @table @samp |
| 13932 | @item s | 14458 | @item s |
| @@ -14342,7 +14868,7 @@ body of the messages: | |||
| 14342 | The buffer is narrowed to the message in question when @var{function} | 14868 | The buffer is narrowed to the message in question when @var{function} |
| 14343 | is run. That's why @code{(widen)} needs to be called after | 14869 | is run. That's why @code{(widen)} needs to be called after |
| 14344 | @code{save-excursion} and @code{save-restriction} in the example | 14870 | @code{save-excursion} and @code{save-restriction} in the example |
| 14345 | above. Also note that with the nnimap backend, message bodies will | 14871 | above. Also note that with the nnimap back end, message bodies will |
| 14346 | not be downloaded by default. You need to set | 14872 | not be downloaded by default. You need to set |
| 14347 | @code{nnimap-split-download-body} to @code{t} to do that | 14873 | @code{nnimap-split-download-body} to @code{t} to do that |
| 14348 | (@pxref{Splitting in IMAP}). | 14874 | (@pxref{Splitting in IMAP}). |
| @@ -14956,12 +15482,16 @@ This can also be done non-destructively with | |||
| 14956 | @findex nnmail-remove-tabs | 15482 | @findex nnmail-remove-tabs |
| 14957 | Translate all @samp{TAB} characters into @samp{SPACE} characters. | 15483 | Translate all @samp{TAB} characters into @samp{SPACE} characters. |
| 14958 | 15484 | ||
| 14959 | @item nnmail-fix-eudora-headers | 15485 | @item nnmail-ignore-broken-references |
| 14960 | @findex nnmail-fix-eudora-headers | 15486 | @findex nnmail-ignore-broken-references |
| 15487 | @c @findex nnmail-fix-eudora-headers | ||
| 14961 | @cindex Eudora | 15488 | @cindex Eudora |
| 14962 | Eudora produces broken @code{References} headers, but OK | 15489 | @cindex Pegasus |
| 14963 | @code{In-Reply-To} headers. This function will get rid of the | 15490 | Some mail user agents (e.g. Eudora and Pegasus) produce broken |
| 14964 | @code{References} headers. | 15491 | @code{References} headers, but correct @code{In-Reply-To} headers. This |
| 15492 | function will get rid of the @code{References} header if the headers | ||
| 15493 | contain a line matching the regular expression | ||
| 15494 | @code{nnmail-broken-references-mailers}. | ||
| 14965 | 15495 | ||
| 14966 | @end table | 15496 | @end table |
| 14967 | 15497 | ||
| @@ -15186,7 +15716,7 @@ When the marks file is used (which it is by default), @code{nnml} | |||
| 15186 | servers have the property that you may backup them using @code{tar} or | 15716 | servers have the property that you may backup them using @code{tar} or |
| 15187 | similar, and later be able to restore them into Gnus (by adding the | 15717 | similar, and later be able to restore them into Gnus (by adding the |
| 15188 | proper @code{nnml} server) and have all your marks be preserved. Marks | 15718 | proper @code{nnml} server) and have all your marks be preserved. Marks |
| 15189 | for a group is usually stored in the @code{.marks} file (but see | 15719 | for a group are usually stored in the @code{.marks} file (but see |
| 15190 | @code{nnml-marks-file-name}) within each @code{nnml} group's directory. | 15720 | @code{nnml-marks-file-name}) within each @code{nnml} group's directory. |
| 15191 | Individual @code{nnml} groups are also possible to backup, use @kbd{G m} | 15721 | Individual @code{nnml} groups are also possible to backup, use @kbd{G m} |
| 15192 | to restore the group (after restoring the backup into the nnml | 15722 | to restore the group (after restoring the backup into the nnml |
| @@ -15245,7 +15775,18 @@ The name of the @dfn{marks} files. The default is @file{.marks}. | |||
| 15245 | @item nnml-use-compressed-files | 15775 | @item nnml-use-compressed-files |
| 15246 | @vindex nnml-use-compressed-files | 15776 | @vindex nnml-use-compressed-files |
| 15247 | If non-@code{nil}, @code{nnml} will allow using compressed message | 15777 | If non-@code{nil}, @code{nnml} will allow using compressed message |
| 15248 | files. | 15778 | files. This requires @code{auto-compression-mode} to be enabled |
| 15779 | (@pxref{Compressed Files, ,Compressed Files, emacs, The Emacs Manual}). | ||
| 15780 | If the value of @code{nnml-use-compressed-files} is a string, it is used | ||
| 15781 | as the file extension specifying the compression program. You can set it | ||
| 15782 | to @samp{.bz2} if your Emacs supports it. A value of @code{t} is | ||
| 15783 | equivalent to @samp{.gz}. | ||
| 15784 | |||
| 15785 | @item nnml-compressed-files-size-threshold | ||
| 15786 | @vindex nnml-compressed-files-size-threshold | ||
| 15787 | Default size threshold for compressed message files. Message files with | ||
| 15788 | bodies larger than that many characters will be automatically compressed | ||
| 15789 | if @code{nnml-use-compressed-files} is non-@code{nil}. | ||
| 15249 | 15790 | ||
| 15250 | @end table | 15791 | @end table |
| 15251 | 15792 | ||
| @@ -15958,7 +16499,7 @@ group as read. | |||
| 15958 | 16499 | ||
| 15959 | If the search engine changes its output substantially, @code{nnweb} | 16500 | If the search engine changes its output substantially, @code{nnweb} |
| 15960 | won't be able to parse it and will fail. One could hardly fault the Web | 16501 | won't be able to parse it and will fail. One could hardly fault the Web |
| 15961 | providers if they were to do this---their @emph{raison d'être} is to | 16502 | providers if they were to do this---their @emph{raison d'@^etre} is to |
| 15962 | make money off of advertisements, not to provide services to the | 16503 | make money off of advertisements, not to provide services to the |
| 15963 | community. Since @code{nnweb} washes the ads off all the articles, one | 16504 | community. Since @code{nnweb} washes the ads off all the articles, one |
| 15964 | might think that the providers might be somewhat miffed. We'll see. | 16505 | might think that the providers might be somewhat miffed. We'll see. |
| @@ -16238,6 +16779,15 @@ data files. The default is the value of | |||
| 16238 | @code{mm-universal-coding-system} (which defaults to @code{emacs-mule} | 16779 | @code{mm-universal-coding-system} (which defaults to @code{emacs-mule} |
| 16239 | in Emacs or @code{escape-quoted} in XEmacs). | 16780 | in Emacs or @code{escape-quoted} in XEmacs). |
| 16240 | 16781 | ||
| 16782 | @item nnrss-ignore-article-fields | ||
| 16783 | @vindex nnrss-ignore-article-fields | ||
| 16784 | Some feeds update constantly article fields during their publications, | ||
| 16785 | e.g. to indicate the number of comments. However, if there is | ||
| 16786 | a difference between the local article and the distant one, the latter | ||
| 16787 | is considered to be new. To avoid this and discard some fields, set this | ||
| 16788 | variable to the list of fields to be ignored. The default is | ||
| 16789 | @code{'(slash:comments)}. | ||
| 16790 | |||
| 16241 | @item nnrss-use-local | 16791 | @item nnrss-use-local |
| 16242 | @vindex nnrss-use-local | 16792 | @vindex nnrss-use-local |
| 16243 | @findex nnrss-generate-download-script | 16793 | @findex nnrss-generate-download-script |
| @@ -16275,7 +16825,7 @@ summary buffer. | |||
| 16275 | @lisp | 16825 | @lisp |
| 16276 | (require 'browse-url) | 16826 | (require 'browse-url) |
| 16277 | 16827 | ||
| 16278 | (defun browse-nnrss-url( arg ) | 16828 | (defun browse-nnrss-url (arg) |
| 16279 | (interactive "p") | 16829 | (interactive "p") |
| 16280 | (let ((url (assq nnrss-url-field | 16830 | (let ((url (assq nnrss-url-field |
| 16281 | (mail-header-extra | 16831 | (mail-header-extra |
| @@ -16529,8 +17079,10 @@ to OpenSSL/SSLeay. | |||
| 16529 | 17079 | ||
| 16530 | @vindex imap-shell-program | 17080 | @vindex imap-shell-program |
| 16531 | @vindex imap-shell-host | 17081 | @vindex imap-shell-host |
| 16532 | For @acronym{IMAP} connections using the @code{shell} stream, the variable | 17082 | For @acronym{IMAP} connections using the @code{shell} stream, the |
| 16533 | @code{imap-shell-program} specify what program to call. | 17083 | variable @code{imap-shell-program} specify what program to call. Make |
| 17084 | sure nothing is interfering with the output of the program, e.g., don't | ||
| 17085 | forget to redirect the error output to the void. | ||
| 16534 | 17086 | ||
| 16535 | @item nnimap-authenticator | 17087 | @item nnimap-authenticator |
| 16536 | @vindex nnimap-authenticator | 17088 | @vindex nnimap-authenticator |
| @@ -16709,6 +17261,30 @@ messages, you start cursing Gnus for being so slow. On the other hand, | |||
| 16709 | if you get a lot of email within a week, setting this variable will | 17261 | if you get a lot of email within a week, setting this variable will |
| 16710 | cause a lot of network traffic between Gnus and the IMAP server. | 17262 | cause a lot of network traffic between Gnus and the IMAP server. |
| 16711 | 17263 | ||
| 17264 | @item nnimap-logout-timeout | ||
| 17265 | @vindex nnimap-logout-timeout | ||
| 17266 | |||
| 17267 | There is a case where a connection to a @acronym{IMAP} server is unable | ||
| 17268 | to close, when connecting to the server via a certain kind of network, | ||
| 17269 | e.g. @acronym{VPN}. In that case, it will be observed that a connection | ||
| 17270 | between Emacs and the local network looks alive even if the server has | ||
| 17271 | closed a connection for some reason (typically, a timeout). | ||
| 17272 | Consequently, Emacs continues waiting for a response from the server for | ||
| 17273 | the @code{LOGOUT} command that Emacs sent, or hangs in other words. If | ||
| 17274 | you are in such a network, setting this variable to a number of seconds | ||
| 17275 | will be helpful. If it is set, a hung connection will be closed | ||
| 17276 | forcibly, after this number of seconds from the time Emacs sends the | ||
| 17277 | @code{LOGOUT} command. It should not be too small value but too large | ||
| 17278 | value will be inconvenient too. Perhaps the value 1.0 will be a good | ||
| 17279 | candidate but it might be worth trying some other values. | ||
| 17280 | |||
| 17281 | Example server specification: | ||
| 17282 | |||
| 17283 | @lisp | ||
| 17284 | (nnimap "mail.server.com" | ||
| 17285 | (nnimap-logout-timeout 1.0)) | ||
| 17286 | @end lisp | ||
| 17287 | |||
| 16712 | @end table | 17288 | @end table |
| 16713 | 17289 | ||
| 16714 | @menu | 17290 | @menu |
| @@ -18350,7 +18926,8 @@ functionality up to the newsreader makes sense if you're the only person | |||
| 18350 | reading news on a machine. | 18926 | reading news on a machine. |
| 18351 | 18927 | ||
| 18352 | Setting up Gnus as an ``offline'' newsreader is quite simple. In | 18928 | Setting up Gnus as an ``offline'' newsreader is quite simple. In |
| 18353 | fact, you don't even have to configure anything. | 18929 | fact, you don't have to configure anything as the agent is now enabled |
| 18930 | by default (@pxref{Agent Variables, gnus-agent}). | ||
| 18354 | 18931 | ||
| 18355 | Of course, to use it as such, you have to learn a few new commands. | 18932 | Of course, to use it as such, you have to learn a few new commands. |
| 18356 | 18933 | ||
| @@ -18362,6 +18939,7 @@ Of course, to use it as such, you have to learn a few new commands. | |||
| 18362 | * Agent as Cache:: The Agent is a big cache too. | 18939 | * Agent as Cache:: The Agent is a big cache too. |
| 18363 | * Agent Expiry:: How to make old articles go away. | 18940 | * Agent Expiry:: How to make old articles go away. |
| 18364 | * Agent Regeneration:: How to recover from lost connections and other accidents. | 18941 | * Agent Regeneration:: How to recover from lost connections and other accidents. |
| 18942 | * Agent and flags:: How the Agent maintains flags. | ||
| 18365 | * Agent and IMAP:: How to use the Agent with @acronym{IMAP}. | 18943 | * Agent and IMAP:: How to use the Agent with @acronym{IMAP}. |
| 18366 | * Outgoing Messages:: What happens when you post/mail something? | 18944 | * Outgoing Messages:: What happens when you post/mail something? |
| 18367 | * Agent Variables:: Customizing is fun. | 18945 | * Agent Variables:: Customizing is fun. |
| @@ -18526,55 +19104,46 @@ listed below. | |||
| 18526 | 19104 | ||
| 18527 | @cindex Agent Parameters | 19105 | @cindex Agent Parameters |
| 18528 | @table @code | 19106 | @table @code |
| 18529 | @item gnus-agent-cat-name | 19107 | @item agent-groups |
| 18530 | The name of the category. | ||
| 18531 | |||
| 18532 | @item gnus-agent-cat-groups | ||
| 18533 | The list of groups that are in this category. | 19108 | The list of groups that are in this category. |
| 18534 | 19109 | ||
| 18535 | @item gnus-agent-cat-predicate | 19110 | @item agent-predicate |
| 18536 | A predicate which (generally) gives a rough outline of which articles | 19111 | A predicate which (generally) gives a rough outline of which articles |
| 18537 | are eligible for downloading; and | 19112 | are eligible for downloading; and |
| 18538 | 19113 | ||
| 18539 | @item gnus-agent-cat-score-file | 19114 | @item agent-score |
| 18540 | a score rule which (generally) gives you a finer granularity when | 19115 | a score rule which (generally) gives you a finer granularity when |
| 18541 | deciding what articles to download. (Note that this @dfn{download | 19116 | deciding what articles to download. (Note that this @dfn{download |
| 18542 | score} is not necessarily related to normal scores.) | 19117 | score} is not necessarily related to normal scores.) |
| 18543 | 19118 | ||
| 18544 | @item gnus-agent-cat-enable-expiration | 19119 | @item agent-enable-expiration |
| 18545 | a boolean indicating whether the agent should expire old articles in | 19120 | a boolean indicating whether the agent should expire old articles in |
| 18546 | this group. Most groups should be expired to conserve disk space. In | 19121 | this group. Most groups should be expired to conserve disk space. In |
| 18547 | fact, its probably safe to say that the gnus.* hierarchy contains the | 19122 | fact, its probably safe to say that the gnus.* hierarchy contains the |
| 18548 | only groups that should not be expired. | 19123 | only groups that should not be expired. |
| 18549 | 19124 | ||
| 18550 | @item gnus-agent-cat-days-until-old | 19125 | @item agent-days-until-old |
| 18551 | an integer indicating the number of days that the agent should wait | 19126 | an integer indicating the number of days that the agent should wait |
| 18552 | before deciding that a read article is safe to expire. | 19127 | before deciding that a read article is safe to expire. |
| 18553 | 19128 | ||
| 18554 | @item gnus-agent-cat-low-score | 19129 | @item agent-low-score |
| 18555 | an integer that overrides the value of @code{gnus-agent-low-score}. | 19130 | an integer that overrides the value of @code{gnus-agent-low-score}. |
| 18556 | 19131 | ||
| 18557 | @item gnus-agent-cat-high-score | 19132 | @item agent-high-score |
| 18558 | an integer that overrides the value of @code{gnus-agent-high-score}. | 19133 | an integer that overrides the value of @code{gnus-agent-high-score}. |
| 18559 | 19134 | ||
| 18560 | @item gnus-agent-cat-length-when-short | 19135 | @item agent-short-article |
| 18561 | an integer that overrides the value of | 19136 | an integer that overrides the value of |
| 18562 | @code{gnus-agent-short-article}. | 19137 | @code{gnus-agent-short-article}. |
| 18563 | 19138 | ||
| 18564 | @item gnus-agent-cat-length-when-long | 19139 | @item agent-long-article |
| 18565 | an integer that overrides the value of @code{gnus-agent-long-article}. | 19140 | an integer that overrides the value of @code{gnus-agent-long-article}. |
| 18566 | 19141 | ||
| 18567 | @c @item gnus-agent-cat-disable-undownloaded-faces | 19142 | @item agent-enable-undownloaded-faces |
| 18568 | @c a symbol indicating whether the summary buffer should @emph{not} display | ||
| 18569 | @c undownloaded articles using the gnus-summary-*-undownloaded-face | ||
| 18570 | @c faces. The symbol nil will enable the use of undownloaded faces while | ||
| 18571 | @c all other symbols disable them. | ||
| 18572 | |||
| 18573 | @item gnus-agent-cat-enable-undownloaded-faces | ||
| 18574 | a symbol indicating whether the summary buffer should display | 19143 | a symbol indicating whether the summary buffer should display |
| 18575 | undownloaded articles using the gnus-summary-*-undownloaded-face | 19144 | undownloaded articles using the @code{gnus-summary-*-undownloaded-face} |
| 18576 | faces. The symbol nil will disable the use of undownloaded faces while | 19145 | faces. Any symbol other than @code{nil} will enable the use of |
| 18577 | all other symbols enable them. | 19146 | undownloaded faces. |
| 18578 | @end table | 19147 | @end table |
| 18579 | 19148 | ||
| 18580 | The name of a category can not be changed once the category has been | 19149 | The name of a category can not be changed once the category has been |
| @@ -19079,9 +19648,9 @@ Download all eligible (@pxref{Agent Categories}) articles in this group. | |||
| 19079 | 19648 | ||
| 19080 | @item J s | 19649 | @item J s |
| 19081 | @kindex J s (Agent Summary) | 19650 | @kindex J s (Agent Summary) |
| 19082 | @findex gnus-agent-fetch-series | 19651 | @findex gnus-agent-summary-fetch-series |
| 19083 | Download all processable articles in this group. | 19652 | Download all processable articles in this group. |
| 19084 | (@code{gnus-agent-fetch-series}). | 19653 | (@code{gnus-agent-summary-fetch-series}). |
| 19085 | 19654 | ||
| 19086 | @item J u | 19655 | @item J u |
| 19087 | @kindex J u (Agent Summary) | 19656 | @kindex J u (Agent Summary) |
| @@ -19157,21 +19726,28 @@ If you use the Agent as a cache (to avoid downloading the same article | |||
| 19157 | each time you visit it or to minimize your connection time), the | 19726 | each time you visit it or to minimize your connection time), the |
| 19158 | undownloaded face will probably seem like a good idea. The reason | 19727 | undownloaded face will probably seem like a good idea. The reason |
| 19159 | being that you do all of our work (marking, reading, deleting) with | 19728 | being that you do all of our work (marking, reading, deleting) with |
| 19160 | downloaded articles so the normal faces always appear. | 19729 | downloaded articles so the normal faces always appear. For those |
| 19161 | 19730 | users using the agent to improve online performance by caching the NOV | |
| 19162 | For occasional Agent users, the undownloaded faces may appear to be an | 19731 | database (most users since 5.10.2), the undownloaded faces may appear |
| 19163 | absolutely horrible idea. The issue being that, since most of their | 19732 | to be an absolutely horrible idea. The issue being that, since none |
| 19164 | articles have not been fetched into the Agent, most of the normal | 19733 | of their articles have been fetched into the Agent, all of the |
| 19165 | faces will be obscured by the undownloaded faces. If this is your | 19734 | normal faces will be obscured by the undownloaded faces. |
| 19166 | situation, you have two choices available. First, you can completely | 19735 | |
| 19167 | disable the undownload faces by customizing | 19736 | If you would like to use the undownloaded faces, you must enable the |
| 19168 | @code{gnus-summary-highlight} to delete the three cons-cells that | 19737 | undownloaded faces by setting the @code{agent-enable-undownloaded-faces} |
| 19169 | refer to the @code{gnus-summary-*-undownloaded-face} faces. Second, | 19738 | group parameter to @code{t}. This parameter, like all other agent |
| 19170 | if you prefer to take a more fine-grained approach, you may set the | 19739 | parameters, may be set on an Agent Category (@pxref{Agent Categories}), |
| 19171 | @code{agent-disable-undownloaded-faces} group parameter to @code{t}. | 19740 | a Group Topic (@pxref{Topic Parameters}), or an individual group |
| 19172 | This parameter, like all other agent parameters, may be set on an | 19741 | (@pxref{Group Parameters}). |
| 19173 | Agent Category (@pxref{Agent Categories}), a Group Topic (@pxref{Topic | 19742 | |
| 19174 | Parameters}), or an individual group (@pxref{Group Parameters}). | 19743 | The one problem common to all users using the agent is how quickly it |
| 19744 | can consume disk space. If you using the agent on many groups, it is | ||
| 19745 | even more difficult to effectively recover disk space. One solution | ||
| 19746 | is the @samp{%F} format available in @code{gnus-group-line-format}. | ||
| 19747 | This format will display the actual disk space used by articles | ||
| 19748 | fetched into both the agent and cache. By knowing which groups use | ||
| 19749 | the most space, users know where to focus their efforts when ``agent | ||
| 19750 | expiring'' articles. | ||
| 19175 | 19751 | ||
| 19176 | @node Agent as Cache | 19752 | @node Agent as Cache |
| 19177 | @subsection Agent as Cache | 19753 | @subsection Agent as Cache |
| @@ -19267,23 +19843,19 @@ then updates the internal data structures that document which articles | |||
| 19267 | are stored locally. An optional argument will mark articles in the | 19843 | are stored locally. An optional argument will mark articles in the |
| 19268 | agent as unread. | 19844 | agent as unread. |
| 19269 | 19845 | ||
| 19270 | @node Agent and IMAP | 19846 | @node Agent and flags |
| 19271 | @subsection Agent and IMAP | 19847 | @subsection Agent and flags |
| 19272 | |||
| 19273 | The Agent works with any Gnus back end, including nnimap. However, | ||
| 19274 | since there are some conceptual differences between @acronym{NNTP} and | ||
| 19275 | @acronym{IMAP}, this section (should) provide you with some information to | ||
| 19276 | make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client. | ||
| 19277 | 19848 | ||
| 19278 | The first thing to keep in mind is that all flags (read, ticked, etc) | 19849 | The Agent works with any Gnus back end including those, such as |
| 19279 | are kept on the @acronym{IMAP} server, rather than in @file{.newsrc} as is the | 19850 | nnimap, that store flags (read, ticked, etc) on the server. Sadly, |
| 19280 | case for nntp. Thus Gnus need to remember flag changes when | 19851 | the Agent does not actually know which backends keep their flags in |
| 19281 | disconnected, and synchronize these flags when you plug back in. | 19852 | the backend server rather than in @file{.newsrc}. This means that the |
| 19853 | Agent, while unplugged or disconnected, will always record all changes | ||
| 19854 | to the flags in its own files. | ||
| 19282 | 19855 | ||
| 19283 | Gnus keeps track of flag changes when reading nnimap groups under the | 19856 | When you plug back in, Gnus will then check to see if you have any |
| 19284 | Agent. When you plug back in, Gnus will check if you have any changed | 19857 | changed any flags and ask if you wish to synchronize these with the |
| 19285 | any flags and ask if you wish to synchronize these with the server. | 19858 | server. This behavior is customizable by @code{gnus-agent-synchronize-flags}. |
| 19286 | The behavior is customizable by @code{gnus-agent-synchronize-flags}. | ||
| 19287 | 19859 | ||
| 19288 | @vindex gnus-agent-synchronize-flags | 19860 | @vindex gnus-agent-synchronize-flags |
| 19289 | If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will | 19861 | If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will |
| @@ -19297,6 +19869,23 @@ re-connect, you can do it manually with the | |||
| 19297 | @code{gnus-agent-synchronize-flags} command that is bound to @kbd{J Y} | 19869 | @code{gnus-agent-synchronize-flags} command that is bound to @kbd{J Y} |
| 19298 | in the group buffer. | 19870 | in the group buffer. |
| 19299 | 19871 | ||
| 19872 | Technical note: the synchronization algorithm does not work by ``pushing'' | ||
| 19873 | all local flags to the server, but rather by incrementally updated the | ||
| 19874 | server view of flags by changing only those flags that were changed by | ||
| 19875 | the user. Thus, if you set one flag on an article, quit the group then | ||
| 19876 | re-select the group and remove the flag; the flag will be set and | ||
| 19877 | removed from the server when you ``synchronize''. The queued flag | ||
| 19878 | operations can be found in the per-server @code{flags} file in the Agent | ||
| 19879 | directory. It's emptied when you synchronize flags. | ||
| 19880 | |||
| 19881 | @node Agent and IMAP | ||
| 19882 | @subsection Agent and IMAP | ||
| 19883 | |||
| 19884 | The Agent works with any Gnus back end, including nnimap. However, | ||
| 19885 | since there are some conceptual differences between @acronym{NNTP} and | ||
| 19886 | @acronym{IMAP}, this section (should) provide you with some information to | ||
| 19887 | make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client. | ||
| 19888 | |||
| 19300 | Some things are currently not implemented in the Agent that you'd might | 19889 | Some things are currently not implemented in the Agent that you'd might |
| 19301 | expect from a disconnected @acronym{IMAP} client, including: | 19890 | expect from a disconnected @acronym{IMAP} client, including: |
| 19302 | 19891 | ||
| @@ -19310,34 +19899,43 @@ Creating/deleting nnimap groups when unplugged. | |||
| 19310 | 19899 | ||
| 19311 | @end itemize | 19900 | @end itemize |
| 19312 | 19901 | ||
| 19313 | Technical note: the synchronization algorithm does not work by ``pushing'' | ||
| 19314 | all local flags to the server, but rather incrementally update the | ||
| 19315 | server view of flags by changing only those flags that were changed by | ||
| 19316 | the user. Thus, if you set one flag on an article, quit the group and | ||
| 19317 | re-select the group and remove the flag; the flag will be set and | ||
| 19318 | removed from the server when you ``synchronize''. The queued flag | ||
| 19319 | operations can be found in the per-server @code{flags} file in the Agent | ||
| 19320 | directory. It's emptied when you synchronize flags. | ||
| 19321 | |||
| 19322 | |||
| 19323 | @node Outgoing Messages | 19902 | @node Outgoing Messages |
| 19324 | @subsection Outgoing Messages | 19903 | @subsection Outgoing Messages |
| 19325 | 19904 | ||
| 19326 | When Gnus is unplugged, all outgoing messages (both mail and news) are | 19905 | By default, when Gnus is unplugged, all outgoing messages (both mail |
| 19327 | stored in the draft group ``queue'' (@pxref{Drafts}). You can view | 19906 | and news) are stored in the draft group ``queue'' (@pxref{Drafts}). |
| 19328 | them there after posting, and edit them at will. | 19907 | You can view them there after posting, and edit them at will. |
| 19329 | 19908 | ||
| 19330 | When Gnus is plugged again, you can send the messages either from the | 19909 | You can control the circumstances under which outgoing mail is queued |
| 19331 | draft group with the special commands available there, or you can use | 19910 | (see @code{gnus-agent-queue-mail}, @pxref{Agent Variables}). Outgoing |
| 19332 | the @kbd{J S} command in the group buffer to send all the sendable | 19911 | news is always queued when Gnus is unplugged, and never otherwise. |
| 19333 | messages in the draft group. | ||
| 19334 | 19912 | ||
| 19913 | You can send the messages either from the draft group with the special | ||
| 19914 | commands available there, or you can use the @kbd{J S} command in the | ||
| 19915 | group buffer to send all the sendable messages in the draft group. | ||
| 19916 | Posting news will only work when Gnus is plugged, but you can send | ||
| 19917 | mail at any time. | ||
| 19335 | 19918 | ||
| 19919 | If sending mail while unplugged does not work for you and you worry | ||
| 19920 | about hitting @kbd{J S} by accident when unplugged, you can have Gnus | ||
| 19921 | ask you to confirm your action (see | ||
| 19922 | @code{gnus-agent-prompt-send-queue}, @pxref{Agent Variables}). | ||
| 19336 | 19923 | ||
| 19337 | @node Agent Variables | 19924 | @node Agent Variables |
| 19338 | @subsection Agent Variables | 19925 | @subsection Agent Variables |
| 19339 | 19926 | ||
| 19340 | @table @code | 19927 | @table @code |
| 19928 | @item gnus-agent | ||
| 19929 | @vindex gnus-agent | ||
| 19930 | Is the agent enabled? The default is @code{t}. When first enabled, | ||
| 19931 | the agent will use @code{gnus-agent-auto-agentize-methods} to | ||
| 19932 | automatically mark some back ends as agentized. You may change which | ||
| 19933 | back ends are agentized using the agent commands in the server buffer. | ||
| 19934 | |||
| 19935 | To enter the server buffer, use the @kbd{^} | ||
| 19936 | (@code{gnus-group-enter-server-mode}) command in the group buffer. | ||
| 19937 | |||
| 19938 | |||
| 19341 | @item gnus-agent-directory | 19939 | @item gnus-agent-directory |
| 19342 | @vindex gnus-agent-directory | 19940 | @vindex gnus-agent-directory |
| 19343 | Where the Gnus Agent will store its files. The default is | 19941 | Where the Gnus Agent will store its files. The default is |
| @@ -19384,6 +19982,14 @@ mark articles as unread after downloading. This is usually a safe | |||
| 19384 | thing to do as the newly downloaded article has obviously not been | 19982 | thing to do as the newly downloaded article has obviously not been |
| 19385 | read. The default is @code{t}. | 19983 | read. The default is @code{t}. |
| 19386 | 19984 | ||
| 19985 | @item gnus-agent-synchronize-flags | ||
| 19986 | @vindex gnus-agent-synchronize-flags | ||
| 19987 | If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will | ||
| 19988 | never automatically synchronize flags. If it is @code{ask}, which is | ||
| 19989 | the default, the Agent will check if you made any changes and if so | ||
| 19990 | ask if you wish to synchronize these when you re-connect. If it has | ||
| 19991 | any other value, all flags will be synchronized automatically. | ||
| 19992 | |||
| 19387 | @item gnus-agent-consider-all-articles | 19993 | @item gnus-agent-consider-all-articles |
| 19388 | @vindex gnus-agent-consider-all-articles | 19994 | @vindex gnus-agent-consider-all-articles |
| 19389 | If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the | 19995 | If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the |
| @@ -19432,13 +20038,26 @@ have not been fetched), @code{always-undownloaded} (maneuvering always | |||
| 19432 | ignores articles that have not been fetched), @code{unfetched} | 20038 | ignores articles that have not been fetched), @code{unfetched} |
| 19433 | (maneuvering ignores articles whose headers have not been fetched). | 20039 | (maneuvering ignores articles whose headers have not been fetched). |
| 19434 | 20040 | ||
| 20041 | @item gnus-agent-queue-mail | ||
| 20042 | @vindex gnus-agent-queue-mail | ||
| 20043 | When @code{gnus-agent-queue-mail} is @code{always}, Gnus will always | ||
| 20044 | queue mail rather than sending it straight away. When @code{t}, Gnus | ||
| 20045 | will queue mail when unplugged only. When @code{nil}, never queue | ||
| 20046 | mail. The default is @code{t}. | ||
| 20047 | |||
| 20048 | @item gnus-agent-prompt-send-queue | ||
| 20049 | @vindex gnus-agent-prompt-send-queue | ||
| 20050 | When @code{gnus-agent-prompt-send-queue} is non-@code{nil} Gnus will | ||
| 20051 | prompt you to confirm that you really wish to proceed if you hit | ||
| 20052 | @kbd{J S} while unplugged. The default is @code{nil}. | ||
| 20053 | |||
| 19435 | @item gnus-agent-auto-agentize-methods | 20054 | @item gnus-agent-auto-agentize-methods |
| 19436 | @vindex gnus-agent-auto-agentize-methods | 20055 | @vindex gnus-agent-auto-agentize-methods |
| 19437 | If you have never used the Agent before (or more technically, if | 20056 | If you have never used the Agent before (or more technically, if |
| 19438 | @file{~/News/agent/lib/servers} does not exist), Gnus will | 20057 | @file{~/News/agent/lib/servers} does not exist), Gnus will |
| 19439 | automatically agentize a few servers for you. This variable control | 20058 | automatically agentize a few servers for you. This variable control |
| 19440 | which backends should be auto-agentized. It is typically only useful | 20059 | which back ends should be auto-agentized. It is typically only useful |
| 19441 | to agentize remote backends. The auto-agentizing has the same effect | 20060 | to agentize remote back ends. The auto-agentizing has the same effect |
| 19442 | as running @kbd{J a} on the servers (@pxref{Server Agent Commands}). | 20061 | as running @kbd{J a} on the servers (@pxref{Server Agent Commands}). |
| 19443 | If the file exist, you must manage the servers manually by adding or | 20062 | If the file exist, you must manage the servers manually by adding or |
| 19444 | removing them, this variable is only applicable the first time you | 20063 | removing them, this variable is only applicable the first time you |
| @@ -19578,7 +20197,6 @@ silently to help keep the sizes of the score files down. | |||
| 19578 | * Global Score Files:: Earth-spanning, ear-splitting score files. | 20197 | * Global Score Files:: Earth-spanning, ear-splitting score files. |
| 19579 | * Kill Files:: They are still here, but they can be ignored. | 20198 | * Kill Files:: They are still here, but they can be ignored. |
| 19580 | * Converting Kill Files:: Translating kill files to score files. | 20199 | * Converting Kill Files:: Translating kill files to score files. |
| 19581 | * GroupLens:: Getting predictions on what you like to read. | ||
| 19582 | * Advanced Scoring:: Using logical expressions to build score rules. | 20200 | * Advanced Scoring:: Using logical expressions to build score rules. |
| 19583 | * Score Decays:: It can be useful to let scores wither away. | 20201 | * Score Decays:: It can be useful to let scores wither away. |
| 19584 | @end menu | 20202 | @end menu |
| @@ -19849,6 +20467,12 @@ There aren't many of these as yet, I'm afraid. | |||
| 19849 | 20467 | ||
| 19850 | @table @kbd | 20468 | @table @kbd |
| 19851 | 20469 | ||
| 20470 | @item W e | ||
| 20471 | @kindex W e (Group) | ||
| 20472 | @findex gnus-score-edit-all-score | ||
| 20473 | Edit the apply-to-all-groups all.SCORE file. You will be popped into | ||
| 20474 | a @code{gnus-score-mode} buffer (@pxref{Score File Editing}). | ||
| 20475 | |||
| 19852 | @item W f | 20476 | @item W f |
| 19853 | @kindex W f (Group) | 20477 | @kindex W f (Group) |
| 19854 | @findex gnus-score-flush-cache | 20478 | @findex gnus-score-flush-cache |
| @@ -20453,6 +21077,11 @@ The adaptive score entries will be put into a file where the name is the | |||
| 20453 | group name with @code{gnus-adaptive-file-suffix} appended. The default | 21077 | group name with @code{gnus-adaptive-file-suffix} appended. The default |
| 20454 | is @file{ADAPT}. | 21078 | is @file{ADAPT}. |
| 20455 | 21079 | ||
| 21080 | @vindex gnus-adaptive-pretty-print | ||
| 21081 | Adaptive score files can get huge and are not meant to be edited by | ||
| 21082 | human hands. If @code{gnus-adaptive-pretty-print} is @code{nil} (the | ||
| 21083 | deafult) those files will not be written in a human readable way. | ||
| 21084 | |||
| 20456 | @vindex gnus-score-exact-adapt-limit | 21085 | @vindex gnus-score-exact-adapt-limit |
| 20457 | When doing adaptive scoring, substring or fuzzy matching would probably | 21086 | When doing adaptive scoring, substring or fuzzy matching would probably |
| 20458 | give you the best results in most cases. However, if the header one | 21087 | give you the best results in most cases. However, if the header one |
| @@ -20705,6 +21334,13 @@ so: @kbd{I e s p To RET <your name> RET}. | |||
| 20705 | 21334 | ||
| 20706 | See? Simple. | 21335 | See? Simple. |
| 20707 | 21336 | ||
| 21337 | @vindex gnus-inhibit-slow-scoring | ||
| 21338 | You can inhibit scoring the slow scoring on headers or body by setting | ||
| 21339 | the variable @code{gnus-inhibit-slow-scoring}. If | ||
| 21340 | @code{gnus-inhibit-slow-scoring} is regexp, slow scoring is inhibited if | ||
| 21341 | the group matches the regexp. If it is t, slow scoring on it is | ||
| 21342 | inhibited for all groups. | ||
| 21343 | |||
| 20708 | 21344 | ||
| 20709 | @node Scoring Tips | 21345 | @node Scoring Tips |
| 20710 | @section Scoring Tips | 21346 | @section Scoring Tips |
| @@ -20967,205 +21603,6 @@ hand. Or just let them be as they are. Gnus will still use them as | |||
| 20967 | before. | 21603 | before. |
| 20968 | 21604 | ||
| 20969 | 21605 | ||
| 20970 | @node GroupLens | ||
| 20971 | @section GroupLens | ||
| 20972 | @cindex GroupLens | ||
| 20973 | |||
| 20974 | @sc{Note:} Unfortunately the GroupLens system seems to have shut down, | ||
| 20975 | so this section is mostly of historical interest. | ||
| 20976 | |||
| 20977 | @uref{http://www.cs.umn.edu/Research/GroupLens/, GroupLens} is a | ||
| 20978 | collaborative filtering system that helps you work together with other | ||
| 20979 | people to find the quality news articles out of the huge volume of | ||
| 20980 | news articles generated every day. | ||
| 20981 | |||
| 20982 | To accomplish this the GroupLens system combines your opinions about | ||
| 20983 | articles you have already read with the opinions of others who have done | ||
| 20984 | likewise and gives you a personalized prediction for each unread news | ||
| 20985 | article. Think of GroupLens as a matchmaker. GroupLens watches how you | ||
| 20986 | rate articles, and finds other people that rate articles the same way. | ||
| 20987 | Once it has found some people you agree with it tells you, in the form | ||
| 20988 | of a prediction, what they thought of the article. You can use this | ||
| 20989 | prediction to help you decide whether or not you want to read the | ||
| 20990 | article. | ||
| 20991 | |||
| 20992 | @menu | ||
| 20993 | * Using GroupLens:: How to make Gnus use GroupLens. | ||
| 20994 | * Rating Articles:: Letting GroupLens know how you rate articles. | ||
| 20995 | * Displaying Predictions:: Displaying predictions given by GroupLens. | ||
| 20996 | * GroupLens Variables:: Customizing GroupLens. | ||
| 20997 | @end menu | ||
| 20998 | |||
| 20999 | |||
| 21000 | @node Using GroupLens | ||
| 21001 | @subsection Using GroupLens | ||
| 21002 | |||
| 21003 | To use GroupLens you must register a pseudonym with your local | ||
| 21004 | @uref{http://www.cs.umn.edu/Research/GroupLens/bbb.html, Better Bit | ||
| 21005 | Bureau (BBB)} is the only better bit in town at the moment. | ||
| 21006 | |||
| 21007 | Once you have registered you'll need to set a couple of variables. | ||
| 21008 | |||
| 21009 | @table @code | ||
| 21010 | |||
| 21011 | @item gnus-use-grouplens | ||
| 21012 | @vindex gnus-use-grouplens | ||
| 21013 | Setting this variable to a non-@code{nil} value will make Gnus hook into | ||
| 21014 | all the relevant GroupLens functions. | ||
| 21015 | |||
| 21016 | @item grouplens-pseudonym | ||
| 21017 | @vindex grouplens-pseudonym | ||
| 21018 | This variable should be set to the pseudonym you got when registering | ||
| 21019 | with the Better Bit Bureau. | ||
| 21020 | |||
| 21021 | @item grouplens-newsgroups | ||
| 21022 | @vindex grouplens-newsgroups | ||
| 21023 | A list of groups that you want to get GroupLens predictions for. | ||
| 21024 | |||
| 21025 | @end table | ||
| 21026 | |||
| 21027 | That's the minimum of what you need to get up and running with GroupLens. | ||
| 21028 | Once you've registered, GroupLens will start giving you scores for | ||
| 21029 | articles based on the average of what other people think. But, to get | ||
| 21030 | the real benefit of GroupLens you need to start rating articles | ||
| 21031 | yourself. Then the scores GroupLens gives you will be personalized for | ||
| 21032 | you, based on how the people you usually agree with have already rated. | ||
| 21033 | |||
| 21034 | |||
| 21035 | @node Rating Articles | ||
| 21036 | @subsection Rating Articles | ||
| 21037 | |||
| 21038 | In GroupLens, an article is rated on a scale from 1 to 5, inclusive. | ||
| 21039 | Where 1 means something like this article is a waste of bandwidth and 5 | ||
| 21040 | means that the article was really good. The basic question to ask | ||
| 21041 | yourself is, ``on a scale from 1 to 5 would I like to see more articles | ||
| 21042 | like this one?'' | ||
| 21043 | |||
| 21044 | There are four ways to enter a rating for an article in GroupLens. | ||
| 21045 | |||
| 21046 | @table @kbd | ||
| 21047 | |||
| 21048 | @item r | ||
| 21049 | @kindex r (GroupLens) | ||
| 21050 | @findex bbb-summary-rate-article | ||
| 21051 | This function will prompt you for a rating on a scale of one to five. | ||
| 21052 | |||
| 21053 | @item k | ||
| 21054 | @kindex k (GroupLens) | ||
| 21055 | @findex grouplens-score-thread | ||
| 21056 | This function will prompt you for a rating, and rate all the articles in | ||
| 21057 | the thread. This is really useful for some of those long running giant | ||
| 21058 | threads in rec.humor. | ||
| 21059 | |||
| 21060 | @end table | ||
| 21061 | |||
| 21062 | The next two commands, @kbd{n} and @kbd{,} take a numerical prefix to be | ||
| 21063 | the score of the article you're reading. | ||
| 21064 | |||
| 21065 | @table @kbd | ||
| 21066 | |||
| 21067 | @item 1-5 n | ||
| 21068 | @kindex n (GroupLens) | ||
| 21069 | @findex grouplens-next-unread-article | ||
| 21070 | Rate the article and go to the next unread article. | ||
| 21071 | |||
| 21072 | @item 1-5 , | ||
| 21073 | @kindex , (GroupLens) | ||
| 21074 | @findex grouplens-best-unread-article | ||
| 21075 | Rate the article and go to the next unread article with the highest score. | ||
| 21076 | |||
| 21077 | @end table | ||
| 21078 | |||
| 21079 | If you want to give the current article a score of 4 and then go to the | ||
| 21080 | next article, just type @kbd{4 n}. | ||
| 21081 | |||
| 21082 | |||
| 21083 | @node Displaying Predictions | ||
| 21084 | @subsection Displaying Predictions | ||
| 21085 | |||
| 21086 | GroupLens makes a prediction for you about how much you will like a | ||
| 21087 | news article. The predictions from GroupLens are on a scale from 1 to | ||
| 21088 | 5, where 1 is the worst and 5 is the best. You can use the predictions | ||
| 21089 | from GroupLens in one of three ways controlled by the variable | ||
| 21090 | @code{gnus-grouplens-override-scoring}. | ||
| 21091 | |||
| 21092 | @vindex gnus-grouplens-override-scoring | ||
| 21093 | There are three ways to display predictions in grouplens. You may | ||
| 21094 | choose to have the GroupLens scores contribute to, or override the | ||
| 21095 | regular Gnus scoring mechanism. override is the default; however, some | ||
| 21096 | people prefer to see the Gnus scores plus the grouplens scores. To get | ||
| 21097 | the separate scoring behavior you need to set | ||
| 21098 | @code{gnus-grouplens-override-scoring} to @code{'separate}. To have the | ||
| 21099 | GroupLens predictions combined with the grouplens scores set it to | ||
| 21100 | @code{'override} and to combine the scores set | ||
| 21101 | @code{gnus-grouplens-override-scoring} to @code{'combine}. When you use | ||
| 21102 | the combine option you will also want to set the values for | ||
| 21103 | @code{grouplens-prediction-offset} and | ||
| 21104 | @code{grouplens-score-scale-factor}. | ||
| 21105 | |||
| 21106 | @vindex grouplens-prediction-display | ||
| 21107 | In either case, GroupLens gives you a few choices for how you would like | ||
| 21108 | to see your predictions displayed. The display of predictions is | ||
| 21109 | controlled by the @code{grouplens-prediction-display} variable. | ||
| 21110 | |||
| 21111 | The following are valid values for that variable. | ||
| 21112 | |||
| 21113 | @table @code | ||
| 21114 | @item prediction-spot | ||
| 21115 | The higher the prediction, the further to the right an @samp{*} is | ||
| 21116 | displayed. | ||
| 21117 | |||
| 21118 | @item confidence-interval | ||
| 21119 | A numeric confidence interval. | ||
| 21120 | |||
| 21121 | @item prediction-bar | ||
| 21122 | The higher the prediction, the longer the bar. | ||
| 21123 | |||
| 21124 | @item confidence-bar | ||
| 21125 | Numerical confidence. | ||
| 21126 | |||
| 21127 | @item confidence-spot | ||
| 21128 | The spot gets bigger with more confidence. | ||
| 21129 | |||
| 21130 | @item prediction-num | ||
| 21131 | Plain-old numeric value. | ||
| 21132 | |||
| 21133 | @item confidence-plus-minus | ||
| 21134 | Prediction +/- confidence. | ||
| 21135 | |||
| 21136 | @end table | ||
| 21137 | |||
| 21138 | |||
| 21139 | @node GroupLens Variables | ||
| 21140 | @subsection GroupLens Variables | ||
| 21141 | |||
| 21142 | @table @code | ||
| 21143 | |||
| 21144 | @item gnus-summary-grouplens-line-format | ||
| 21145 | The summary line format used in GroupLens-enhanced summary buffers. It | ||
| 21146 | accepts the same specs as the normal summary line format (@pxref{Summary | ||
| 21147 | Buffer Lines}). The default is @samp{%U%R%z%l%I%(%[%4L: %-23,23n%]%) | ||
| 21148 | %s\n}. | ||
| 21149 | |||
| 21150 | @item grouplens-bbb-host | ||
| 21151 | Host running the bbbd server. @samp{grouplens.cs.umn.edu} is the | ||
| 21152 | default. | ||
| 21153 | |||
| 21154 | @item grouplens-bbb-port | ||
| 21155 | Port of the host running the bbbd server. The default is 9000. | ||
| 21156 | |||
| 21157 | @item grouplens-score-offset | ||
| 21158 | Offset the prediction by this value. In other words, subtract the | ||
| 21159 | prediction value by this number to arrive at the effective score. The | ||
| 21160 | default is 0. | ||
| 21161 | |||
| 21162 | @item grouplens-score-scale-factor | ||
| 21163 | This variable allows the user to magnify the effect of GroupLens scores. | ||
| 21164 | The scale factor is applied after the offset. The default is 1. | ||
| 21165 | |||
| 21166 | @end table | ||
| 21167 | |||
| 21168 | |||
| 21169 | @node Advanced Scoring | 21606 | @node Advanced Scoring |
| 21170 | @section Advanced Scoring | 21607 | @section Advanced Scoring |
| 21171 | 21608 | ||
| @@ -21366,9 +21803,12 @@ Gnus provides a mechanism for decaying scores to help with this problem. | |||
| 21366 | When score files are loaded and @code{gnus-decay-scores} is | 21803 | When score files are loaded and @code{gnus-decay-scores} is |
| 21367 | non-@code{nil}, Gnus will run the score files through the decaying | 21804 | non-@code{nil}, Gnus will run the score files through the decaying |
| 21368 | mechanism thereby lowering the scores of all non-permanent score rules. | 21805 | mechanism thereby lowering the scores of all non-permanent score rules. |
| 21369 | The decay itself if performed by the @code{gnus-decay-score-function} | 21806 | If @code{gnus-decay-scores} is a regexp, only score files matching this |
| 21370 | function, which is @code{gnus-decay-score} by default. Here's the | 21807 | regexp are treated. E.g. you may set it to @samp{\\.ADAPT\\'} if only |
| 21371 | definition of that function: | 21808 | @emph{adaptive} score files should be decayed. The decay itself if |
| 21809 | performed by the @code{gnus-decay-score-function} function, which is | ||
| 21810 | @code{gnus-decay-score} by default. Here's the definition of that | ||
| 21811 | function: | ||
| 21372 | 21812 | ||
| 21373 | @lisp | 21813 | @lisp |
| 21374 | (defun gnus-decay-score (score) | 21814 | (defun gnus-decay-score (score) |
| @@ -21423,6 +21863,8 @@ four days, Gnus will decay the scores four times, for instance. | |||
| 21423 | @include sieve.texi | 21863 | @include sieve.texi |
| 21424 | @chapter PGG | 21864 | @chapter PGG |
| 21425 | @include pgg.texi | 21865 | @include pgg.texi |
| 21866 | @chapter SASL | ||
| 21867 | @include sasl.texi | ||
| 21426 | @end iflatex | 21868 | @end iflatex |
| 21427 | @end iftex | 21869 | @end iftex |
| 21428 | 21870 | ||
| @@ -22805,6 +23247,32 @@ Face and variable: | |||
| 22805 | Face to show X-Face. The colors from this face are used as the | 23247 | Face to show X-Face. The colors from this face are used as the |
| 22806 | foreground and background colors of the displayed X-Faces. The | 23248 | foreground and background colors of the displayed X-Faces. The |
| 22807 | default colors are black and white. | 23249 | default colors are black and white. |
| 23250 | |||
| 23251 | @item gnus-face-properties-alist | ||
| 23252 | @vindex gnus-face-properties-alist | ||
| 23253 | Alist of image types and properties applied to Face (@pxref{Face}) and | ||
| 23254 | X-Face images. The default value is @code{((pbm . (:face gnus-x-face)) | ||
| 23255 | (png . nil))} for Emacs or @code{((xface . (:face gnus-x-face)))} for | ||
| 23256 | XEmacs. Here are examples: | ||
| 23257 | |||
| 23258 | @lisp | ||
| 23259 | ;; Specify the altitude of Face and X-Face images in the From header. | ||
| 23260 | (setq gnus-face-properties-alist | ||
| 23261 | '((pbm . (:face gnus-x-face :ascent 80)) | ||
| 23262 | (png . (:ascent 80)))) | ||
| 23263 | |||
| 23264 | ;; Show Face and X-Face images as pressed buttons. | ||
| 23265 | (setq gnus-face-properties-alist | ||
| 23266 | '((pbm . (:face gnus-x-face :relief -2)) | ||
| 23267 | (png . (:relief -2)))) | ||
| 23268 | @end lisp | ||
| 23269 | |||
| 23270 | @pxref{Image Descriptors, ,Image Descriptors, elisp, The Emacs Lisp | ||
| 23271 | Reference Manual} for the valid properties for various image types. | ||
| 23272 | Currently, @code{pbm} is used for X-Face images and @code{png} is used | ||
| 23273 | for Face images in Emacs. Only the @code{:face} property is effective | ||
| 23274 | on the @code{xface} image type in XEmacs if it is built with the | ||
| 23275 | @samp{libcompface} library. | ||
| 22808 | @end table | 23276 | @end table |
| 22809 | 23277 | ||
| 22810 | If you use posting styles, you can use an @code{x-face-file} entry in | 23278 | If you use posting styles, you can use an @code{x-face-file} entry in |
| @@ -22871,6 +23339,9 @@ The contents of a @code{Face} header must be a base64 encoded PNG image. | |||
| 22871 | See @uref{http://quimby.gnus.org/circus/face/} for the precise | 23339 | See @uref{http://quimby.gnus.org/circus/face/} for the precise |
| 22872 | specifications. | 23340 | specifications. |
| 22873 | 23341 | ||
| 23342 | The @code{gnus-face-properties-alist} variable affects the appearance of | ||
| 23343 | displayed Face images. @xref{X-Face}. | ||
| 23344 | |||
| 22874 | Viewing an @code{Face} header requires an Emacs that is able to display | 23345 | Viewing an @code{Face} header requires an Emacs that is able to display |
| 22875 | PNG images. | 23346 | PNG images. |
| 22876 | @c Maybe add this: | 23347 | @c Maybe add this: |
| @@ -22994,6 +23465,11 @@ To enable displaying picons, simply make sure that | |||
| 22994 | @code{gnus-picon-databases} points to the directory containing the | 23465 | @code{gnus-picon-databases} points to the directory containing the |
| 22995 | Picons databases. | 23466 | Picons databases. |
| 22996 | 23467 | ||
| 23468 | @vindex gnus-picon-style | ||
| 23469 | The variable @code{gnus-picon-style} controls how picons are displayed. | ||
| 23470 | If @code{inline}, the textual representation is replaced. If | ||
| 23471 | @code{right}, picons are added right to the textual representation. | ||
| 23472 | |||
| 22997 | The following variables offer control over where things are located. | 23473 | The following variables offer control over where things are located. |
| 22998 | 23474 | ||
| 22999 | @table @code | 23475 | @table @code |
| @@ -23360,7 +23836,7 @@ call the external tools during splitting. Example fancy split method: | |||
| 23360 | "spam")))) | 23836 | "spam")))) |
| 23361 | @end lisp | 23837 | @end lisp |
| 23362 | 23838 | ||
| 23363 | Note that with the nnimap backend, message bodies will not be | 23839 | Note that with the nnimap back end, message bodies will not be |
| 23364 | downloaded by default. You need to set | 23840 | downloaded by default. You need to set |
| 23365 | @code{nnimap-split-download-body} to @code{t} to do that | 23841 | @code{nnimap-split-download-body} to @code{t} to do that |
| 23366 | (@pxref{Splitting in IMAP}). | 23842 | (@pxref{Splitting in IMAP}). |
| @@ -23383,10 +23859,10 @@ spam. And here is the nifty function: | |||
| 23383 | @cindex hashcash | 23859 | @cindex hashcash |
| 23384 | 23860 | ||
| 23385 | A novel technique to fight spam is to require senders to do something | 23861 | A novel technique to fight spam is to require senders to do something |
| 23386 | costly for each message they send. This has the obvious drawback that | 23862 | costly and demonstrably unique for each message they send. This has |
| 23387 | you cannot rely on everyone in the world using this technique, | 23863 | the obvious drawback that you cannot rely on everyone in the world |
| 23388 | since it is not part of the Internet standards, but it may be useful | 23864 | using this technique, since it is not part of the Internet standards, |
| 23389 | in smaller communities. | 23865 | but it may be useful in smaller communities. |
| 23390 | 23866 | ||
| 23391 | While the tools in the previous section work well in practice, they | 23867 | While the tools in the previous section work well in practice, they |
| 23392 | work only because the tools are constantly maintained and updated as | 23868 | work only because the tools are constantly maintained and updated as |
| @@ -23402,24 +23878,20 @@ one of them separately. | |||
| 23402 | @cindex X-Hashcash | 23878 | @cindex X-Hashcash |
| 23403 | The ``something costly'' is to burn CPU time, more specifically to | 23879 | The ``something costly'' is to burn CPU time, more specifically to |
| 23404 | compute a hash collision up to a certain number of bits. The | 23880 | compute a hash collision up to a certain number of bits. The |
| 23405 | resulting hashcash cookie is inserted in a @samp{X-Hashcash:} | 23881 | resulting hashcash cookie is inserted in a @samp{X-Hashcash:} header. |
| 23406 | header. For more details, and for the external application | 23882 | For more details, and for the external application @code{hashcash} you |
| 23407 | @code{hashcash} you need to install to use this feature, see | 23883 | need to install to use this feature, see |
| 23408 | @uref{http://www.cypherspace.org/~adam/hashcash/}. Even more | 23884 | @uref{http://www.hashcash.org/}. Even more information can be found |
| 23409 | information can be found at @uref{http://www.camram.org/}. | 23885 | at @uref{http://www.camram.org/}. |
| 23410 | 23886 | ||
| 23411 | If you wish to call hashcash for each message you send, say something | 23887 | If you wish to generate hashcash for each message you send, you can |
| 23412 | like: | 23888 | customize @code{message-generate-hashcash} (@pxref{Mail Headers, ,Mail |
| 23889 | Headers,message, The Message Manual}), as in: | ||
| 23413 | 23890 | ||
| 23414 | @lisp | 23891 | @lisp |
| 23415 | (require 'hashcash) | 23892 | (setq message-generate-hashcash t) |
| 23416 | (add-hook 'message-send-hook 'mail-add-payment) | ||
| 23417 | @end lisp | 23893 | @end lisp |
| 23418 | 23894 | ||
| 23419 | The @file{hashcash.el} library can be found in the Gnus development | ||
| 23420 | contrib directory or at | ||
| 23421 | @uref{http://users.actrix.gen.nz/mycroft/hashcash.el}. | ||
| 23422 | |||
| 23423 | You will need to set up some additional variables as well: | 23895 | You will need to set up some additional variables as well: |
| 23424 | 23896 | ||
| 23425 | @table @code | 23897 | @table @code |
| @@ -23427,8 +23899,8 @@ You will need to set up some additional variables as well: | |||
| 23427 | @item hashcash-default-payment | 23899 | @item hashcash-default-payment |
| 23428 | @vindex hashcash-default-payment | 23900 | @vindex hashcash-default-payment |
| 23429 | This variable indicates the default number of bits the hash collision | 23901 | This variable indicates the default number of bits the hash collision |
| 23430 | should consist of. By default this is 0, meaning nothing will be | 23902 | should consist of. By default this is 20. Suggested useful values |
| 23431 | done. Suggested useful values include 17 to 29. | 23903 | include 17 to 29. |
| 23432 | 23904 | ||
| 23433 | @item hashcash-payment-alist | 23905 | @item hashcash-payment-alist |
| 23434 | @vindex hashcash-payment-alist | 23906 | @vindex hashcash-payment-alist |
| @@ -23440,16 +23912,23 @@ that is needed. It can also contain @samp{(@var{addr} @var{string} | |||
| 23440 | @var{amount})} cells, where the @var{string} is the string to use | 23912 | @var{amount})} cells, where the @var{string} is the string to use |
| 23441 | (normally the email address or newsgroup name is used). | 23913 | (normally the email address or newsgroup name is used). |
| 23442 | 23914 | ||
| 23443 | @item hashcash | 23915 | @item hashcash-path |
| 23444 | @vindex hashcash | 23916 | @vindex hashcash-path |
| 23445 | Where the @code{hashcash} binary is installed. | 23917 | Where the @code{hashcash} binary is installed. This variable should |
| 23918 | be automatically set by @code{executable-find}, but if it's @code{nil} | ||
| 23919 | (usually because the @code{hashcash} binary is not in your path) | ||
| 23920 | you'll get a warning when you check hashcash payments and an error | ||
| 23921 | when you generate hashcash payments. | ||
| 23446 | 23922 | ||
| 23447 | @end table | 23923 | @end table |
| 23448 | 23924 | ||
| 23449 | Currently there is no built in functionality in Gnus to verify | 23925 | Gnus can verify hashcash cookies, although this can also be done by |
| 23450 | hashcash cookies, it is expected that this is performed by your hand | 23926 | hand customized mail filtering scripts. To verify a hashcash cookie |
| 23451 | customized mail filtering scripts. Improvements in this area would be | 23927 | in a message, use the @code{mail-check-payment} function in the |
| 23452 | a useful contribution, however. | 23928 | @code{hashcash.el} library. You can also use the @code{spam.el} |
| 23929 | package with the @code{spam-use-hashcash} back end to validate hashcash | ||
| 23930 | cookies in incoming mail and filter mail accordingly (@pxref{Anti-spam | ||
| 23931 | Hashcash Payments}). | ||
| 23453 | 23932 | ||
| 23454 | @node Spam Package | 23933 | @node Spam Package |
| 23455 | @section Spam Package | 23934 | @section Spam Package |
| @@ -23481,6 +23960,9 @@ name used throughout this manual to indicate non-spam messages.) | |||
| 23481 | You must read this section to understand how the Spam package works. | 23960 | You must read this section to understand how the Spam package works. |
| 23482 | Do not skip, speed-read, or glance through this section. | 23961 | Do not skip, speed-read, or glance through this section. |
| 23483 | 23962 | ||
| 23963 | Make sure you read the section on the @code{spam.el} sequence of | ||
| 23964 | events. See @xref{Extending the Spam package}. | ||
| 23965 | |||
| 23484 | @cindex spam-initialize | 23966 | @cindex spam-initialize |
| 23485 | @vindex spam-use-stat | 23967 | @vindex spam-use-stat |
| 23486 | To use the Spam package, you @strong{must} first run the function | 23968 | To use the Spam package, you @strong{must} first run the function |
| @@ -23836,7 +24318,7 @@ parameter is not set, ham articles are left in place. If the | |||
| 23836 | @code{spam-mark-ham-unread-before-move-from-spam-group} parameter is | 24318 | @code{spam-mark-ham-unread-before-move-from-spam-group} parameter is |
| 23837 | set, the ham articles are marked as unread before being moved. | 24319 | set, the ham articles are marked as unread before being moved. |
| 23838 | 24320 | ||
| 23839 | If ham can not be moved---because of a read-only backend such as | 24321 | If ham can not be moved---because of a read-only back end such as |
| 23840 | @acronym{NNTP}, for example, it will be copied. | 24322 | @acronym{NNTP}, for example, it will be copied. |
| 23841 | 24323 | ||
| 23842 | Note that you can use multiples destinations per group or regular | 24324 | Note that you can use multiples destinations per group or regular |
| @@ -23873,7 +24355,7 @@ articles are only expired. The group name is fully qualified, meaning | |||
| 23873 | that if you see @samp{nntp:servername} before the group name in the | 24355 | that if you see @samp{nntp:servername} before the group name in the |
| 23874 | group buffer then you need it here as well. | 24356 | group buffer then you need it here as well. |
| 23875 | 24357 | ||
| 23876 | If spam can not be moved---because of a read-only backend such as | 24358 | If spam can not be moved---because of a read-only back end such as |
| 23877 | @acronym{NNTP}, for example, it will be copied. | 24359 | @acronym{NNTP}, for example, it will be copied. |
| 23878 | 24360 | ||
| 23879 | Note that you can use multiples destinations per group or regular | 24361 | Note that you can use multiples destinations per group or regular |
| @@ -23992,7 +24474,7 @@ From Ted Zlatanov <tzz@@lifelogs.com>. | |||
| 23992 | 24474 | ||
| 23993 | @end example | 24475 | @end example |
| 23994 | 24476 | ||
| 23995 | @subsubheading Using @file{spam.el} on an IMAP server with a statistical filter on the server | 24477 | @subsubheading Using @code{spam.el} on an IMAP server with a statistical filter on the server |
| 23996 | From Reiner Steib <reiner.steib@@gmx.de>. | 24478 | From Reiner Steib <reiner.steib@@gmx.de>. |
| 23997 | 24479 | ||
| 23998 | My provider has set up bogofilter (in combination with @acronym{DCC}) on | 24480 | My provider has set up bogofilter (in combination with @acronym{DCC}) on |
| @@ -24046,7 +24528,7 @@ an excellent tool for filtering those unwanted mails for me.) | |||
| 24046 | In my ham folders, I just hit @kbd{S x} | 24528 | In my ham folders, I just hit @kbd{S x} |
| 24047 | (@code{gnus-summary-mark-as-spam}) whenever I see an unrecognized spam | 24529 | (@code{gnus-summary-mark-as-spam}) whenever I see an unrecognized spam |
| 24048 | mail (false negative). On group exit, those messages are moved to | 24530 | mail (false negative). On group exit, those messages are moved to |
| 24049 | @samp{training.ham}. | 24531 | @samp{training.spam}. |
| 24050 | @end itemize | 24532 | @end itemize |
| 24051 | 24533 | ||
| 24052 | @subsubheading Reporting spam articles in Gmane groups with @code{spam-report.el} | 24534 | @subsubheading Reporting spam articles in Gmane groups with @code{spam-report.el} |
| @@ -24086,6 +24568,7 @@ Processors}). | |||
| 24086 | * Blackholes:: | 24568 | * Blackholes:: |
| 24087 | * Regular Expressions Header Matching:: | 24569 | * Regular Expressions Header Matching:: |
| 24088 | * Bogofilter:: | 24570 | * Bogofilter:: |
| 24571 | * SpamAssassin back end:: | ||
| 24089 | * ifile spam filtering:: | 24572 | * ifile spam filtering:: |
| 24090 | * Spam Statistics Filtering:: | 24573 | * Spam Statistics Filtering:: |
| 24091 | * SpamOracle:: | 24574 | * SpamOracle:: |
| @@ -24138,7 +24621,7 @@ spam-marked articles will be added to the blacklist. | |||
| 24138 | 24621 | ||
| 24139 | Instead of the obsolete | 24622 | Instead of the obsolete |
| 24140 | @code{gnus-group-spam-exit-processor-blacklist}, it is recommended | 24623 | @code{gnus-group-spam-exit-processor-blacklist}, it is recommended |
| 24141 | that you use @code{'(spam spam-use-blacklist)}. Everything will work | 24624 | that you use @code{(spam spam-use-blacklist)}. Everything will work |
| 24142 | the same way, we promise. | 24625 | the same way, we promise. |
| 24143 | 24626 | ||
| 24144 | @end defvar | 24627 | @end defvar |
| @@ -24150,14 +24633,13 @@ customizing the group parameters or the | |||
| 24150 | @code{gnus-spam-process-newsgroups} variable. When this symbol is | 24633 | @code{gnus-spam-process-newsgroups} variable. When this symbol is |
| 24151 | added to a group's @code{spam-process} parameter, the senders of | 24634 | added to a group's @code{spam-process} parameter, the senders of |
| 24152 | ham-marked articles in @emph{ham} groups will be added to the | 24635 | ham-marked articles in @emph{ham} groups will be added to the |
| 24153 | whitelist. Note that this ham processor has no effect in @emph{spam} | 24636 | whitelist. |
| 24154 | or @emph{unclassified} groups. | ||
| 24155 | 24637 | ||
| 24156 | @emph{WARNING} | 24638 | @emph{WARNING} |
| 24157 | 24639 | ||
| 24158 | Instead of the obsolete | 24640 | Instead of the obsolete |
| 24159 | @code{gnus-group-ham-exit-processor-whitelist}, it is recommended | 24641 | @code{gnus-group-ham-exit-processor-whitelist}, it is recommended |
| 24160 | that you use @code{'(ham spam-use-whitelist)}. Everything will work | 24642 | that you use @code{(ham spam-use-whitelist)}. Everything will work |
| 24161 | the same way, we promise. | 24643 | the same way, we promise. |
| 24162 | 24644 | ||
| 24163 | @end defvar | 24645 | @end defvar |
| @@ -24207,6 +24689,12 @@ unless the sender is in the BBDB. Use with care. Only sender | |||
| 24207 | addresses in the BBDB will be allowed through; all others will be | 24689 | addresses in the BBDB will be allowed through; all others will be |
| 24208 | classified as spammers. | 24690 | classified as spammers. |
| 24209 | 24691 | ||
| 24692 | While @code{spam-use-BBDB-exclusive} @emph{can} be used as an alias | ||
| 24693 | for @code{spam-use-BBDB} as far as @code{spam.el} is concerned, it is | ||
| 24694 | @emph{not} a separate back end. If you set | ||
| 24695 | @code{spam-use-BBDB-exclusive} to t, @emph{all} your BBDB splitting | ||
| 24696 | will be exclusive. | ||
| 24697 | |||
| 24210 | @end defvar | 24698 | @end defvar |
| 24211 | 24699 | ||
| 24212 | @defvar gnus-group-ham-exit-processor-BBDB | 24700 | @defvar gnus-group-ham-exit-processor-BBDB |
| @@ -24216,14 +24704,13 @@ customizing the group parameters or the | |||
| 24216 | @code{gnus-spam-process-newsgroups} variable. When this symbol is | 24704 | @code{gnus-spam-process-newsgroups} variable. When this symbol is |
| 24217 | added to a group's @code{spam-process} parameter, the senders of | 24705 | added to a group's @code{spam-process} parameter, the senders of |
| 24218 | ham-marked articles in @emph{ham} groups will be added to the | 24706 | ham-marked articles in @emph{ham} groups will be added to the |
| 24219 | BBDB. Note that this ham processor has no effect in @emph{spam} | 24707 | BBDB. |
| 24220 | or @emph{unclassified} groups. | ||
| 24221 | 24708 | ||
| 24222 | @emph{WARNING} | 24709 | @emph{WARNING} |
| 24223 | 24710 | ||
| 24224 | Instead of the obsolete | 24711 | Instead of the obsolete |
| 24225 | @code{gnus-group-ham-exit-processor-BBDB}, it is recommended | 24712 | @code{gnus-group-ham-exit-processor-BBDB}, it is recommended |
| 24226 | that you use @code{'(ham spam-use-BBDB)}. Everything will work | 24713 | that you use @code{(ham spam-use-BBDB)}. Everything will work |
| 24227 | the same way, we promise. | 24714 | the same way, we promise. |
| 24228 | 24715 | ||
| 24229 | @end defvar | 24716 | @end defvar |
| @@ -24250,7 +24737,7 @@ Gmane can be found at @uref{http://gmane.org}. | |||
| 24250 | 24737 | ||
| 24251 | Instead of the obsolete | 24738 | Instead of the obsolete |
| 24252 | @code{gnus-group-spam-exit-processor-report-gmane}, it is recommended | 24739 | @code{gnus-group-spam-exit-processor-report-gmane}, it is recommended |
| 24253 | that you use @code{'(spam spam-use-gmane)}. Everything will work the | 24740 | that you use @code{(spam spam-use-gmane)}. Everything will work the |
| 24254 | same way, we promise. | 24741 | same way, we promise. |
| 24255 | 24742 | ||
| 24256 | @end defvar | 24743 | @end defvar |
| @@ -24261,8 +24748,15 @@ This variable is @code{t} by default. Set it to @code{nil} if you are | |||
| 24261 | running your own news server, for instance, and the local article | 24748 | running your own news server, for instance, and the local article |
| 24262 | numbers don't correspond to the Gmane article numbers. When | 24749 | numbers don't correspond to the Gmane article numbers. When |
| 24263 | @code{spam-report-gmane-use-article-number} is @code{nil}, | 24750 | @code{spam-report-gmane-use-article-number} is @code{nil}, |
| 24264 | @code{spam-report.el} will use the @code{X-Report-Spam} header that | 24751 | @code{spam-report.el} will fetch the number from the article headers. |
| 24265 | Gmane provides. | 24752 | |
| 24753 | @end defvar | ||
| 24754 | |||
| 24755 | @defvar spam-report-user-mail-address | ||
| 24756 | |||
| 24757 | Mail address exposed in the User-Agent spam reports to Gmane. It allows | ||
| 24758 | the Gmane administrators to contact you in case of misreports. The | ||
| 24759 | default is @code{user-mail-address}. | ||
| 24266 | 24760 | ||
| 24267 | @end defvar | 24761 | @end defvar |
| 24268 | 24762 | ||
| @@ -24276,12 +24770,10 @@ Gmane provides. | |||
| 24276 | 24770 | ||
| 24277 | Similar to @code{spam-use-whitelist} (@pxref{Blacklists and | 24771 | Similar to @code{spam-use-whitelist} (@pxref{Blacklists and |
| 24278 | Whitelists}), but uses hashcash tokens for whitelisting messages | 24772 | Whitelists}), but uses hashcash tokens for whitelisting messages |
| 24279 | instead of the sender address. You must have the @code{hashcash.el} | 24773 | instead of the sender address. Messages without a hashcash payment |
| 24280 | package loaded for @code{spam-use-hashcash} to work properly. | 24774 | token will be sent to the next spam-split rule. This is an explicit |
| 24281 | Messages without a hashcash payment token will be sent to the next | 24775 | filter, meaning that unless a hashcash token is found, the messages |
| 24282 | spam-split rule. This is an explicit filter, meaning that unless a | 24776 | are not assumed to be spam or ham. |
| 24283 | hashcash token is found, the messages are not assumed to be spam or | ||
| 24284 | ham. | ||
| 24285 | 24777 | ||
| 24286 | @end defvar | 24778 | @end defvar |
| 24287 | 24779 | ||
| @@ -24301,7 +24793,7 @@ list is fairly comprehensive, but make sure to let us know if it | |||
| 24301 | contains outdated servers. | 24793 | contains outdated servers. |
| 24302 | 24794 | ||
| 24303 | The blackhole check uses the @code{dig.el} package, but you can tell | 24795 | The blackhole check uses the @code{dig.el} package, but you can tell |
| 24304 | @file{spam.el} to use @code{dns.el} instead for better performance if | 24796 | @code{spam.el} to use @code{dns.el} instead for better performance if |
| 24305 | you set @code{spam-use-dig} to @code{nil}. It is not recommended at | 24797 | you set @code{spam-use-dig} to @code{nil}. It is not recommended at |
| 24306 | this time to set @code{spam-use-dig} to @code{nil} despite the | 24798 | this time to set @code{spam-use-dig} to @code{nil} despite the |
| 24307 | possible performance improvements, because some users may be unable to | 24799 | possible performance improvements, because some users may be unable to |
| @@ -24428,7 +24920,7 @@ will be added to the Bogofilter spam database. | |||
| 24428 | 24920 | ||
| 24429 | Instead of the obsolete | 24921 | Instead of the obsolete |
| 24430 | @code{gnus-group-spam-exit-processor-bogofilter}, it is recommended | 24922 | @code{gnus-group-spam-exit-processor-bogofilter}, it is recommended |
| 24431 | that you use @code{'(spam spam-use-bogofilter)}. Everything will work | 24923 | that you use @code{(spam spam-use-bogofilter)}. Everything will work |
| 24432 | the same way, we promise. | 24924 | the same way, we promise. |
| 24433 | @end defvar | 24925 | @end defvar |
| 24434 | 24926 | ||
| @@ -24438,14 +24930,13 @@ customizing the group parameters or the | |||
| 24438 | @code{gnus-spam-process-newsgroups} variable. When this symbol is | 24930 | @code{gnus-spam-process-newsgroups} variable. When this symbol is |
| 24439 | added to a group's @code{spam-process} parameter, the ham-marked | 24931 | added to a group's @code{spam-process} parameter, the ham-marked |
| 24440 | articles in @emph{ham} groups will be added to the Bogofilter database | 24932 | articles in @emph{ham} groups will be added to the Bogofilter database |
| 24441 | of non-spam messages. Note that this ham processor has no effect in | 24933 | of non-spam messages. |
| 24442 | @emph{spam} or @emph{unclassified} groups. | ||
| 24443 | 24934 | ||
| 24444 | @emph{WARNING} | 24935 | @emph{WARNING} |
| 24445 | 24936 | ||
| 24446 | Instead of the obsolete | 24937 | Instead of the obsolete |
| 24447 | @code{gnus-group-ham-exit-processor-bogofilter}, it is recommended | 24938 | @code{gnus-group-ham-exit-processor-bogofilter}, it is recommended |
| 24448 | that you use @code{'(ham spam-use-bogofilter)}. Everything will work | 24939 | that you use @code{(ham spam-use-bogofilter)}. Everything will work |
| 24449 | the same way, we promise. | 24940 | the same way, we promise. |
| 24450 | @end defvar | 24941 | @end defvar |
| 24451 | 24942 | ||
| @@ -24464,6 +24955,59 @@ variables to indicate to spam-split that Bogofilter should either be | |||
| 24464 | used, or has already been used on the article. The 0.9.2.1 version of | 24955 | used, or has already been used on the article. The 0.9.2.1 version of |
| 24465 | Bogofilter was used to test this functionality. | 24956 | Bogofilter was used to test this functionality. |
| 24466 | 24957 | ||
| 24958 | @node SpamAssassin back end | ||
| 24959 | @subsubsection SpamAssassin back end | ||
| 24960 | @cindex spam filtering | ||
| 24961 | @cindex spamassassin, spam filtering | ||
| 24962 | @cindex spam | ||
| 24963 | |||
| 24964 | @defvar spam-use-spamassassin | ||
| 24965 | |||
| 24966 | Set this variable if you want @code{spam-split} to use SpamAssassin. | ||
| 24967 | |||
| 24968 | SpamAssassin assigns a score to each article based on a set of rules | ||
| 24969 | and tests, including a Bayesian filter. The Bayesian filter can be | ||
| 24970 | trained by associating the @samp{$} mark for spam articles. The | ||
| 24971 | spam score can be viewed by using the command @kbd{S t} in summary | ||
| 24972 | mode. | ||
| 24973 | |||
| 24974 | If you set this variable, each article will be processed by | ||
| 24975 | SpamAssassin when @code{spam-split} is called. If your mail is | ||
| 24976 | preprocessed by SpamAssassin, and you want to just use the | ||
| 24977 | SpamAssassin headers, set @code{spam-use-spamassassin-headers} | ||
| 24978 | instead. | ||
| 24979 | |||
| 24980 | You should not enable this if you use | ||
| 24981 | @code{spam-use-spamassassin-headers}. | ||
| 24982 | |||
| 24983 | @end defvar | ||
| 24984 | |||
| 24985 | @defvar spam-use-spamassassin-headers | ||
| 24986 | |||
| 24987 | Set this variable if your mail is preprocessed by SpamAssassin and | ||
| 24988 | want @code{spam-split} to split based on the SpamAssassin headers. | ||
| 24989 | |||
| 24990 | You should not enable this if you use @code{spam-use-spamassassin}. | ||
| 24991 | |||
| 24992 | @end defvar | ||
| 24993 | |||
| 24994 | @defvar spam-spamassassin-program | ||
| 24995 | |||
| 24996 | This variable points to the SpamAssassin executable. If you have | ||
| 24997 | @code{spamd} running, you can set this variable to the @code{spamc} | ||
| 24998 | executable for faster processing. See the SpamAssassin documentation | ||
| 24999 | for more information on @code{spamd}/@code{spamc}. | ||
| 25000 | |||
| 25001 | @end defvar | ||
| 25002 | |||
| 25003 | SpamAssassin is a powerful and flexible spam filter that uses a wide | ||
| 25004 | variety of tests to identify spam. A ham and a spam processors are | ||
| 25005 | provided, plus the @code{spam-use-spamassassin} and | ||
| 25006 | @code{spam-use-spamassassin-headers} variables to indicate to | ||
| 25007 | spam-split that SpamAssassin should be either used, or has already | ||
| 25008 | been used on the article. The 2.63 version of SpamAssassin was used | ||
| 25009 | to test this functionality. | ||
| 25010 | |||
| 24467 | @node ifile spam filtering | 25011 | @node ifile spam filtering |
| 24468 | @subsubsection ifile spam filtering | 25012 | @subsubsection ifile spam filtering |
| 24469 | @cindex spam filtering | 25013 | @cindex spam filtering |
| @@ -24533,7 +25077,7 @@ articles will be added to the spam-stat database of spam messages. | |||
| 24533 | 25077 | ||
| 24534 | Instead of the obsolete | 25078 | Instead of the obsolete |
| 24535 | @code{gnus-group-spam-exit-processor-stat}, it is recommended | 25079 | @code{gnus-group-spam-exit-processor-stat}, it is recommended |
| 24536 | that you use @code{'(spam spam-use-stat)}. Everything will work | 25080 | that you use @code{(spam spam-use-stat)}. Everything will work |
| 24537 | the same way, we promise. | 25081 | the same way, we promise. |
| 24538 | @end defvar | 25082 | @end defvar |
| 24539 | 25083 | ||
| @@ -24543,18 +25087,17 @@ customizing the group parameters or the | |||
| 24543 | @code{gnus-spam-process-newsgroups} variable. When this symbol is | 25087 | @code{gnus-spam-process-newsgroups} variable. When this symbol is |
| 24544 | added to a group's @code{spam-process} parameter, the ham-marked | 25088 | added to a group's @code{spam-process} parameter, the ham-marked |
| 24545 | articles in @emph{ham} groups will be added to the spam-stat database | 25089 | articles in @emph{ham} groups will be added to the spam-stat database |
| 24546 | of non-spam messages. Note that this ham processor has no effect in | 25090 | of non-spam messages. |
| 24547 | @emph{spam} or @emph{unclassified} groups. | ||
| 24548 | 25091 | ||
| 24549 | @emph{WARNING} | 25092 | @emph{WARNING} |
| 24550 | 25093 | ||
| 24551 | Instead of the obsolete | 25094 | Instead of the obsolete |
| 24552 | @code{gnus-group-ham-exit-processor-stat}, it is recommended | 25095 | @code{gnus-group-ham-exit-processor-stat}, it is recommended |
| 24553 | that you use @code{'(ham spam-use-stat)}. Everything will work | 25096 | that you use @code{(ham spam-use-stat)}. Everything will work |
| 24554 | the same way, we promise. | 25097 | the same way, we promise. |
| 24555 | @end defvar | 25098 | @end defvar |
| 24556 | 25099 | ||
| 24557 | This enables @file{spam.el} to cooperate with @file{spam-stat.el}. | 25100 | This enables @code{spam.el} to cooperate with @file{spam-stat.el}. |
| 24558 | @file{spam-stat.el} provides an internal (Lisp-only) spam database, | 25101 | @file{spam-stat.el} provides an internal (Lisp-only) spam database, |
| 24559 | which unlike ifile or Bogofilter does not require external programs. | 25102 | which unlike ifile or Bogofilter does not require external programs. |
| 24560 | A spam and a ham processor, and the @code{spam-use-stat} variable for | 25103 | A spam and a ham processor, and the @code{spam-use-stat} variable for |
| @@ -24583,7 +25126,7 @@ The easiest method is to make @file{spam.el} (@pxref{Spam Package}) | |||
| 24583 | call SpamOracle. | 25126 | call SpamOracle. |
| 24584 | 25127 | ||
| 24585 | @vindex spam-use-spamoracle | 25128 | @vindex spam-use-spamoracle |
| 24586 | To enable SpamOracle usage by @file{spam.el}, set the variable | 25129 | To enable SpamOracle usage by @code{spam.el}, set the variable |
| 24587 | @code{spam-use-spamoracle} to @code{t} and configure the | 25130 | @code{spam-use-spamoracle} to @code{t} and configure the |
| 24588 | @code{nnmail-split-fancy} or @code{nnimap-split-fancy}. @xref{Spam | 25131 | @code{nnmail-split-fancy} or @code{nnimap-split-fancy}. @xref{Spam |
| 24589 | Package}. In this example the @samp{INBOX} of an nnimap server is | 25132 | Package}. In this example the @samp{INBOX} of an nnimap server is |
| @@ -24641,7 +25184,7 @@ sent to SpamOracle as spam samples. | |||
| 24641 | 25184 | ||
| 24642 | Instead of the obsolete | 25185 | Instead of the obsolete |
| 24643 | @code{gnus-group-spam-exit-processor-spamoracle}, it is recommended | 25186 | @code{gnus-group-spam-exit-processor-spamoracle}, it is recommended |
| 24644 | that you use @code{'(spam spam-use-spamoracle)}. Everything will work | 25187 | that you use @code{(spam spam-use-spamoracle)}. Everything will work |
| 24645 | the same way, we promise. | 25188 | the same way, we promise. |
| 24646 | @end defvar | 25189 | @end defvar |
| 24647 | 25190 | ||
| @@ -24651,14 +25194,13 @@ customizing the group parameter or the | |||
| 24651 | @code{gnus-spam-process-newsgroups} variable. When this symbol is added | 25194 | @code{gnus-spam-process-newsgroups} variable. When this symbol is added |
| 24652 | to a group's @code{spam-process} parameter, the ham-marked articles in | 25195 | to a group's @code{spam-process} parameter, the ham-marked articles in |
| 24653 | @emph{ham} groups will be sent to the SpamOracle as samples of ham | 25196 | @emph{ham} groups will be sent to the SpamOracle as samples of ham |
| 24654 | messages. Note that this ham processor has no effect in @emph{spam} or | 25197 | messages. |
| 24655 | @emph{unclassified} groups. | ||
| 24656 | 25198 | ||
| 24657 | @emph{WARNING} | 25199 | @emph{WARNING} |
| 24658 | 25200 | ||
| 24659 | Instead of the obsolete | 25201 | Instead of the obsolete |
| 24660 | @code{gnus-group-ham-exit-processor-spamoracle}, it is recommended | 25202 | @code{gnus-group-ham-exit-processor-spamoracle}, it is recommended |
| 24661 | that you use @code{'(ham spam-use-spamoracle)}. Everything will work | 25203 | that you use @code{(ham spam-use-spamoracle)}. Everything will work |
| 24662 | the same way, we promise. | 25204 | the same way, we promise. |
| 24663 | @end defvar | 25205 | @end defvar |
| 24664 | 25206 | ||
| @@ -24696,45 +25238,22 @@ Code | |||
| 24696 | "True if blackbox should be used.") | 25238 | "True if blackbox should be used.") |
| 24697 | @end lisp | 25239 | @end lisp |
| 24698 | 25240 | ||
| 24699 | Add | 25241 | Write @code{spam-check-blackbox} if Blackbox can check incoming mail. |
| 24700 | @lisp | ||
| 24701 | (spam-use-blackbox . spam-check-blackbox) | ||
| 24702 | @end lisp | ||
| 24703 | to @code{spam-list-of-checks}. | ||
| 24704 | |||
| 24705 | Add | ||
| 24706 | @lisp | ||
| 24707 | (gnus-group-ham-exit-processor-blackbox ham spam-use-blackbox) | ||
| 24708 | (gnus-group-spam-exit-processor-blackbox spam spam-use-blackbox) | ||
| 24709 | @end lisp | ||
| 24710 | 25242 | ||
| 24711 | to @code{spam-list-of-processors}. | 25243 | Write @code{spam-blackbox-register-routine} and |
| 24712 | 25244 | @code{spam-blackbox-unregister-routine} using the bogofilter | |
| 24713 | Add | 25245 | register/unregister routines as a start, or other restister/unregister |
| 24714 | @lisp | 25246 | routines more appropriate to Blackbox, if Blackbox can |
| 24715 | (spam-use-blackbox spam-blackbox-register-routine | 25247 | register/unregister spam and ham. |
| 24716 | nil | ||
| 24717 | spam-blackbox-unregister-routine | ||
| 24718 | nil) | ||
| 24719 | @end lisp | ||
| 24720 | |||
| 24721 | to @code{spam-registration-functions}. Write the register/unregister | ||
| 24722 | routines using the bogofilter register/unregister routines as a | ||
| 24723 | start, or other register/unregister routines more appropriate to | ||
| 24724 | Blackbox. | ||
| 24725 | 25248 | ||
| 24726 | @item | 25249 | @item |
| 24727 | Functionality | 25250 | Functionality |
| 24728 | 25251 | ||
| 24729 | Write the @code{spam-check-blackbox} function. It should return | 25252 | The @code{spam-check-blackbox} function should return @samp{nil} or |
| 24730 | @samp{nil} or @code{spam-split-group}, observing the other | 25253 | @code{spam-split-group}, observing the other conventions. See the |
| 24731 | conventions. See the existing @code{spam-check-*} functions for | 25254 | existing @code{spam-check-*} functions for examples of what you can |
| 24732 | examples of what you can do, and stick to the template unless you | 25255 | do, and stick to the template unless you fully understand the reasons |
| 24733 | fully understand the reasons why you aren't. | 25256 | why you aren't. |
| 24734 | |||
| 24735 | Make sure to add @code{spam-use-blackbox} to | ||
| 24736 | @code{spam-list-of-statistical-checks} if Blackbox is a statistical | ||
| 24737 | mail analyzer that needs the full message body to operate. | ||
| 24738 | 25257 | ||
| 24739 | @end enumerate | 25258 | @end enumerate |
| 24740 | 25259 | ||
| @@ -24749,8 +25268,8 @@ Note you don't have to provide a spam or a ham processor. Only | |||
| 24749 | provide them if Blackbox supports spam or ham processing. | 25268 | provide them if Blackbox supports spam or ham processing. |
| 24750 | 25269 | ||
| 24751 | Also, ham and spam processors are being phased out as single | 25270 | Also, ham and spam processors are being phased out as single |
| 24752 | variables. Instead the form @code{'(spam spam-use-blackbox)} or | 25271 | variables. Instead the form @code{(spam spam-use-blackbox)} or |
| 24753 | @code{'(ham spam-use-blackbox)} is favored. For now, spam/ham | 25272 | @code{(ham spam-use-blackbox)} is favored. For now, spam/ham |
| 24754 | processor variables are still around but they won't be for long. | 25273 | processor variables are still around but they won't be for long. |
| 24755 | 25274 | ||
| 24756 | @lisp | 25275 | @lisp |
| @@ -24781,7 +25300,64 @@ Add | |||
| 24781 | (variable-item spam-use-blackbox) | 25300 | (variable-item spam-use-blackbox) |
| 24782 | @end lisp | 25301 | @end lisp |
| 24783 | to the @code{spam-autodetect-methods} group parameter in | 25302 | to the @code{spam-autodetect-methods} group parameter in |
| 24784 | @code{gnus.el}. | 25303 | @code{gnus.el} if Blackbox can check incoming mail for spam contents. |
| 25304 | |||
| 25305 | Finally, use the appropriate @code{spam-install-*-backend} function in | ||
| 25306 | @code{spam.el}. Here are the available functions. | ||
| 25307 | |||
| 25308 | |||
| 25309 | @enumerate | ||
| 25310 | |||
| 25311 | @item | ||
| 25312 | @code{spam-install-backend-alias} | ||
| 25313 | |||
| 25314 | This function will simply install an alias for a back end that does | ||
| 25315 | everything like the original back end. It is currently only used to | ||
| 25316 | make @code{spam-use-BBDB-exclusive} act like @code{spam-use-BBDB}. | ||
| 25317 | |||
| 25318 | @item | ||
| 25319 | @code{spam-install-nocheck-backend} | ||
| 25320 | |||
| 25321 | This function installs a back end that has no check function, but can | ||
| 25322 | register/unregister ham or spam. The @code{spam-use-gmane} back end is | ||
| 25323 | such a back end. | ||
| 25324 | |||
| 25325 | @item | ||
| 25326 | @code{spam-install-checkonly-backend} | ||
| 25327 | |||
| 25328 | This function will install a back end that can only check incoming mail | ||
| 25329 | for spam contents. It can't register or unregister messages. | ||
| 25330 | @code{spam-use-blackholes} and @code{spam-use-hashcash} are such | ||
| 25331 | back ends. | ||
| 25332 | |||
| 25333 | @item | ||
| 25334 | @code{spam-install-statistical-checkonly-backend} | ||
| 25335 | |||
| 25336 | This function installs a statistical back end (one which requires the | ||
| 25337 | full body of a message to check it) that can only check incoming mail | ||
| 25338 | for contents. @code{spam-use-regex-body} is such a filter. | ||
| 25339 | |||
| 25340 | @item | ||
| 25341 | @code{spam-install-statistical-backend} | ||
| 25342 | |||
| 25343 | This function install a statistical back end with incoming checks and | ||
| 25344 | registration/unregistration routines. @code{spam-use-bogofilter} is | ||
| 25345 | set up this way. | ||
| 25346 | |||
| 25347 | @item | ||
| 25348 | @code{spam-install-backend} | ||
| 25349 | |||
| 25350 | This is the most normal back end installation, where a back end that can | ||
| 25351 | check and register/unregister messages is set up without statistical | ||
| 25352 | abilities. The @code{spam-use-BBDB} is such a back end. | ||
| 25353 | |||
| 25354 | @item | ||
| 25355 | @code{spam-install-mover-backend} | ||
| 25356 | |||
| 25357 | Mover back ends are internal to @code{spam.el} and specifically move | ||
| 25358 | articles around when the summary is exited. You will very probably | ||
| 25359 | never install such a back end. | ||
| 25360 | @end enumerate | ||
| 24785 | 25361 | ||
| 24786 | @end enumerate | 25362 | @end enumerate |
| 24787 | 25363 | ||
| @@ -25140,6 +25716,17 @@ shut up, but will flash so many messages it will make your head swim. | |||
| 25140 | This variable works the same way as @code{gnus-verbose}, but it applies | 25716 | This variable works the same way as @code{gnus-verbose}, but it applies |
| 25141 | to the Gnus back ends instead of Gnus proper. | 25717 | to the Gnus back ends instead of Gnus proper. |
| 25142 | 25718 | ||
| 25719 | @item gnus-add-timestamp-to-message | ||
| 25720 | @vindex gnus-add-timestamp-to-message | ||
| 25721 | This variable controls whether to add timestamps to messages that are | ||
| 25722 | controlled by @code{gnus-verbose} and @code{gnus-verbose-backends} and | ||
| 25723 | are issued. The default value is @code{nil} which means never to add | ||
| 25724 | timestamp. If it is @code{log}, add timestamps to only the messages | ||
| 25725 | that go into the @samp{*Messages*} buffer (in XEmacs, it is the | ||
| 25726 | @w{@samp{ *Message-Log*}} buffer). If it is neither @code{nil} nor | ||
| 25727 | @code{log}, add timestamps not only to log messages but also to the ones | ||
| 25728 | displayed in the echo area. | ||
| 25729 | |||
| 25143 | @item nnheader-max-head-length | 25730 | @item nnheader-max-head-length |
| 25144 | @vindex nnheader-max-head-length | 25731 | @vindex nnheader-max-head-length |
| 25145 | When the back ends read straight heads of articles, they all try to read | 25732 | When the back ends read straight heads of articles, they all try to read |
| @@ -25661,8 +26248,7 @@ Wes Hardaker---@file{gnus-picon.el} and the manual section on | |||
| 25661 | Kim-Minh Kaplan---further work on the picon code. | 26248 | Kim-Minh Kaplan---further work on the picon code. |
| 25662 | 26249 | ||
| 25663 | @item | 26250 | @item |
| 25664 | Brad Miller---@file{gnus-gl.el} and the GroupLens manual section | 26251 | Brad Miller---@file{gnus-gl.el} and the GroupLens manual section. |
| 25665 | (@pxref{GroupLens}). | ||
| 25666 | 26252 | ||
| 25667 | @item | 26253 | @item |
| 25668 | Sudish Joseph---innumerable bug fixes. | 26254 | Sudish Joseph---innumerable bug fixes. |
| @@ -25703,7 +26289,7 @@ David Moore---rewrite of @file{nnvirtual.el} and many other things. | |||
| 25703 | Kevin Davidson---came up with the name @dfn{ding}, so blame him. | 26289 | Kevin Davidson---came up with the name @dfn{ding}, so blame him. |
| 25704 | 26290 | ||
| 25705 | @item | 26291 | @item |
| 25706 | François Pinard---many, many interesting and thorough bug reports, as | 26292 | Fran@,{c}ois Pinard---many, many interesting and thorough bug reports, as |
| 25707 | well as autoconf support. | 26293 | well as autoconf support. |
| 25708 | 26294 | ||
| 25709 | @end itemize | 26295 | @end itemize |
| @@ -25720,7 +26306,7 @@ Kevin Greiner, | |||
| 25720 | Jesper Harder, | 26306 | Jesper Harder, |
| 25721 | Paul Jarc, | 26307 | Paul Jarc, |
| 25722 | Simon Josefsson, | 26308 | Simon Josefsson, |
| 25723 | David Kågedal, | 26309 | David K@aa{}gedal, |
| 25724 | Richard Pieri, | 26310 | Richard Pieri, |
| 25725 | Fabrice Popineau, | 26311 | Fabrice Popineau, |
| 25726 | Daniel Quinlan, | 26312 | Daniel Quinlan, |
| @@ -25805,12 +26391,13 @@ Yoshiki Hayashi, @c Hayashi | |||
| 25805 | P. E. Jareth Hein, | 26391 | P. E. Jareth Hein, |
| 25806 | Hisashige Kenji, @c Hisashige | 26392 | Hisashige Kenji, @c Hisashige |
| 25807 | Scott Hofmann, | 26393 | Scott Hofmann, |
| 26394 | Tassilo Horn, | ||
| 25808 | Marc Horowitz, | 26395 | Marc Horowitz, |
| 25809 | Gunnar Horrigmo, | 26396 | Gunnar Horrigmo, |
| 25810 | Richard Hoskins, | 26397 | Richard Hoskins, |
| 25811 | Brad Howes, | 26398 | Brad Howes, |
| 25812 | Miguel de Icaza, | 26399 | Miguel de Icaza, |
| 25813 | François Felix Ingrand, | 26400 | Fran@,{c}ois Felix Ingrand, |
| 25814 | Tatsuya Ichikawa, @c Ichikawa | 26401 | Tatsuya Ichikawa, @c Ichikawa |
| 25815 | Ishikawa Ichiro, @c Ishikawa | 26402 | Ishikawa Ichiro, @c Ishikawa |
| 25816 | Lee Iverson, | 26403 | Lee Iverson, |
| @@ -25950,6 +26537,7 @@ actually are people who are using Gnus. Who'd'a thunk it! | |||
| 25950 | * Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. | 26537 | * Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. |
| 25951 | * Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9. | 26538 | * Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9. |
| 25952 | * Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11. | 26539 | * Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11. |
| 26540 | * No Gnus:: Very punny. | ||
| 25953 | @end menu | 26541 | @end menu |
| 25954 | 26542 | ||
| 25955 | These lists are, of course, just @emph{short} overviews of the | 26543 | These lists are, of course, just @emph{short} overviews of the |
| @@ -26109,7 +26697,7 @@ Partial thread regeneration now happens when articles are | |||
| 26109 | referred. | 26697 | referred. |
| 26110 | 26698 | ||
| 26111 | @item | 26699 | @item |
| 26112 | Gnus can make use of GroupLens predictions (@pxref{GroupLens}). | 26700 | Gnus can make use of GroupLens predictions. |
| 26113 | 26701 | ||
| 26114 | @item | 26702 | @item |
| 26115 | Picons (personal icons) can be displayed under XEmacs (@pxref{Picons}). | 26703 | Picons (personal icons) can be displayed under XEmacs (@pxref{Picons}). |
| @@ -26758,7 +27346,7 @@ Gnus is now able to take out spam from your mail and news streams | |||
| 26758 | using a wide variety of programs and filter rules. Among the supported | 27346 | using a wide variety of programs and filter rules. Among the supported |
| 26759 | methods are RBL blocklists, bogofilter and white/blacklists. Hooks | 27347 | methods are RBL blocklists, bogofilter and white/blacklists. Hooks |
| 26760 | for easy use of external packages such as SpamAssassin and Hashcash | 27348 | for easy use of external packages such as SpamAssassin and Hashcash |
| 26761 | are also new. @xref{Thwarting Email Spam}. | 27349 | are also new. @ref{Thwarting Email Spam} and @ref{Spam Package}. |
| 26762 | @c FIXME: @xref{Spam Package}?. Should this be under Misc? | 27350 | @c FIXME: @xref{Spam Package}?. Should this be under Misc? |
| 26763 | 27351 | ||
| 26764 | @item | 27352 | @item |
| @@ -27325,6 +27913,15 @@ A new command which starts Gnus offline in slave mode. | |||
| 27325 | 27913 | ||
| 27326 | @end itemize | 27914 | @end itemize |
| 27327 | 27915 | ||
| 27916 | @node No Gnus | ||
| 27917 | @subsubsection No Gnus | ||
| 27918 | @cindex No Gnus | ||
| 27919 | |||
| 27920 | New features in No Gnus: | ||
| 27921 | @c FIXME: Gnus 5.12? | ||
| 27922 | |||
| 27923 | @include gnus-news.texi | ||
| 27924 | |||
| 27328 | @iftex | 27925 | @iftex |
| 27329 | 27926 | ||
| 27330 | @page | 27927 | @page |
| @@ -28416,7 +29013,9 @@ A Gnus group info (@pxref{Group Info}) is handed to the back end for | |||
| 28416 | alterations. This comes in handy if the back end really carries all | 29013 | alterations. This comes in handy if the back end really carries all |
| 28417 | the information (as is the case with virtual and imap groups). This | 29014 | the information (as is the case with virtual and imap groups). This |
| 28418 | function should destructively alter the info to suit its needs, and | 29015 | function should destructively alter the info to suit its needs, and |
| 28419 | should return a non-@code{nil} value. | 29016 | should return a non-@code{nil} value (exceptionally, |
| 29017 | @code{nntp-request-update-info} always returns @code{nil} not to waste | ||
| 29018 | the network resources). | ||
| 28420 | 29019 | ||
| 28421 | There should be no result data from this function. | 29020 | There should be no result data from this function. |
| 28422 | 29021 | ||
diff --git a/doc/misc/message.texi b/doc/misc/message.texi index 828af92fc0c..aad9cd223ea 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi | |||
| @@ -71,14 +71,14 @@ Message mode buffers. | |||
| 71 | @c Adjust ../Makefile.in if you change the following lines: | 71 | @c Adjust ../Makefile.in if you change the following lines: |
| 72 | Message is distributed with Gnus. The Gnus distribution | 72 | Message is distributed with Gnus. The Gnus distribution |
| 73 | @c | 73 | @c |
| 74 | corresponding to this manual is Gnus v5.11. | 74 | corresponding to this manual is No Gnus v0.7. |
| 75 | 75 | ||
| 76 | 76 | ||
| 77 | @node Interface | 77 | @node Interface |
| 78 | @chapter Interface | 78 | @chapter Interface |
| 79 | 79 | ||
| 80 | When a program (or a person) wants to respond to a message -- reply, | 80 | When a program (or a person) wants to respond to a message---reply, |
| 81 | follow up, forward, cancel -- the program (or person) should just put | 81 | follow up, forward, cancel---the program (or person) should just put |
| 82 | point in the buffer where the message is and call the required command. | 82 | point in the buffer where the message is and call the required command. |
| 83 | @code{Message} will then pop up a new @code{message} mode buffer with | 83 | @code{Message} will then pop up a new @code{message} mode buffer with |
| 84 | appropriate headers filled out, and the user can edit the message before | 84 | appropriate headers filled out, and the user can edit the message before |
| @@ -179,7 +179,8 @@ but you can change the behavior to suit your needs by fiddling with the | |||
| 179 | 179 | ||
| 180 | @vindex message-dont-reply-to-names | 180 | @vindex message-dont-reply-to-names |
| 181 | Addresses that match the @code{message-dont-reply-to-names} regular | 181 | Addresses that match the @code{message-dont-reply-to-names} regular |
| 182 | expression will be removed from the @code{Cc} header. | 182 | expression (or list of regular expressions) will be removed from the |
| 183 | @code{Cc} header. A value of @code{nil} means exclude your name only. | ||
| 183 | 184 | ||
| 184 | @vindex message-wide-reply-confirm-recipients | 185 | @vindex message-wide-reply-confirm-recipients |
| 185 | If @code{message-wide-reply-confirm-recipients} is non-@code{nil} you | 186 | If @code{message-wide-reply-confirm-recipients} is non-@code{nil} you |
| @@ -257,7 +258,7 @@ removed before popping up the new message buffer. The default is@* | |||
| 257 | ^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-Complaints-To:\\|@* | 258 | ^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-Complaints-To:\\|@* |
| 258 | Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|@* | 259 | Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|@* |
| 259 | ^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|@* | 260 | ^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|@* |
| 260 | ^X-Payment:}. | 261 | ^X-Payment:\\|^Approved:}. |
| 261 | 262 | ||
| 262 | 263 | ||
| 263 | 264 | ||
| @@ -797,14 +798,18 @@ Insert the message headers (@code{message-insert-headers}). | |||
| 797 | @item C-c M-m | 798 | @item C-c M-m |
| 798 | @kindex C-c M-m | 799 | @kindex C-c M-m |
| 799 | @findex message-mark-inserted-region | 800 | @findex message-mark-inserted-region |
| 800 | Mark some region in the current article with enclosing tags. | 801 | Mark some region in the current article with enclosing tags. See |
| 801 | See @code{message-mark-insert-begin} and @code{message-mark-insert-end}. | 802 | @code{message-mark-insert-begin} and @code{message-mark-insert-end}. |
| 803 | When called with a prefix argument, use slrn style verbatim marks | ||
| 804 | (@samp{#v+} and @samp{#v-}). | ||
| 802 | 805 | ||
| 803 | @item C-c M-f | 806 | @item C-c M-f |
| 804 | @kindex C-c M-f | 807 | @kindex C-c M-f |
| 805 | @findex message-mark-insert-file | 808 | @findex message-mark-insert-file |
| 806 | Insert a file in the current article with enclosing tags. | 809 | Insert a file in the current article with enclosing tags. |
| 807 | See @code{message-mark-insert-begin} and @code{message-mark-insert-end}. | 810 | See @code{message-mark-insert-begin} and @code{message-mark-insert-end}. |
| 811 | When called with a prefix argument, use slrn style verbatim marks | ||
| 812 | (@samp{#v+} and @samp{#v-}). | ||
| 808 | 813 | ||
| 809 | @end table | 814 | @end table |
| 810 | 815 | ||
| @@ -1159,6 +1164,11 @@ The text is killed and replaced with the contents of the variable | |||
| 1159 | @code{message-elide-ellipsis}. The default value is to use an ellipsis | 1164 | @code{message-elide-ellipsis}. The default value is to use an ellipsis |
| 1160 | (@samp{[...]}). | 1165 | (@samp{[...]}). |
| 1161 | 1166 | ||
| 1167 | @item C-c M-k | ||
| 1168 | @kindex C-c M-k | ||
| 1169 | @findex message-kill-address | ||
| 1170 | Kill the address under point. | ||
| 1171 | |||
| 1162 | @item C-c C-z | 1172 | @item C-c C-z |
| 1163 | @kindex C-c C-z | 1173 | @kindex C-c C-z |
| 1164 | @findex message-kill-to-signature | 1174 | @findex message-kill-to-signature |
| @@ -1244,11 +1254,13 @@ Kill the message buffer and exit (@code{message-kill-buffer}). | |||
| 1244 | @section Mail Aliases | 1254 | @section Mail Aliases |
| 1245 | @cindex mail aliases | 1255 | @cindex mail aliases |
| 1246 | @cindex aliases | 1256 | @cindex aliases |
| 1257 | @cindex completion | ||
| 1258 | @cindex ecomplete | ||
| 1247 | 1259 | ||
| 1248 | @vindex message-mail-alias-type | 1260 | @vindex message-mail-alias-type |
| 1249 | The @code{message-mail-alias-type} variable controls what type of mail | 1261 | The @code{message-mail-alias-type} variable controls what type of mail |
| 1250 | alias expansion to use. Currently only one form is supported---Message | 1262 | alias expansion to use. Currently two forms are supported: |
| 1251 | uses @code{mailabbrev} to handle mail aliases. If this variable is | 1263 | @code{mailabbrev} and @code{ecomplete}. If this variable is |
| 1252 | @code{nil}, no mail alias expansion will be performed. | 1264 | @code{nil}, no mail alias expansion will be performed. |
| 1253 | 1265 | ||
| 1254 | @code{mailabbrev} works by parsing the @file{/etc/mailrc} and | 1266 | @code{mailabbrev} works by parsing the @file{/etc/mailrc} and |
| @@ -1266,6 +1278,14 @@ on) headers and press @kbd{SPC} to expand the alias. | |||
| 1266 | No expansion will be performed upon sending of the message---all | 1278 | No expansion will be performed upon sending of the message---all |
| 1267 | expansions have to be done explicitly. | 1279 | expansions have to be done explicitly. |
| 1268 | 1280 | ||
| 1281 | If you're using @code{ecomplete}, all addresses from @code{To} and | ||
| 1282 | @code{Cc} headers will automatically be put into the | ||
| 1283 | @file{~/.ecompleterc} file. When you enter text in the @code{To} and | ||
| 1284 | @code{Cc} headers, @code{ecomplete} will check out the values stored | ||
| 1285 | there and ``electrically'' say what completions are possible. To | ||
| 1286 | choose one of these completions, use the @kbd{M-n} command to move | ||
| 1287 | down to the list. Use @kbd{M-n} and @kbd{M-p} to move down and up the | ||
| 1288 | list, and @kbd{RET} to choose a completion. | ||
| 1269 | 1289 | ||
| 1270 | @node Spelling | 1290 | @node Spelling |
| 1271 | @section Spelling | 1291 | @section Spelling |
| @@ -1334,7 +1354,7 @@ installed. | |||
| 1334 | @section Message Headers | 1354 | @section Message Headers |
| 1335 | 1355 | ||
| 1336 | Message is quite aggressive on the message generation front. It has to | 1356 | Message is quite aggressive on the message generation front. It has to |
| 1337 | be -- it's a combined news and mail agent. To be able to send combined | 1357 | be---it's a combined news and mail agent. To be able to send combined |
| 1338 | messages, it has to generate all headers itself (instead of letting the | 1358 | messages, it has to generate all headers itself (instead of letting the |
| 1339 | mail/news system do it) to ensure that mail and news copies of messages | 1359 | mail/news system do it) to ensure that mail and news copies of messages |
| 1340 | look sufficiently similar. | 1360 | look sufficiently similar. |
| @@ -1373,7 +1393,7 @@ values: | |||
| 1373 | 1393 | ||
| 1374 | @table @code | 1394 | @table @code |
| 1375 | @item nil | 1395 | @item nil |
| 1376 | Just the address -- @samp{king@@grassland.com}. | 1396 | Just the address---@samp{king@@grassland.com}. |
| 1377 | 1397 | ||
| 1378 | @item parens | 1398 | @item parens |
| 1379 | @samp{king@@grassland.com (Elvis Parsley)}. | 1399 | @samp{king@@grassland.com (Elvis Parsley)}. |
| @@ -1494,6 +1514,9 @@ hidden when composing a message. | |||
| 1494 | '(not "From" "Subject" "To" "Cc" "Newsgroups")) | 1514 | '(not "From" "Subject" "To" "Cc" "Newsgroups")) |
| 1495 | @end lisp | 1515 | @end lisp |
| 1496 | 1516 | ||
| 1517 | Headers are hidden using narrowing, you can use @kbd{M-x widen} to | ||
| 1518 | expose them in the buffer. | ||
| 1519 | |||
| 1497 | @item message-header-synonyms | 1520 | @item message-header-synonyms |
| 1498 | @vindex message-header-synonyms | 1521 | @vindex message-header-synonyms |
| 1499 | A list of lists of header synonyms. E.g., if this list contains a | 1522 | A list of lists of header synonyms. E.g., if this list contains a |
| @@ -1525,6 +1548,13 @@ Regexp of headers to be removed before mailing. The default is@* | |||
| 1525 | This string is inserted at the end of the headers in all message | 1548 | This string is inserted at the end of the headers in all message |
| 1526 | buffers that are initialized as mail. | 1549 | buffers that are initialized as mail. |
| 1527 | 1550 | ||
| 1551 | @item message-generate-hashcash | ||
| 1552 | @vindex message-generate-hashcash | ||
| 1553 | Variable that indicates whether @samp{X-Hashcash} headers | ||
| 1554 | should be computed for the message. @xref{Hashcash, ,Hashcash,gnus, | ||
| 1555 | The Gnus Manual}. If @code{opportunistic}, only generate the headers | ||
| 1556 | when it doesn't lead to the user having to wait. | ||
| 1557 | |||
| 1528 | @end table | 1558 | @end table |
| 1529 | 1559 | ||
| 1530 | 1560 | ||
| @@ -1541,10 +1571,10 @@ buffers that are initialized as mail. | |||
| 1541 | @findex smtpmail-send-it | 1571 | @findex smtpmail-send-it |
| 1542 | @findex feedmail-send-it | 1572 | @findex feedmail-send-it |
| 1543 | Function used to send the current buffer as mail. The default is | 1573 | Function used to send the current buffer as mail. The default is |
| 1544 | @code{message-send-mail-with-sendmail}. Other valid values include | 1574 | @code{message-send-mail-with-sendmail}, or @code{smtpmail-send-it} |
| 1575 | according to the system. Other valid values include | ||
| 1545 | @code{message-send-mail-with-mh}, @code{message-send-mail-with-qmail}, | 1576 | @code{message-send-mail-with-mh}, @code{message-send-mail-with-qmail}, |
| 1546 | @code{message-smtpmail-send-it}, @code{smtpmail-send-it} and | 1577 | @code{message-smtpmail-send-it} and @code{feedmail-send-it}. |
| 1547 | @code{feedmail-send-it}. | ||
| 1548 | 1578 | ||
| 1549 | @item message-mh-deletable-headers | 1579 | @item message-mh-deletable-headers |
| 1550 | @vindex message-mh-deletable-headers | 1580 | @vindex message-mh-deletable-headers |
| @@ -1859,6 +1889,9 @@ that look like: | |||
| 1859 | Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes: | 1889 | Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes: |
| 1860 | @end example | 1890 | @end example |
| 1861 | 1891 | ||
| 1892 | @c FIXME: Add `message-insert-formated-citation-line' and | ||
| 1893 | @c `message-citation-line-format' | ||
| 1894 | |||
| 1862 | Point will be at the beginning of the body of the message when this | 1895 | Point will be at the beginning of the body of the message when this |
| 1863 | function is called. | 1896 | function is called. |
| 1864 | 1897 | ||
| @@ -1873,21 +1906,29 @@ Article Highlighting, gnus, The Gnus Manual}, for details. | |||
| 1873 | @cindex yanking | 1906 | @cindex yanking |
| 1874 | @cindex quoting | 1907 | @cindex quoting |
| 1875 | When you are replying to or following up an article, you normally want | 1908 | When you are replying to or following up an article, you normally want |
| 1876 | to quote the person you are answering. Inserting quoted text is done | 1909 | to quote the person you are answering. Inserting quoted text is done by |
| 1877 | by @dfn{yanking}, and each line you yank will have | 1910 | @dfn{yanking}, and each line you yank will have |
| 1878 | @code{message-yank-prefix} prepended to it (except for quoted and | 1911 | @code{message-yank-prefix} prepended to it (except for quoted lines |
| 1879 | empty lines which uses @code{message-yank-cited-prefix}). The default | 1912 | which use @code{message-yank-cited-prefix} and empty lines which use |
| 1880 | is @samp{> }. | 1913 | @code{message-yank-empty-prefix}). The default is @samp{> }. |
| 1881 | 1914 | ||
| 1882 | @item message-yank-cited-prefix | 1915 | @item message-yank-cited-prefix |
| 1883 | @vindex message-yank-cited-prefix | 1916 | @vindex message-yank-cited-prefix |
| 1884 | @cindex yanking | 1917 | @cindex yanking |
| 1885 | @cindex cited | 1918 | @cindex cited |
| 1886 | @cindex quoting | 1919 | @cindex quoting |
| 1887 | When yanking text from an article which contains no text or already | 1920 | When yanking text from an article which contains already cited text, |
| 1888 | cited text, each line will be prefixed with the contents of this | 1921 | each line will be prefixed with the contents of this variable. The |
| 1889 | variable. The default is @samp{>}. See also | 1922 | default is @samp{>}. See also @code{message-yank-prefix}. |
| 1890 | @code{message-yank-prefix}. | 1923 | |
| 1924 | @item message-yank-empty-prefix | ||
| 1925 | @vindex message-yank-empty-prefix | ||
| 1926 | @cindex yanking | ||
| 1927 | @cindex quoting | ||
| 1928 | When yanking text from an article, each empty line will be prefixed with | ||
| 1929 | the contents of this variable. The default is @samp{>}. You can set | ||
| 1930 | this variable to an empty string to split the cited text into paragraphs | ||
| 1931 | automatically. See also @code{message-yank-prefix}. | ||
| 1891 | 1932 | ||
| 1892 | @item message-indentation-spaces | 1933 | @item message-indentation-spaces |
| 1893 | @vindex message-indentation-spaces | 1934 | @vindex message-indentation-spaces |
| @@ -1932,8 +1973,18 @@ If this variable is @code{nil}, no signature will be inserted at all. | |||
| 1932 | @item message-signature-file | 1973 | @item message-signature-file |
| 1933 | @vindex message-signature-file | 1974 | @vindex message-signature-file |
| 1934 | File containing the signature to be inserted at the end of the buffer. | 1975 | File containing the signature to be inserted at the end of the buffer. |
| 1976 | If a path is specified, the value of | ||
| 1977 | @code{message-signature-directory} is ignored, even if set. | ||
| 1935 | The default is @file{~/.signature}. | 1978 | The default is @file{~/.signature}. |
| 1936 | 1979 | ||
| 1980 | @item message-signature-directory | ||
| 1981 | @vindex message-signature-directory | ||
| 1982 | Name of directory containing signature files. Comes in handy if you | ||
| 1983 | have many such files, handled via Gnus posting styles for instance. | ||
| 1984 | If @code{nil} (the default), @code{message-signature-file} is expected | ||
| 1985 | to specify the directory if needed. | ||
| 1986 | |||
| 1987 | |||
| 1937 | @item message-signature-insert-empty-line | 1988 | @item message-signature-insert-empty-line |
| 1938 | @vindex message-signature-insert-empty-line | 1989 | @vindex message-signature-insert-empty-line |
| 1939 | If @code{t} (the default value) an empty line is inserted before the | 1990 | If @code{t} (the default value) an empty line is inserted before the |
| @@ -1968,6 +2019,13 @@ Emacsen.) @xref{Charset Translation, , Charset Translation, emacs-mime, | |||
| 1968 | Emacs MIME Manual}, for details on the @sc{mule}-to-@acronym{MIME} | 2019 | Emacs MIME Manual}, for details on the @sc{mule}-to-@acronym{MIME} |
| 1969 | translation process. | 2020 | translation process. |
| 1970 | 2021 | ||
| 2022 | @item message-fill-column | ||
| 2023 | @vindex message-fill-column | ||
| 2024 | @cindex auto-fill | ||
| 2025 | Local value for the column beyond which automatic line-wrapping should | ||
| 2026 | happen for message buffers. If non-nil (the default), also turn on | ||
| 2027 | auto-fill in message buffers. | ||
| 2028 | |||
| 1971 | @item message-signature-separator | 2029 | @item message-signature-separator |
| 1972 | @vindex message-signature-separator | 2030 | @vindex message-signature-separator |
| 1973 | Regexp matching the signature separator. It is @samp{^-- *$} by | 2031 | Regexp matching the signature separator. It is @samp{^-- *$} by |
| @@ -2057,6 +2115,12 @@ Hook run when canceling news articles. | |||
| 2057 | @vindex message-mode-syntax-table | 2115 | @vindex message-mode-syntax-table |
| 2058 | Syntax table used in message mode buffers. | 2116 | Syntax table used in message mode buffers. |
| 2059 | 2117 | ||
| 2118 | @item message-cite-articles-with-x-no-archive | ||
| 2119 | @vindex message-cite-articles-with-x-no-archive | ||
| 2120 | If non-@code{nil}, don't strip quoted text from articles that have | ||
| 2121 | @samp{X-No-Archive} set. Even if this variable isn't set, you can | ||
| 2122 | undo the stripping by hitting the @code{undo} keystroke. | ||
| 2123 | |||
| 2060 | @item message-strip-special-text-properties | 2124 | @item message-strip-special-text-properties |
| 2061 | @vindex message-strip-special-text-properties | 2125 | @vindex message-strip-special-text-properties |
| 2062 | Emacs has a number of special text properties which can break message | 2126 | Emacs has a number of special text properties which can break message |
| @@ -2089,7 +2153,7 @@ the buffer where the message is. | |||
| 2089 | 2153 | ||
| 2090 | @item function | 2154 | @item function |
| 2091 | A function to be called if @var{predicate} returns non-@code{nil}. | 2155 | A function to be called if @var{predicate} returns non-@code{nil}. |
| 2092 | @var{function} is called with one parameter -- the prefix. | 2156 | @var{function} is called with one parameter---the prefix. |
| 2093 | @end table | 2157 | @end table |
| 2094 | 2158 | ||
| 2095 | The default is: | 2159 | The default is: |
diff --git a/doc/misc/pgg.texi b/doc/misc/pgg.texi index ca29e2184e5..3a171297740 100644 --- a/doc/misc/pgg.texi +++ b/doc/misc/pgg.texi | |||
| @@ -345,11 +345,11 @@ singleton object wrapped with the luna object system. | |||
| 345 | Since PGG was designed for accessing and developing PGP functionality, | 345 | Since PGG was designed for accessing and developing PGP functionality, |
| 346 | the architecture had to be designed not just for interoperability but | 346 | the architecture had to be designed not just for interoperability but |
| 347 | also for extensiblity. In this chapter we explore the architecture | 347 | also for extensiblity. In this chapter we explore the architecture |
| 348 | while finding out how to write the PGG backend. | 348 | while finding out how to write the PGG back end. |
| 349 | 349 | ||
| 350 | @menu | 350 | @menu |
| 351 | * Initializing:: | 351 | * Initializing:: |
| 352 | * Backend methods:: | 352 | * Back end methods:: |
| 353 | * Getting output:: | 353 | * Getting output:: |
| 354 | @end menu | 354 | @end menu |
| 355 | 355 | ||
| @@ -373,12 +373,12 @@ variable @code{pgg-scheme-gpg-instance} and will be reused from now on. | |||
| 373 | @end lisp | 373 | @end lisp |
| 374 | 374 | ||
| 375 | The name of the function must follow the | 375 | The name of the function must follow the |
| 376 | regulation---@code{pgg-make-scheme-} follows the backend name. | 376 | regulation---@code{pgg-make-scheme-} follows the back end name. |
| 377 | 377 | ||
| 378 | @node Backend methods | 378 | @node Back end methods |
| 379 | @section Backend methods | 379 | @section Back end methods |
| 380 | 380 | ||
| 381 | In each backend, these methods must be present. The output of these | 381 | In each back end, these methods must be present. The output of these |
| 382 | methods is stored in special buffers (@ref{Getting output}), so that | 382 | methods is stored in special buffers (@ref{Getting output}), so that |
| 383 | these methods must tell the status of the execution. | 383 | these methods must tell the status of the execution. |
| 384 | 384 | ||
| @@ -435,7 +435,7 @@ On success, it returns @code{t}, otherwise @code{nil}. | |||
| 435 | @node Getting output | 435 | @node Getting output |
| 436 | @section Getting output | 436 | @section Getting output |
| 437 | 437 | ||
| 438 | The output of the backend methods (@ref{Backend methods}) is stored in | 438 | The output of the back end methods (@ref{Back end methods}) is stored in |
| 439 | special buffers, so that these methods must tell the status of the | 439 | special buffers, so that these methods must tell the status of the |
| 440 | execution. | 440 | execution. |
| 441 | 441 | ||
diff --git a/doc/misc/sasl.texi b/doc/misc/sasl.texi new file mode 100644 index 00000000000..9cd465abb26 --- /dev/null +++ b/doc/misc/sasl.texi | |||
| @@ -0,0 +1,270 @@ | |||
| 1 | \input texinfo @c -*-texinfo-*- | ||
| 2 | |||
| 3 | @setfilename sasl.info | ||
| 4 | |||
| 5 | @set VERSION 0.2 | ||
| 6 | |||
| 7 | @dircategory Emacs | ||
| 8 | @direntry | ||
| 9 | * SASL: (sasl). The Emacs SASL library. | ||
| 10 | @end direntry | ||
| 11 | |||
| 12 | @settitle Emacs SASL Library @value{VERSION} | ||
| 13 | |||
| 14 | @ifinfo | ||
| 15 | This file describes the Emacs SASL library. | ||
| 16 | |||
| 17 | Copyright @copyright{} 2004, 2005, 2006 Free Software Foundation, Inc. | ||
| 18 | Copyright @copyright{} 2000 Daiki Ueno. | ||
| 19 | |||
| 20 | Permission is granted to copy, distribute and/or modify this document | ||
| 21 | under the terms of the GNU Free Documentation License, Version 1.2 or | ||
| 22 | any later version published by the Free Software Foundation; with no | ||
| 23 | Invariant Sections, with no Front-Cover Texts, and with no Back-Cover | ||
| 24 | Texts. A copy of the license is included in the section entitled "GNU | ||
| 25 | Free Documentation License". | ||
| 26 | @end ifinfo | ||
| 27 | |||
| 28 | @tex | ||
| 29 | |||
| 30 | @titlepage | ||
| 31 | @title Emacs SASL Library | ||
| 32 | |||
| 33 | @author by Daiki Ueno | ||
| 34 | @page | ||
| 35 | |||
| 36 | @vskip 0pt plus 1filll | ||
| 37 | Copyright @copyright{} 2000 Daiki Ueno. | ||
| 38 | |||
| 39 | Permission is granted to copy, distribute and/or modify this document | ||
| 40 | under the terms of the GNU Free Documentation License, Version 1.2 or | ||
| 41 | any later version published by the Free Software Foundation; with no | ||
| 42 | Invariant Sections, with no Front-Cover Texts, and with no Back-Cover | ||
| 43 | Texts. A copy of the license is included in the section entitled "GNU | ||
| 44 | Free Documentation License". | ||
| 45 | @end titlepage | ||
| 46 | @page | ||
| 47 | |||
| 48 | @end tex | ||
| 49 | |||
| 50 | @node Top | ||
| 51 | @top Emacs SASL | ||
| 52 | This manual describes the Emacs SASL library. | ||
| 53 | |||
| 54 | A common interface to share several authentication mechanisms between | ||
| 55 | applications using different protocols. | ||
| 56 | |||
| 57 | @menu | ||
| 58 | * Overview:: What Emacs SASL library is. | ||
| 59 | * How to use:: Adding authentication support to your applications. | ||
| 60 | * Data types:: | ||
| 61 | * Back end drivers:: Writing your own drivers. | ||
| 62 | * Index:: | ||
| 63 | * Function Index:: | ||
| 64 | * Variable Index:: | ||
| 65 | @end menu | ||
| 66 | |||
| 67 | @node Overview | ||
| 68 | @chapter Overview | ||
| 69 | |||
| 70 | @sc{sasl} is short for @dfn{Simple Authentication and Security Layer}. | ||
| 71 | This standard is documented in RFC2222. It provides a simple method for | ||
| 72 | adding authentication support to various application protocols. | ||
| 73 | |||
| 74 | The toplevel interface of this library is inspired by Java @sc{sasl} | ||
| 75 | Application Program Interface. It defines an abstraction over a series | ||
| 76 | of authentication mechanism drivers (@ref{Back end drivers}). | ||
| 77 | |||
| 78 | Back end drivers are designed to be close as possible to the | ||
| 79 | authentication mechanism. You can access the additional configuration | ||
| 80 | information anywhere from the implementation. | ||
| 81 | |||
| 82 | @node How to use | ||
| 83 | @chapter How to use | ||
| 84 | |||
| 85 | (Not yet written). | ||
| 86 | |||
| 87 | To use Emacs SASL library, please evaluate following expression at the | ||
| 88 | beginning of your application program. | ||
| 89 | |||
| 90 | @lisp | ||
| 91 | (require 'sasl) | ||
| 92 | @end lisp | ||
| 93 | |||
| 94 | If you want to check existence of sasl.el at runtime, instead you | ||
| 95 | can list autoload settings for functions you want. | ||
| 96 | |||
| 97 | @node Data types | ||
| 98 | @chapter Data types | ||
| 99 | |||
| 100 | There are three data types to be used for carrying a negotiated | ||
| 101 | security layer---a mechanism, a client parameter and an authentication | ||
| 102 | step. | ||
| 103 | |||
| 104 | @menu | ||
| 105 | * Mechanisms:: | ||
| 106 | * Clients:: | ||
| 107 | * Steps:: | ||
| 108 | @end menu | ||
| 109 | |||
| 110 | @node Mechanisms | ||
| 111 | @section Mechanisms | ||
| 112 | |||
| 113 | A mechanism (@code{sasl-mechanism} object) is a schema of the @sc{sasl} | ||
| 114 | authentication mechanism driver. | ||
| 115 | |||
| 116 | @defvar sasl-mechanisms | ||
| 117 | A list of mechanism names. | ||
| 118 | @end defvar | ||
| 119 | |||
| 120 | @defun sasl-find-mechanism mechanisms | ||
| 121 | |||
| 122 | Retrieve an apropriate mechanism. | ||
| 123 | This function compares @var{mechanisms} and @code{sasl-mechanisms} then | ||
| 124 | returns apropriate @code{sasl-mechanism} object. | ||
| 125 | |||
| 126 | @example | ||
| 127 | (let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5"))) | ||
| 128 | (setq mechanism (sasl-find-mechanism server-supported-mechanisms))) | ||
| 129 | @end example | ||
| 130 | |||
| 131 | @end defun | ||
| 132 | |||
| 133 | @defun sasl-mechanism-name mechanism | ||
| 134 | Return name of mechanism, a string. | ||
| 135 | @end defun | ||
| 136 | |||
| 137 | If you want to write an authentication mechanism driver (@ref{Back end | ||
| 138 | drivers}), use @code{sasl-make-mechanism} and modify | ||
| 139 | @code{sasl-mechanisms} and @code{sasl-mechanism-alist} correctly. | ||
| 140 | |||
| 141 | @defun sasl-make-mechanism name steps | ||
| 142 | Allocate a @code{sasl-mechanism} object. | ||
| 143 | This function takes two parameters---name of the mechanism, and a list | ||
| 144 | of authentication functions. | ||
| 145 | |||
| 146 | @example | ||
| 147 | (defconst sasl-anonymous-steps | ||
| 148 | '(identity ;no initial response | ||
| 149 | sasl-anonymous-response)) | ||
| 150 | |||
| 151 | (put 'sasl-anonymous 'sasl-mechanism | ||
| 152 | (sasl-make-mechanism "ANONYMOUS" sasl-anonymous-steps)) | ||
| 153 | @end example | ||
| 154 | |||
| 155 | @end defun | ||
| 156 | |||
| 157 | @node Clients | ||
| 158 | @section Clients | ||
| 159 | |||
| 160 | A client (@code{sasl-client} object) initialized with four | ||
| 161 | parameters---a mechanism, a user name, name of the service and name of | ||
| 162 | the server. | ||
| 163 | |||
| 164 | @defun sasl-make-client mechanism name service server | ||
| 165 | Prepare a @code{sasl-client} object. | ||
| 166 | @end defun | ||
| 167 | |||
| 168 | @defun sasl-client-mechanism client | ||
| 169 | Return the mechanism (@code{sasl-mechanism} object) of client. | ||
| 170 | @end defun | ||
| 171 | |||
| 172 | @defun sasl-client-name client | ||
| 173 | Return the authorization name of client, a string. | ||
| 174 | @end defun | ||
| 175 | |||
| 176 | @defun sasl-client-service client | ||
| 177 | Return the service name of client, a string. | ||
| 178 | @end defun | ||
| 179 | |||
| 180 | @defun sasl-client-server client | ||
| 181 | Return the server name of client, a string. | ||
| 182 | @end defun | ||
| 183 | |||
| 184 | If you want to specify additional configuration properties, please use | ||
| 185 | @code{sasl-client-set-property}. | ||
| 186 | |||
| 187 | @defun sasl-client-set-property client property value | ||
| 188 | Add the given property/value to client. | ||
| 189 | @end defun | ||
| 190 | |||
| 191 | @defun sasl-client-property client property | ||
| 192 | Return the value of the property of client. | ||
| 193 | @end defun | ||
| 194 | |||
| 195 | @defun sasl-client-set-properties client plist | ||
| 196 | Destructively set the properties of client. | ||
| 197 | The second argument is the new property list. | ||
| 198 | @end defun | ||
| 199 | |||
| 200 | @defun sasl-client-properties client | ||
| 201 | Return the whole property list of client configuration. | ||
| 202 | @end defun | ||
| 203 | |||
| 204 | @node Steps | ||
| 205 | @section Steps | ||
| 206 | |||
| 207 | A step (@code{sasl-step} object) is an abstraction of authentication | ||
| 208 | ``step'' which holds the response value and the next entry point for the | ||
| 209 | authentication process (the latter is not accessible). | ||
| 210 | |||
| 211 | @defun sasl-step-data step | ||
| 212 | Return the data which @var{step} holds, a string. | ||
| 213 | @end defun | ||
| 214 | |||
| 215 | @defun sasl-step-set-data step data | ||
| 216 | Store @var{data} string to @var{step}. | ||
| 217 | @end defun | ||
| 218 | |||
| 219 | To get the initial response, you should call the function | ||
| 220 | @code{sasl-next-step} with the second argument @code{nil}. | ||
| 221 | |||
| 222 | @example | ||
| 223 | (setq name (sasl-mechanism-name mechanism)) | ||
| 224 | @end example | ||
| 225 | |||
| 226 | At this point we could send the command which starts a SASL | ||
| 227 | authentication protocol exchange. For example, | ||
| 228 | |||
| 229 | @example | ||
| 230 | (process-send-string | ||
| 231 | process | ||
| 232 | (if (sasl-step-data step) ;initial response | ||
| 233 | (format "AUTH %s %s\r\n" name (base64-encode-string (sasl-step-data step) t)) | ||
| 234 | (format "AUTH %s\r\n" name))) | ||
| 235 | @end example | ||
| 236 | |||
| 237 | To go on with the authentication process, all you have to do is call | ||
| 238 | @code{sasl-next-step} consecutively. | ||
| 239 | |||
| 240 | @defun sasl-next-step client step | ||
| 241 | Perform the authentication step. | ||
| 242 | At the first time @var{step} should be set to @code{nil}. | ||
| 243 | @end defun | ||
| 244 | |||
| 245 | @node Back end drivers | ||
| 246 | @chapter Back end drivers | ||
| 247 | |||
| 248 | (Not yet written). | ||
| 249 | |||
| 250 | @node Index | ||
| 251 | @chapter Index | ||
| 252 | @printindex cp | ||
| 253 | |||
| 254 | @node Function Index | ||
| 255 | @chapter Function Index | ||
| 256 | @printindex fn | ||
| 257 | |||
| 258 | @node Variable Index | ||
| 259 | @chapter Variable Index | ||
| 260 | @printindex vr | ||
| 261 | |||
| 262 | @summarycontents | ||
| 263 | @contents | ||
| 264 | @bye | ||
| 265 | |||
| 266 | @c End: | ||
| 267 | |||
| 268 | @ignore | ||
| 269 | arch-tag: dc9650be-a953-40bf-bc55-24fe5f19d875 | ||
| 270 | @end ignore | ||
diff --git a/doc/misc/sieve.texi b/doc/misc/sieve.texi index af2132e4997..9c31f77f4d8 100644 --- a/doc/misc/sieve.texi +++ b/doc/misc/sieve.texi | |||
| @@ -236,9 +236,9 @@ if address "sender" "owner-w3-beta@@xemacs.org" @{ | |||
| 236 | @} | 236 | @} |
| 237 | @end example | 237 | @end example |
| 238 | 238 | ||
| 239 | A few mailing lists do not use the @samp{Sender:} header, but does | 239 | A few mailing lists do not use the @samp{Sender:} header, but has a |
| 240 | contain some unique identifier in some other header. The following is | 240 | unique identifier in some other header. The following is not a |
| 241 | not a complete script, it assumes that @code{fileinto} has already been | 241 | complete script, it assumes that @code{fileinto} has already been |
| 242 | required. | 242 | required. |
| 243 | 243 | ||
| 244 | @example | 244 | @example |