2003-04-30 Reiner Steib <Reiner.Steib@gmx.de>
* GNUS-NEWS: Added Article Buttons. Added Upgrading (from Simon
- Josefsson).
+ Josefsson). Add gnus-mime-delete-part, markup fixes and some
+ other corrections. Mention Gnus FAQ.
+
2003-04-30 Jesper Harder <harder@ifa.au.dk>
\f
* Changes in Oort Gnus
+** The revised Gnus FAQ is included in the manual.
+See the info node "Frequently Asked Questions".
+
** Upgrading from previous (stable) version if you have used Oort.
If you have tried Oort (the unstable Gnus branch leading to this
release) but went back to a stable version, be careful when upgrading
to this version. In particular, you will probably want to remove all
.marks (nnml) and .mrk (nnfolder) files, so that flags are read from
-your .newsrc.eld instead of from the .marks/.mrk file where this
+your ~/.newsrc.eld instead of from the .marks/.mrk file where this
release store flags. See a later entry for more information about
marks. Note that downgrading isn't save in general.
** message-insinuate-rmail
Adding (message-insinuate-rmail) and (setq mail-user-agent
-'gnus-user-agent) in .emacs convinces RMAIL to compose, reply and
+'gnus-user-agent) in .emacs convinces Rmail to compose, reply and
forward messages in message-mode, where you can enjoy the power of
MML.
(define-key message-minibuffer-local-map [(tab)] 'bbdb-complete-name)
-** Externalize attachments.
+** Externalizing and deleting of attachments.
If gnus-gcc-externalize-attachments (or
message-fcc-externalize-attachments) is non-nil, attach local files as
external parts.
-Command gnus-mime-save-part-and-strip (bound to \C-o on MIME buttons)
-saves a part and replaces the part with an external one. It works only
-on back ends that support editing.
+The command gnus-mime-save-part-and-strip (bound to `C-o' on MIME
+buttons) saves a part and replaces the part with an external one.
+gnus-mime-delete-part (bound to `d' on MIME buttons) removes a part.
+It works only on back ends that support editing.
** gnus-default-charset
** Message supports the Importance: (RFC 2156) header.
-In the message buffer, C-c C-f C-i or C-c C-u cycles through the valid
-values.
+In the message buffer, `C-c C-f C-i' or `C-c C-u' cycles through the
+valid values.
** Gnus supports Cancel Locks in News.
** The nnml and nnfolder backends store marks for each groups.
This makes it possible to take backup of nnml/nnfolder servers/groups
-separately of .newsrc.eld, while preserving marks. It also makes it
+separately of ~/.newsrc.eld, while preserving marks. It also makes it
possible to share articles and marks between users (without sharing
-the .newsrc.eld file) within e.g. a department. It works by storing
-the marks stored in .newsrc.eld in a per-group file ".marks" (for
+the ~/.newsrc.eld file) within e.g. a department. It works by storing
+the marks stored in ~/.newsrc.eld in a per-group file ".marks" (for
nnml) and "groupname.mrk" (for nnfolder, named "groupname"). If the
nnml/nnfolder is moved to another machine, Gnus will automatically use
-the .marks or .mrk file instead of the information in .newsrc.eld.
+the .marks or .mrk file instead of the information in ~/.newsrc.eld.
The new server variables `nnml-marks-is-evil' and
`nnfolder-marks-is-evil' can be used to disable this feature.
been renamed to "Gnus".
** The menu bar item (in Message mode) named "MML" has been renamed to
-"Attachments".
+"Attachments". Note that this menu also contains security related
+stuff, like signing and encryption.
** gnus-group-charset-alist and gnus-group-ignored-charsets-alist.
2003-04-30 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+ * gnus-int.el (gnus-open-server): Try to open unagentized servers
+ even when unplugged.
+
+2003-04-30 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus-art.el (gnus-button-prefer-mid-or-mail): Fixed typo in
+ doc-string.
+
+2003-05-01 Steve Youngs <youngs@xemacs.org>
+
+ * lpath.el: Add a section for non-Mule XEmacsen.
+ fbind `find-charset-string' and `coding-system-base' in that
+ section.
+
+ * gnus-util.el (gnus-completing-read-maybe-default): New.
+ (gnus-completing-read): Use it.
+
+ * mm-view.el (mm-view-pkcs7-decrypt): Ditto.
+
+ * gnus-art.el (gnus-read-string): New.
+ (gnus-summary-pipe-to-muttprint): Use it.
+
+ * gnus-xmas.el (gnus-xmas-open-network-stream): New.
+
+ * dns.el (dns-make-network-process): Use it.
+
+ Take care of some differences between XEmacs 21.1 and newer
+ versions of XEmacs.
+
+2003-04-30 Teodor Zlatanov <tzz@bwh.harvard.edu>
+
+ * gnus-registry.el (gnus-registry-split-fancy-with-parent): added
+ diagnostic message
+ (gnus-registry-grep-in-list): don't run when word is nil
+ (gnus-registry-fetch-message-id-fast): new function
+ (gnus-registry-delete-group, gnus-registry-add-group): make sure
+ the id and group are not nil
+ (gnus-registry-register-message-ids): new function
+ (gnus-register-action): optimized logical flow
+ (gnus-summary-prepare-hook): added gnus-registry-register-message-ids
+
+2003-04-30 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+
* gnus-delay.el (gnus-delay-article): Call
`gnus-agent-queue-setup' to create the delay group.
;;; Interface functions.
+(autoload 'gnus-xmacs-open-network-stream "gnus-xmas" nil nil 'macro)
+
(defmacro dns-make-network-process (server)
(if (featurep 'xemacs)
`(let ((coding-system-for-read 'binary)
(coding-system-for-write 'binary))
- (open-network-stream "dns" (current-buffer) ,server "domain" 'udp))
+ (gnus-xmas-open-network-stream "dns" (current-buffer) ,server "domain" 'udp))
`(let ((server ,server)
(coding-system-for-read 'binary)
(coding-system-for-write 'binary)
(shell-command-on-region (point-min) (point-max) command nil)))
(setq gnus-last-shell-command command))
+(defmacro gnus-read-string (prompt &optional initial-contents history
+ default-value)
+ "Like `read-string' but allow for older XEmacsen that don't have the 5th arg."
+ (if (and (featurep 'xemacs)
+ (< emacs-minor-version 2))
+ `(read-string ,prompt ,initial-contents ,history)
+ `(read-string ,prompt ,initial-contents ,history ,default-value)))
+
(defun gnus-summary-pipe-to-muttprint (&optional command)
"Pipe this article to muttprint."
- (setq command (read-string
+ (setq command (gnus-read-string
"Print using command: " gnus-summary-muttprint-program
nil gnus-summary-muttprint-program))
(gnus-summary-save-in-pipe command))
"What to do when the button on a string as \"foo123@bar.invalid\" is pushed.
Strings like this can be either a message ID or a mail address. If it is one
of the symbols `mid' or `mail', Gnus will always assume that the string is a
-message ID or a mail address, respectivly. If this variable is set to the
+message ID or a mail address, respectively. If this variable is set to the
symbol `ask', always query the user what do do. If it is a function, this
function will be called with the string as it's only argument. The function
must return `mid', `mail', `invalid' or `ask'."
((eq (nth 1 state) 'offline)
;; If this method was previously opened offline, we just return t.
t)
- ((not gnus-plugged)
+ ((and (not gnus-plugged)
+ (member gnus-command-method
+ gnus-agent-covered-methods))
;; I'm opening servers while unplugged. Set the status to
;; either 'offline or 'denied without asking (I'm assuming
;; that the user wants to go 'offline on every agentized
;; server when opening while unplugged.)
(setcar (cdr state) (if (and gnus-agent
- (gnus-agent-method-p gnus-command-method))
- (or gnus-server-unopen-status
- 'offline)
- 'denied))
+ (gnus-agent-method-p gnus-command-method))
+ (or gnus-server-unopen-status
+ 'offline)
+ 'denied))
(if (eq (nth 1 state) 'offline)
;; Invoke the agent's backend to open the offline server.
from
to)
- (cond
- ((equal 'delete action) (gnus-registry-delete-group id from))
- (t (gnus-registry-add-group id to)))))
+ ;; All except copy will need a delete
+ (gnus-registry-delete-group id from)
+
+ (when (equal 'copy action)
+ (gnus-registry-add-group id from)) ; undo the delete
+
+ (gnus-registry-add-group id to)))
(defun gnus-register-spool-action (id group)
;; do not process the draft IDs
nnmail-split-fancy-with-parent-ignore-groups))
(setq res nil)))
references)
+ (gnus-message
+ 5
+ "gnus-registry-split-fancy-with-parent traced %s to group %s"
+ refstr (if res res "nil"))
res)))
+(defun gnus-registry-register-message-ids ()
+ "Register the Message-ID of every article in the group"
+ (dolist (article gnus-newsgroup-articles)
+ (let ((id (gnus-registry-fetch-message-id-fast article)))
+ (unless (gnus-registry-fetch-group id)
+ (gnus-message 9 "Registry: Registering article %d with group %s"
+ article gnus-newsgroup-name)
+ (gnus-registry-add-group (gnus-registry-fetch-message-id-fast article)
+ gnus-newsgroup-name)))))
+
+(defun gnus-registry-fetch-message-id-fast (article)
+ "Fetch the Message-ID quickly, using the internal gnus-data-list function"
+ (if (and (numberp article)
+ (assoc article (gnus-data-list nil)))
+ (mail-header-id (gnus-data-header (assoc article (gnus-data-list nil))))
+ nil))
+
(defun gnus-registry-grep-in-list (word list)
- (memq nil
- (mapcar 'not
- (mapcar
- (lambda (x)
- (string-match x word))
- list))))
+ (when word
+ (memq nil
+ (mapcar 'not
+ (mapcar
+ (lambda (x)
+ (string-match x word))
+ list)))))
(defun gnus-registry-fetch-group (id)
"Get the group of a message, based on the message ID.
Returns the first place where the trail finds a spool action."
- (let ((trail (gethash id gnus-registry-hashtb)))
- (if trail
- (car trail)
- nil)))
+ (when id
+ (let ((trail (gethash id gnus-registry-hashtb)))
+ (if trail
+ (car trail)
+ nil))))
(defun gnus-registry-delete-group (id group)
"Get the group of a message, based on the message ID.
Returns the first place where the trail finds a spool action."
- (let ((trail (gethash id gnus-registry-hashtb))
- (group (gnus-group-short-name group)))
- (puthash id (if trail
- (delete group trail)
- nil)
- gnus-registry-hashtb))
- ;; now, clear the entry if it's empty
- (unless (gethash id gnus-registry-hashtb)
- (remhash id gnus-registry-hashtb)))
+ (when group
+ (when id
+ (let ((trail (gethash id gnus-registry-hashtb))
+ (group (gnus-group-short-name group)))
+ (puthash id (if trail
+ (delete group trail)
+ nil)
+ gnus-registry-hashtb))
+ ;; now, clear the entry if it's empty
+ (unless (gethash id gnus-registry-hashtb)
+ (remhash id gnus-registry-hashtb)))))
(defun gnus-registry-add-group (id group)
"Get the group of a message, based on the message ID.
Returns the first place where the trail finds a spool action."
;; make sure there are no duplicate entries
- (let ((group (gnus-group-short-name group)))
- (gnus-registry-delete-group id group)
- (let ((trail (gethash id gnus-registry-hashtb)))
- (puthash id (if trail
- (cons group trail)
- (list group))
- gnus-registry-hashtb))))
+ (when group
+ (when id
+ (let ((group (gnus-group-short-name group)))
+ (gnus-registry-delete-group id group)
+ (let ((trail (gethash id gnus-registry-hashtb)))
+ (puthash id (if trail
+ (cons group trail)
+ (list group))
+ gnus-registry-hashtb))))))
(defun gnus-registry-clear ()
"Clear the Gnus registry."
(add-hook 'gnus-save-newsrc-hook 'gnus-registry-translate-to-alist)
(add-hook 'gnus-read-newsrc-el-hook 'gnus-registry-translate-from-alist)
+(add-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)
+
;; TODO: a lot of things
(provide 'gnus-registry)
(t
(list 'local-map map))))
+(defmacro gnus-completing-read-maybe-default (prompt table &optional predicate
+ require-match initial-contents
+ history default)
+ "Like `completing-read', allowing for non-existent 7th arg in older XEmacsen."
+ `(completing-read ,prompt ,table ,predicate ,require-match
+ ,initial-contents ,history
+ ,@(if (and (featurep 'xemacs) (< emacs-minor-version 2))
+ ()
+ (list default))))
+
(defun gnus-completing-read (prompt table &optional predicate require-match
history)
(when (and history
(not (boundp history)))
(set history nil))
- (completing-read
+ (gnus-completing-read-maybe-default
(if (symbol-value history)
(concat prompt " (" (car (symbol-value history)) "): ")
(concat prompt ": "))
nil
history))
+;; This macro is because XEmacs versions prior to 21.2 do not have the
+;; PROTOCOL argument to `open-network-stream'.
+(defmacro gnus-xmas-open-network-stream (name buffer host service &optional protocol)
+ "Like `open-network-stream' but take into account older XEmacs versions."
+ (if (and (featurep 'xemacs)
+ (fboundp 'open-network-stream)
+ (emacs-version>= 21 2))
+ `(open-network-stream ,name ,buffer ,host ,service ,protocol)
+ `(open-network-stream ,name ,buffer ,host ,service)))
+
(provide 'gnus-xmas)
;;; gnus-xmas.el ends here
(maybe-bind variables)
(maybe-bind common-vars))
+(when (and (featurep 'xemacs)
+ (not (featurep 'mule)))
+ (progn
+ (maybe-fbind '(coding-system-base find-charset-string))))
+
+
(defun nnkiboze-score-file (a)
)
(sit-for 1)
t)
+(autoload 'gnus-completing-read-maybe-default "gnus-util" nil nil 'macro)
+
(defun mm-view-pkcs7-decrypt (handle)
(insert-buffer-substring (mm-handle-buffer handle))
(goto-char (point-min))
(if (= (length smime-keys) 1)
(cadar smime-keys)
(smime-get-key-by-email
- (completing-read
+ (gnus-completing-read-maybe-default
(concat "Decipher using which key? "
(if smime-keys (concat "(default " (caar smime-keys) ") ")
""))
+2003-05-01 Jesper Harder <harder@ifa.au.dk>
+
+ * gnus.texi: Markup and formatting improvements.
+
+2003-04-30 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Top, Appendices): Fixed Gnus FAQ entry.
+
+ * gnus-faq.texi: Wrap long lines in menus. Index.
+
+ * gnus.texi (Image Enhancements): Mention missing images support
+ of Emacs on MS Windows.
+ (Oort Gnus): Mention Gnus FAQ.
+
+2003-04-30 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus.texi (Filtering Spam Using The Spam ELisp Package): revised
+ documentation
+ (Gmane Spam Reporting, Anti-spam Hashcash Payments): new sections
+
+2003-04-30 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Oort Gnus): New features in Gnus 5.10 from GNUS-NEWS.
+
+2003-04-30 Jesper Harder <harder@ifa.au.dk>
+
+ * gnus.texi (Filtering Spam Using The Spam ELisp Package): Index.
+ Add gnus-spam-mark.
+ (Various Summary Stuff): Add gnus-summary-display-arrow.
+
+ * gnus.texi: Fix typos.
+
2003-04-27 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Group Parameters): Fix markup.
@c @chapter Frequently Asked Questions
@section Frequently Asked Questions
+@cindex FAQ
+@cindex Frequently Asked Questions
@c - Uncomment @chapter, comment @section
@c - run (texinfo-every-node-update)
@menu
* FAQ - Introduction:: About Gnus and this FAQ.
* FAQ 1 - Installation:: Installation of Gnus.
-* FAQ 2 - Startup / Group buffer:: Start up questions and the first buffer Gnus shows you.
+* FAQ 2 - Startup / Group buffer:: Start up questions and the first
+ buffer Gnus shows you.
* FAQ 3 - Getting messages:: Making Gnus read your mail and news.
* FAQ 4 - Reading messages:: How to efficiently read messages.
* FAQ 5 - Composing messages:: Composing mails or Usenet postings.
-* FAQ 6 - Old messages:: Importing, archiving, searching and deleting messages.
+* FAQ 6 - Old messages:: Importing, archiving, searching
+ and deleting messages.
* FAQ 7 - Gnus in a dial-up environment:: Reading mail and news while offline.
* FAQ 8 - Getting help:: When this FAQ isn't enough.
* FAQ 9 - Tuning Gnus:: How to make Gnus faster.
@subsection Installation
@menu
-* [1.1]:: What is the latest version of Gnus?
-* [1.2]:: What's new in 5.10.0?
-* [1.3]:: Where and how to get Gnus?
-* [1.4]:: What to do with the tarball now?
-* [1.5]:: Which version of Emacs do I need?
-* [1.6]:: How do I run Gnus on both Emacs and XEmacs?
+* [1.1]:: What is the latest version of Gnus?
+* [1.2]:: What's new in 5.10.0?
+* [1.3]:: Where and how to get Gnus?
+* [1.4]:: What to do with the tarball now?
+* [1.5]:: Which version of Emacs do I need?
+* [1.6]:: How do I run Gnus on both Emacs and XEmacs?
@end menu
@subsection Startup / Group buffer
@menu
-* [2.1]:: Every time I start Gnus I get a message "Gnus auto-save file exists. Do you want to read it?", what does this mean and how to prevent it?
-* [2.2]:: Gnus doesn't remember which groups I'm subscribed to, what's this?
-* [2.3]:: How to change the format of the lines in Group buffer?
-* [2.4]:: My group buffer becomes a bit crowded, is there a way to sort my groups into categories so I can easier browse through them?
-* [2.5]:: How to manually sort the groups in Group buffer? How to sort the groups in a topic?
+* [2.1]:: Every time I start Gnus I get a message
+ "Gnus auto-save file exists. Do you want to read it?",
+ what does this mean and how to prevent it?
+* [2.2]:: Gnus doesn't remember which groups I'm subscribed to, what's this?
+* [2.3]:: How to change the format of the lines in Group buffer?
+* [2.4]:: My group buffer becomes a bit crowded, is there a way to sort my
+ groups into categories so I can easier browse through them?
+* [2.5]:: How to manually sort the groups in Group buffer? How to sort the
+ groups in a topic?
@end menu
@ifnottex
@subsection Getting messages
@menu
-* [3.1]:: I just installed Gnus, started it via M-x gnus but it only says "nntp (news) open error", what to do?
-* [3.2]:: I'm working under Windows and have no idea what ~/.gnus means.
-* [3.3]:: My news server requires authentication, how to store user name and password on disk?
-* [3.4]:: Gnus seems to start up OK, but I can't find out how to subscribe to a group.
-* [3.5]:: Gnus doesn't show all groups / Gnus says I'm not allowed to post on this server as well as I am, what's that?
-* [3.6]:: I want Gnus to fetch news from several servers, is this possible?
-* [3.7]:: And how about local spool files?
-* [3.8]:: OK, reading news works now, but I want to be able to read my mail with Gnus, too. How to do it?
-* [3.9]:: And what about IMAP?
-* [3.10]:: At the office we use one of those MS Exchange servers, can I use Gnus to read my mail from it?
-* [3.11]:: Can I tell Gnus not to delete the mails on the server it retrieves via POP3?
+* [3.1]:: I just installed Gnus, started it via M-x gnus but it only says
+ "nntp (news) open error", what to do?
+* [3.2]:: I'm working under Windows and have no idea what ~/.gnus means.
+* [3.3]:: My news server requires authentication, how to store user name
+ and password on disk?
+* [3.4]:: Gnus seems to start up OK, but I can't find out how to
+ subscribe to a group.
+* [3.5]:: Gnus doesn't show all groups / Gnus says I'm not allowed to
+ post on this server as well as I am, what's that?
+* [3.6]:: I want Gnus to fetch news from several servers, is this possible?
+* [3.7]:: And how about local spool files?
+* [3.8]:: OK, reading news works now, but I want to be able to read my mail
+ with Gnus, too. How to do it?
+* [3.9]:: And what about IMAP?
+* [3.10]:: At the office we use one of those MS Exchange servers,
+ can I use Gnus to read my mail from it?
+* [3.11]:: Can I tell Gnus not to delete the mails on the server
+ it retrieves via POP3?
@end menu
@ifnottex
@subsection Reading messages
@menu
-* [4.1]:: When I enter a group, all read messages are gone. How to view them again?
-* [4.2]:: How to tell Gnus to show an important message every time I enter a group, even when it's read?
-* [4.3]:: How to view the headers of a message?
-* [4.4]:: How to view the raw unformatted message?
-* [4.5]:: How can I change the headers Gnus displays by default at the top of the article buffer?
-* [4.6]:: I'd like Gnus NOT to render HTML-mails but show me the text part if it's available. How to do it?
-* [4.7]:: Can I use some other browser than w3 to render my HTML-mails?
-* [4.8]:: Is there anything I can do to make poorly formatted mails more readable?
-* [4.9]:: Is there a way to automatically ignore posts by specific authors or with specific words in the subject? And can I highlight more interesting ones in some way?
-* [4.10]:: How can I disable threading in some (e.g. mail-) groups, or set other variables specific for some groups?
-* [4.11]:: Can I highlight messages written by me and follow-ups to those?
-* [4.12]:: The number of total messages in a group which Gnus displays in group buffer is by far to high, especially in mail groups. Is this a bug?
-* [4.13]:: I don't like the layout of summary and article buffer, how to change it? Perhaps even a three pane display?
-* [4.14]:: I don't like the way the Summary buffer looks, how to tweak it?
-* [4.15]:: How to split incoming mails in several groups?
+* [4.1]:: When I enter a group, all read messages are gone.
+ How to view them again?
+* [4.2]:: How to tell Gnus to show an important message every time
+ I enter a group, even when it's read?
+* [4.3]:: How to view the headers of a message?
+* [4.4]:: How to view the raw unformatted message?
+* [4.5]:: How can I change the headers Gnus displays by default at the
+ top of the article buffer?
+* [4.6]:: I'd like Gnus NOT to render HTML-mails but show me the
+ text part if it's available. How to do it?
+* [4.7]:: Can I use some other browser than w3 to render my HTML-mails?
+* [4.8]:: Is there anything I can do to make poorly formatted mails
+ more readable?
+* [4.9]:: Is there a way to automatically ignore posts by specific authors
+ or with specific words in the subject? And can I highlight more
+ interesting ones in some way?
+* [4.10]:: How can I disable threading in some (e.g. mail-) groups, or set
+ other variables specific for some groups?
+* [4.11]:: Can I highlight messages written by me and follow-ups to those?
+* [4.12]:: The number of total messages in a group which Gnus displays in
+ group buffer is by far to high, especially in mail groups.
+ Is this a bug?
+* [4.13]:: I don't like the layout of summary and article buffer,
+ how to change it? Perhaps even a three pane display?
+* [4.14]:: I don't like the way the Summary buffer looks, how to tweak it?
+* [4.15]:: How to split incoming mails in several groups?
@end menu
@ifnottex
@subsection Composing messages
@menu
-* [5.1]:: What are the basic commands I need to know for sending mail and postings?
-* [5.2]:: How to enable automatic word-wrap when composing messages?
-* [5.3]:: How to set stuff like From, Organization, Reply-To, signature...?
-* [5.4]:: Can I set things like From, Signature etc group based on the group I post too?
-* [5.5]:: Is there a spell-checker? Perhaps even on-the-fly spell-checking?
-* [5.6]:: Can I set the dictionary based on the group I'm posting to?
-* [5.7]:: Is there some kind of address-book, so I needn't remember all those email addresses?
-* [5.8]:: Sometimes I see little images at the top of article buffer. What's that and how can I send one with my postings, too?
-* [5.9]:: Sometimes I accidentally hit r instead of f in newsgroups. Can Gnus warn me, when I'm replying by mail in newsgroups?
-* [5.10]:: How to tell Gnus not to generate a sender header?
-* [5.11]:: I want gnus to locally store copies of my send mail and news, how to do it?
-* [5.12]:: People tell me my Message-IDs are not correct, why aren't they and how to fix it?
+* [5.1]:: What are the basic commands I need to know for sending mail and
+ postings?
+* [5.2]:: How to enable automatic word-wrap when composing messages?
+* [5.3]:: How to set stuff like From, Organization, Reply-To, signature...?
+* [5.4]:: Can I set things like From, Signature etc group based on the
+ group I post too?
+* [5.5]:: Is there a spell-checker? Perhaps even on-the-fly spell-checking?
+* [5.6]:: Can I set the dictionary based on the group I'm posting to?
+* [5.7]:: Is there some kind of address-book, so I needn't remember all
+ those email addresses?
+* [5.8]:: Sometimes I see little images at the top of article buffer.
+ What's that and how can I send one with my postings, too?
+* [5.9]:: Sometimes I accidentally hit r instead of f in newsgroups.
+ Can Gnus warn me, when I'm replying by mail in newsgroups?
+* [5.10]:: How to tell Gnus not to generate a sender header?
+* [5.11]:: I want gnus to locally store copies of my send mail and news,
+ how to do it?
+* [5.12]:: People tell me my Message-IDs are not correct,
+ why aren't they and how to fix it?
@end menu
@ifnottex
@subsection Old messages
@menu
-* [6.1]:: How to import my old mail into Gnus?
-* [6.2]:: How to archive interesting messages?
-* [6.3]:: How to search for a specific message?
-* [6.4]:: How to get rid of old unwanted mail?
-* [6.5]:: I want that all read messages are expired (at least in some groups). How to do it?
-* [6.6]:: I don't want expiration to delete my mails but to move them to another group.
+* [6.1]:: How to import my old mail into Gnus?
+* [6.2]:: How to archive interesting messages?
+* [6.3]:: How to search for a specific message?
+* [6.4]:: How to get rid of old unwanted mail?
+* [6.5]:: I want that all read messages are expired (at least in some
+ groups). How to do it?
+* [6.6]:: I don't want expiration to delete my mails but to move them
+ to another group.
@end menu
@ifnottex
@subsection Gnus in a dial-up environment
@menu
-* [7.1]:: I don't have a permanent connection to the net, how can I minimize the time I've got to be connected?
-* [7.2]:: So what was this thing about the Agent?
-* [7.3]:: I want to store article bodies on disk, too. How to do it?
-* [7.4]:: How to tell Gnus not to try to send mails / postings while I'm offline?
+* [7.1]:: I don't have a permanent connection to the net, how can I
+ minimize the time I've got to be connected?
+* [7.2]:: So what was this thing about the Agent?
+* [7.3]:: I want to store article bodies on disk, too. How to do it?
+* [7.4]:: How to tell Gnus not to try to send mails / postings while
+ I'm offline?
@end menu
@subsection Getting help
@menu
-* [8.1]:: How to find information and help inside Emacs?
-* [8.2]:: I can't find anything in the Gnus manual about X (e.g. attachments, PGP, MIME...), is it not documented?
-* [8.3]:: Which websites should I know?
-* [8.4]:: Which mailing lists and newsgroups are there?
-* [8.5]:: Where to report bugs?
-* [8.6]:: I need real-time help, where to find it?
+* [8.1]:: How to find information and help inside Emacs?
+* [8.2]:: I can't find anything in the Gnus manual about X
+ (e.g. attachments, PGP, MIME...), is it not documented?
+* [8.3]:: Which websites should I know?
+* [8.4]:: Which mailing lists and newsgroups are there?
+* [8.5]:: Where to report bugs?
+* [8.6]:: I need real-time help, where to find it?
@end menu
@ifnottex
@subsection Tuning Gnus
@menu
-* [9.1]:: Starting Gnus is really slow, how to speed it up?
-* [9.2]:: How to speed up the process of entering a group?
-* [9.3]:: Sending mail becomes slower and slower, what's up?
+* [9.1]:: Starting Gnus is really slow, how to speed it up?
+* [9.2]:: How to speed up the process of entering a group?
+* [9.3]:: Sending mail becomes slower and slower, what's up?
@end menu
@ifnottex
->\input texinfo
+\input texinfo
@setfilename gnus-ja
@settitle T-gnus 6.15 Manual
Group Buffer Format
* Group Line Specification:: \e$B%0%k!<%W%P%C%U%!$N8+$(J}$r7h$a$k\e(B
-* Group Modeline Specification:: \e$B%0%k!<%W%P%C%U%!$N%b!<%I9T\e(B
+* Group Mode line Specification:: \e$B%0%k!<%W%P%C%U%!$N%b!<%I9T\e(B
* Group Highlighting:: \e$B%0%k!<%W%P%C%U%!$K$-$l$$$K?'$r$D$1$k\e(B
Group Topics
* Article Date:: \e$B$0$:$0$:8@$&$J!"@$3&;~$@\e(B!
* Article Display:: X-Face, Picons, Smileys \e$B$rI=<($9$k\e(B
* Article Signature:: \e$B=pL>$C$F2?\e(B?
-* Article Miscellania:: \e$BB>$N$$$m$$$m$J$b$N\e(B
+* Article Miscellanea:: \e$BB>$N$$$m$$$m$J$b$N\e(B
Alternative Approaches
* Troubleshooting:: \e$B>e<j$/9T$+$J$+$C$?$H$-$K;n$9$+$b$7$l$J$$$3$H\e(B
* Gnus Reference Guide:: \e$B?'!9$J5;=QE*$J$b$N\e(B
* Emacs for Heathens:: Emacs \e$B$NMQ8l$N<jC;$JF3F~\e(B
-* Frequently Asked Questions::
+* Frequently Asked Questions:: Gnus \e$B$N\e(B FAQ
History
* Red Gnus:: \e$B;0HVL\$N:G>e$N$b$N\e(B---Gnus 5.4/5.5
* Quassia Gnus:: 2 \e$B$+$1$k\e(B 2 \e$B$O\e(B 4\e$B!"$b$7$/$O\e(B Gnus 5.6/5.7
* Pterodactyl Gnus:: \e$B8^HVL\!"\e(BP \e$B$G;O$^$k!"$b$7$/$O\e(B Gnus 5.8/5.9 \e$B$H$7$FCN$i$l$F$$$k$b$N\e(B
+* Oort Gnus:: \e$B5pBg$J!#1s$/MZ$+$J!#\e(BGnus 5.10\e$B!#\e(B
Customization
@menu
* Group Line Specification:: \e$B%0%k!<%W%P%C%U%!$N8+$(J}$r7h$a$k\e(B
-* Group Modeline Specification:: \e$B%0%k!<%W%P%C%U%!$N%b!<%I9T\e(B
+* Group Mode line Specification:: \e$B%0%k!<%W%P%C%U%!$N%b!<%I9T\e(B
* Group Highlighting:: \e$B%0%k!<%W%P%C%U%!$K$-$l$$$K?'$r$D$1$k\e(B
@end menu
\e$B%/\e(B (@samp{*}) \e$B$,Kd$a$i$l$^$9!=!=Nc$($P!"5/F0$5$l$F$$$J$$30It%0%k!<%W$d!"\e(B
\e$BIT@5$J4pK\%0%k!<%W$N>l9g$G$9!#\e(B
-@node Group Modeline Specification
+@node Group Mode line Specification
@subsection \e$B%0%k!<%W%b!<%I9T$N;EMM\e(B
-@cindex group modeline
+@cindex group mode line
@vindex gnus-group-mode-line-format
\e$B%b!<%I9T\e(B
(local-set-key "!" 'gnus-summary-put-mark-as-ticked-next))
@end lisp
+@noindent
\e$B$b$7$/$O!"\e(B
@lisp
* Article Date:: \e$B$0$:$0$:8@$&$J!"@$3&;~$@\e(B!
* Article Display:: X-Face, Picons, Smileys \e$B$rI=<($9$k\e(B
* Article Signature:: \e$B=pL>$C$F2?\e(B?
-* Article Miscellania:: \e$BB>$N$$$m$$$m$J$b$N\e(B
+* Article Miscellanea:: \e$BB>$N$$$m$$$m$J$b$N\e(B
@end menu
@node Article Highlighting
\e$BF1$8$h$&$J$b$N$G$9\e(B:
@lisp
-(@var{header} @var{regexp} @var{nutton-par} @var{use-p} @var{function} @var{data-par})
+(@var{header} @var{regexp} @var{button-par} @var{use-p} @var{function} @var{data-par})
@end lisp
@var{header} \e$B$O@55,I=8=$G$9!#\e(B
\e$B8=\e(B @samp{^---*Forwarded article} \e$B$K9gCW$9$l$P!"7k6I$=$l$O=pL>$G$O$J$$$H\e(B
\e$B$$$&;v$G$9!#\e(B
-@node Article Miscellania
+@node Article Miscellanea
@subsection \e$B5-;v$$$m$$$m\e(B
@table @kbd
\e$B@0?t\e(B @var{n} \e$B$G$"$C$?>l9g$O!"\e(B@var{n} \e$B9TKh$KI=<($r99?7$7$^$9!#%G%#%U%)%k\e(B
\e$B%H$O\e(B @code{nil} \e$B$G$9!#\e(B
+@vindex gnus-summary-display-arrow
+@item gnus-summary-display-arrow
+\e$BHs\e(B-@code{nil} \e$B$@$C$?$i!"8=:_$N5-;v$r;X$7<($9$?$a$K%U%j%s%8$KLp0u$rI=<($7\e(B
+\e$B$^$9!#\e(B
+
@vindex gnus-summary-mode-hook
@item gnus-summary-mode-hook
\e$B35N,%b!<%I%P%C%U%!$r:n@.$9$k$H$-$K$3$N%U%C%/$,8F$P$l$^$9!#\e(B
@enumerate
@item
To handle @acronym{PGP} and @acronym{PGP/MIME} messages, you have to
-install an OpenPGP implementation such as GnuPG. The lisp interface
+install an OpenPGP implementation such as GnuPG. The Lisp interface
to GnuPG included with Gnus is called PGG (@pxref{Top, ,PGG, pgg, PGG
Manual}), but Mailcrypt and gpg.el are also supported.
@end table
@end table
-@subsubsection Function Interface
+@subsubsection \e$B4X?t%$%s%?!<%U%'!<%9\e(B
\e$B>e5-$N$$$/$D$+$N%-!<%o!<%I$O!"<B9T$9$k$?$a$N\e(B Lisp \e$B4X?t$r;XDj$7$^$9!#4X?t\e(B
\e$B$,<B9T$5$l$F$$$k4V$@$1!"$=$l$>$l$N%-!<%o!<%I\e(B @code{:foo} \e$B$NCM$H$7$F\e(B Lisp
@code{nil} \e$B$G$J$1$l$P!"F~$C$FMh$?%U%!%$%k$O!"$=$l$r=hM}$7$?8e$K>C5n$5$l\e(B
\e$B$^$9!#\e(B@code{t} \e$B$G$O%U%!%$%k$r$?$@$A$K>C5n$7!"\e(B@code{nil} \e$B$G$O$$$+$J$k%U%!\e(B
\e$B%$%k$b>C$7$^$;$s!#@5$N?t$@$C$?>l9g$O!"$=$NF|?t0J>e$K8E$$%U%!%$%k$r>C5n$7\e(B
-\e$B$^$9\e(B (\e$B$3$l$O?7Ce%a!<%k$r<h$j9~$`$H$-$@$19T$J$o$l$^$9\e(B)\e$B!#\e(B
+\e$B$^$9\e(B (\e$B$3$l$O?7Ce%a!<%k$r<u$1<h$k$H$-$@$19T$J$o$l$^$9\e(B)\e$B!#\e(B
@code{mail-source-delete-incoming} \e$B$r\e(B @code{nil} \e$B$K$7$F$*$$$F!"\e(B
@code{mail-source-delete-old-incoming} \e$B$r%U%C%/$^$?$O<jF0$G8F$s$G$bNI$$\e(B
\e$B$G$9!#\e(B
\e$BA4$F$N\e(B @var{value} \e$B$O\e(B @samp{\<} \e$B$H\e(B @samp{\>} \e$B$NBP$G0O$^$l$^$9!#\e(B
@vindex nnmail-split-abbrev-alist
-@var{field} \e$B$H\e(B @var{value} \e$B$O\e(B lisp \e$B%7%s%\%k\e(B (symbol) \e$B$G$"$k;v$b$G$-!"$=\e(B
+@var{field} \e$B$H\e(B @var{value} \e$B$O\e(B Lisp \e$B%7%s%\%k\e(B (symbol) \e$B$G$"$k;v$b$G$-!"$=\e(B
\e$B$N>l9g$O$=$l$i$O\e(B @code{nnmail-split-abbrev-alist} \e$B$G;XDj$5$l$F$$$k$h$&$K\e(B
\e$BE83+$5$l$^$9!#$3$l$O%;%k$N\e(B @code{car} \e$B$,%-!<$r4^$s$G$$$F!"\e(B@code{cdr} \e$B$,\e(B
\e$B4XO"IU$1$i$l$?CM$r;}$C$F$$$k%3%s%9%;%k\e(B (cons cell) \e$B$NO"A[%j%9%H$G$9!#\e(B
\e$B$3$NNc$O$?$$$F$$$N%9%3%"%U%!%$%k$NMWAG$r@bL@$7$F$$$^$9!#0c$C$?J}K!$K$D$$\e(B
\e$B$F$O!"\e(B@pxref{Advanced Scoring} \e$B$r8+$F$/$@$5$$!#\e(B
-\e$B$3$l$O\e(B lisp \e$B%3!<%I$N$h$&$K8+$($^$9$,!"<B:]$O$3$3$K$"$k$b$N$O2?\e(B
-\e$B$b\e(B @code{\e$BI>2A\e(B} (eval) \e$B$5$l$^$;$s!#$7$+$7!"\e(Blisp \e$B%j!<%@!<$,$3$NMM<0$rFI$_\e(B
+\e$B$3$l$O\e(B Lisp \e$B%3!<%I$N$h$&$K8+$($^$9$,!"<B:]$O$3$3$K$"$k$b$N$O2?\e(B
+\e$B$b\e(B @code{\e$BI>2A\e(B} (eval) \e$B$5$l$^$;$s!#$7$+$7!"\e(BLisp \e$B%j!<%@!<$,$3$NMM<0$rFI$_\e(B
\e$B9~$`$N$K;H$o$l$^$9$N$G!"0UL#E*$KM-8z$G$J$$$H$7$F$b!"J8K!E*$K$OM-8z$G$9!#\e(B
\e$B$3$NO"A[%j%9%H$G$OO;$D$N%-!<$r;H$&;v$,$G$-$^$9!#\e(B
\e$BA}$d$7$?$$$H$7$^$7$g$&\e(B:
@example
+@group
((&
("from" "Lars Ingebrigtsen")
("subject" "Gnus"))
1000)
+@end group
@end example
\e$B$M!"$H$F$bC1=c$G$7$g\e(B?
@findex gnus-update-format
Gnus \e$B$O$"$J$?<+?H$N=qK!;EMM;XDj$r:n$k<jEA$$$r$9$kL?Na$rHw$($F$$$^$9!#\e(B
@kbd{M-x gnus-update-format} \e$B$O8=:_$N<0$r\e(B @code{\e$BI>2A\e(B} \e$B$7!"Ev$N;XDj$r99?7\e(B
-\e$B$7!"7k2L$N\e(B lisp \e$B<0$r<B9T$7$F9T$r:n@.$9$k;v$r<B83$G$-$k%P%C%U%!$K0\F0$7$^\e(B
+\e$B$7!"7k2L$N\e(B Lisp \e$B<0$r<B9T$7$F9T$r:n@.$9$k;v$r<B83$G$-$k%P%C%U%!$K0\F0$7$^\e(B
\e$B$9!#\e(B
@node Formatting Basics
@node Image Enhancements
@section \e$B2hA|$N3HD%\e(B
-XEmacs\e$B!"$=$l$K\e(B Emacs 21 \e$B$O3($d$=$NB>$N$b$N$rI=<($9$k$3$H$,$G$-$k$N$G!"\e(B
+XEmacs \e$B$=$l$K\e(B Emacs 21@footnote{MS \e$B%&%#%s%I%&%:$N\e(B Emacs 21 \e$B$O$^$@2hA|$r\e(B
+\e$B%5%]!<%H$7$F$$$^$;$s!#\e(B} \e$B$O3($d$=$NB>$N$b$N$rI=<($9$k$3$H$,$G$-$k$N$G!"\e(B
gnus \e$B$O$3$l$rMxMQ$9$k$3$H$K$7$^$9!#\e(B
@menu
\e$B$G$-$k$h$&$K$J$j$^$9!#\e(B@samp{spam} \e$BJQ?t%0%k!<%W$K$D$$\e(B
\e$B$F\e(B @code{customize-group} \e$B$r;n$7$F$_$F2<$5$$!#\e(B
+@vindex gnus-spam-process-newsgroups
Ham \e$B%W%m%;%C%5!<$H\e(B spam \e$B%W%m%;%C%5!<$N35G0$OHs>o$K=EMW$G$9!#$"$k%0%k!<%W\e(B
\e$B$N\e(B ham \e$B%W%m%;%C%5!<$H\e(B spam \e$B%W%m%;%C%5!<$O!"\e(B@code{spam-process} \e$B%0%k!<%W\e(B
\e$B%Q%i%a!<%?$+\e(B @code{gnus-spam-process-newsgroups} \e$BJQ?t$G@_Dj$9$k$3$H$,$G\e(B
\e$B$N\e(B spam \e$B$,8!=P$5$l$k$h$&$K!"\e(Bspam \e$B$G$"$k$3$H$,$o$+$C$F$$$k%a!<%k$r<u$1<h$C\e(B
\e$B$F=hM}$7$^$9!#\e(B
+@vindex gnus-spam-newsgroup-contents
gnus \e$B$O$"$J$?$,<u$1<h$C$?\e(B spam \e$B$+$i3X$S$^$9!#$"$J$?$O0l$D0J>e$N\e(B spam \e$B%0\e(B
\e$B%k!<%W$K\e(B spam \e$B5-;v$r=8$a$F!"JQ?t\e(B @code{spam-junk-mailgroups} \e$B$rE,@Z$K@_\e(B
\e$BDj$b$7$/$O%+%9%?%^%$%:$7$J$1$l$P$J$j$^$;$s!#$^$?!"\e(Bspam \e$B$r4^$a$k%0%k!<%W\e(B
\e$B$$$J$$$H!"$=$l$i$O\e(B @emph{\e$BL$J,N`\e(B} \e$B$G$"$k$H2r<a$5$l$^$9!#$9$Y$F$N%0%k!<%W\e(B
\e$B$O%G%#%U%)%k%H$G$OL$J,N`$G$9!#\e(B
+@vindex gnus-spam-mark
+@cindex $
Spam \e$B%0%k!<%W$G$O!"%G%#%U%)%k%H$G$9$Y$F$N%a%C%;!<%8$,\e(B spam \e$B$G$"$k$H2r<a\e(B
-\e$B$5$l$^$9\e(B: \e$B$=$N%0%k!<%W$KF~$k$H!"$=$l$i$K\e(B @samp{$} \e$B0u$,IU$-$^$9!#;~!9$3$l\e(B
-\e$B$i$N%a%C%;!<%8$rD4$Y$F$_$F!"$d$C$Q$j\e(B spam \e$B$G$O$J$+$C$?$9$Y$F$N5-;v$+$i\e(B
-@samp{$} \e$B0u$r>C$5$J$1$l$P$J$j$^$;$s!#\e(B@samp{$} \e$B0u$r>C$9$K$O\e(B @kbd{M-u} \e$B$G\e(B
-\e$B$=$N5-;v$r\e(B ``\e$BL$FI\e(B'' \e$B$K$9$k$+!"$"$k$$$O\e(B @kbd{d} \e$B$G\e(B spam \e$B$G$O$J$$$b$N$H$7\e(B
-\e$B$FFI$s$@$3$H$r@k8@$9$l$PNI$$$G$7$g$&!#%0%k!<%W$rH4$1$k$H$-!"$9$Y$F\e(B
-\e$B$N\e(B spam \e$B0u\e(B (@samp{$}) \e$B$,IU$$$?5-;v$O\e(B spam \e$B%W%m%;%C%5!<$KAw$i$l!"$=$l$i\e(B
-\e$B$r\e(B spam \e$B$NI8K\$H$7$F3X=,$7$^$9!#\e(B
+\e$B$5$l$^$9\e(B: \e$B$=$N%0%k!<%W$KF~$k$H!"$=$l$i\e(B
+\e$B$K\e(B @samp{$} \e$B0u\e(B (@code{gnus-spam-mark}) \e$B$,IU$-$^$9!#%a%C%;!<%8$r8+$F0lC6\e(B
+\e$B$=$l$K\e(B spam \e$B$N0u$rIU$1$F$b!"8e$G<h$j>C$;$P!"$=$N8e$=$N%0%k!<%W$KF~$C$?$H\e(B
+\e$B$-$K!"$=$l$K$O\e(B spam \e$B0u$OIU$-$^$;$s!#$?$@\e(B
+\e$B$7\e(B @code{spam-mark-only-unseen-as-spam} \e$B%Q%i%a!<%?$r\e(B @code{nil} \e$B$K$9$l$P!"\e(B
+\e$B$=$&$$$&F0:n$r$d$a$5$;$k!"$D$^$j$9$Y$F$NL$FI%a%C%;!<%8$K\e(B spam \e$B0u$,IU$/$h\e(B
+\e$B$&$K$9$k$3$H$,$G$-$^$9!#$=$N%0%k!<%W$N35N,%P%C%U%!$K$$$k$H$-!"$d$C$Q\e(B
+\e$B$j\e(B spam \e$B$G$O$J$+$C$?$9$Y$F$N\e(B \e$B5-;v$+$i\e(B @samp{$} \e$B0u$r>C$5$J$1$l$P$J$j$^$;\e(B
+\e$B$s!#\e(B@samp{$} \e$B0u$r>C$9$K$O\e(B @kbd{M-u} \e$B$G$=$N5-;v$r\e(B ``\e$BL$FI\e(B'' \e$B$K$9$k$+!"$"$k\e(B
+\e$B$$$O\e(B @kbd{d} \e$B$G\e(B spam \e$B$G$O$J$$$b$N$H$7$FFI$s$@$3$H$r@k8@$9$l$PNI$$$G$7$g\e(B
+\e$B$&!#%0%k!<%W$rH4$1$k$H$-!"$9$Y$F$N\e(B spam \e$B0u\e(B (@samp{$}) \e$B$,IU$$$?5-;v\e(B
+\e$B$O\e(B spam \e$B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r\e(B spam \e$B$NI8K\$H$7$F3X=,$7$^$9!#\e(B
\e$B%a%C%;!<%8$OB>$N$$$m$$$m$JJ}K!$K$h$C$F$b>C5n$5$l$k$+$b$7$l$^$;$s$7!"\e(B
-@code{spam-ham-marks} \e$B$,8e=R$N$h$&$K>e=q$-$5$l$J$1$l$P!"Dc$$%9%3%"$N$?$a\e(B
-\e$B$N\e(B @samp{Y} \e$B0u$HF1MM!"%G%#%U%)%k%H$N4{FI$+L@<(E*$J>C5n$N$?$a\e(B
-\e$B$N\e(B @samp{R} \e$B$H\e(B @samp{r} \e$B0u!"<+F0$^$?$OL@<(E*$J:o=|$N$?$a\e(B
+@code{ham-marks} \e$B%0%k!<%W%Q%i%a!<%?$,8e=R$N$h$&$K>e=q$-$5$l$J$1$l$P!"Dc\e(B
+\e$B$$%9%3%"$N$?$a$N\e(B @samp{Y} \e$B0u$HF1MM!"%G%#%U%)%k%H$N4{FI$+L@<(E*$J>C5n$N$?\e(B
+\e$B$a$N\e(B @samp{R} \e$B$H\e(B @samp{r} \e$B0u!"<+F0$^$?$OL@<(E*$J:o=|$N$?$a\e(B
\e$B$N\e(B @samp{X} \e$B$H\e(B @samp{K} \e$B0u!"$=$l$i$9$Y$F$,\e(B spam \e$B$H$OL54X78$G$"$k$H2r<a$5\e(B
\e$B$l$^$9!#$3$N2>Dj$O!"K\J*$N\e(B spam \e$B$r8!=P$9$k$?$a$K>C5n\e(B (kill) \e$B%U%!%$%k$+%9\e(B
\e$B%3%"%U%!%$%k$rFCJL$K;H$C$F$$$k>l9g$O4V0c$C$F$$$k$+$b$7$l$^$;$s!#$=$&$G$"\e(B
-\e$B$l$P\e(B @code{spam-ham-marks} \e$BJQ?t$rD4@0$9$k$Y$-$G$9!#\e(B
+\e$B$l$P\e(B @code{ham-marks} \e$B%0%k!<%W%Q%i%a!<%?$rD4@0$9$k$Y$-$G$9!#\e(B
-@defvar spam-ham-marks
-\e$B$3$NJQ?t$r\e(B ham \e$B$G$"$k$H2r<a$7$?$$0u$N%j%9%H$K@_Dj$9$k$3$H$,$G$-$^$9!#%G%#\e(B
-\e$B%U%)%k%H$G$O!">C5n\e(B (deleted)\e$B!"4{FI\e(B (read)\e$B!":o=|\e(B (killed)\e$B!"\e(Bkill \e$B%U%!%$%k\e(B
-\e$B$K$"$k$b$N\e(B (kill-filed) \e$B$*$h$SDc$$%9%3%"\e(B (low-score) \e$B0u$N%j%9%H$G$9!#\e(B
+@defvar ham-marks
+\e$B$3$N%0%k!<%W$^$?$O%H%T%C%/%Q%i%a!<%?$r\e(B ham \e$B$G$"$k$H2r<a$7$?$$0u$N%j%9%H\e(B
+\e$B$K@_Dj$9$k$3$H$,$G$-$^$9!#%G%#%U%)%k%H$G$O!">C5n\e(B (deleted)\e$B!"4{FI\e(B (read)\e$B!"\e(B
+\e$B:o=|\e(B (killed)\e$B!"\e(Bkill \e$B%U%!%$%k$K$"$k$b$N\e(B (kill-filed) \e$B$*$h$SDc$$%9%3\e(B
+\e$B%"\e(B (low-score) \e$B0u$N%j%9%H$G$9!#\e(B
@end defvar
-@defvar spam-spam-marks
-\e$B$3$NJQ?t$r\e(B spam \e$B$G$"$k$H2r<a$7$?$$0u$N%j%9%H$K@_Dj$9$k$3$H$,$G$-$^$9!#%G%#\e(B
-\e$B%U%)%k%H$G$O\e(B spam \e$B0u$@$1$r;}$D%j%9%H$G$9!#\e(B
+@defvar spam-marks
+\e$B$3$N%0%k!<%W$^$?$O%H%T%C%/%Q%i%a!<%?$r\e(B spam \e$B$G$"$k$H2r<a$7$?$$0u$N%j%9%H\e(B
+\e$B$K@_Dj$9$k$3$H$,$G$-$^$9!#%G%#%U%)%k%H$G$O\e(B spam \e$B0u$@$1$r;}$D%j%9%H$G$9!#\e(B
@end defvar
\e$B%0%k!<%W$rH4$1$k$H$-$K\e(B (\e$B$=$N%0%k!<%W$,\e(B @emph{\e$B2?\e(B} \e$B$G$"$C$F$b\e(B)\e$B!"$=\e(B
\e$B$b$7$l$^$;$s!#:G$bNI$$$N$O!"K\Ev$N\e(B spam \e$B$K\e(B @samp{$} \e$B$,IU$$$F$$$F!"B>$K2?\e(B
\e$B$bL5$$$3$H$r3N$+$a$k$3$H$G$9!#\e(B
+@vindex gnus-ham-process-destinations
@emph{Spam} \e$B%0%k!<%W$rH4$1$k$H$-$K!"\e(Bspam \e$B0u$,IU$$$F$$$k$9$Y$F$N5-;v\e(B
\e$B$K$O\e(B spam \e$B%W%m%;%C%5!<$G=hM}$7$?8e$G4|8B@Z$l>C5n$N0u$,IU$1$i$l$^$9!#$3$l\e(B
\e$B$O\e(B @emph{\e$BL$J,N`\e(B} \e$B$^$?$O\e(B @emph{ham} \e$B%0%k!<%W$KBP$7$F$O9T$J$o$l$^$;$s!#$5\e(B
\e$B$5$l$^$9!#$=$l$i$O%0%k!<%WL>$K9gCW$9$k@55,I=8=$N%j%9%H$G\e(B
\e$B$9\e(B (@code{customize-variable gnus-ham-process-destinations} \e$B$K$h$C$F$3$N\e(B
\e$BJQ?t$r%+%9%?%^%$%:$9$k$N$,:G$b4JC1$G$9\e(B)\e$B!#:G=*E*$J>l=j$O%0%k!<%WL>$G$9!#\e(B
-@code{ham-process-destination} \e$B%Q%i%a!<%?$,@_Dj$5$l$F$$$J$$$H!"\e(Bspam \e$B5-;v\e(B
-\e$B$OC1$K4|8B@Z$l>C5n$5$l$^$9!#\e(B
+@code{ham-process-destination} \e$B%Q%i%a!<%?$,@_Dj$5$l$F$$$J$$$H!"\e(Bham \e$B5-;v\e(B
+\e$B$O$=$3$KN1$aCV$+$l$^$9!#\e(B
+@code{spam-mark-ham-unread-before-move-from-spam-group} \e$B%Q%i%a!<%?$,@_Dj\e(B
+\e$B$5$l$F$$$k$H!"\e(Bham \e$B5-;v$O0\F0$5$;$i$l$kA0$KL$FI$N0u$,IU$1$i$l$^$9!#\e(B
@emph{Ham} \e$B%0%k!<%W$rH4$1$k$H$-$K!"\e(Bham \e$B0u$,IU$$$F$$$k$9$Y$F$N5-;v\e(B
\e$B$O\e(B ham \e$B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r\e(B spam \e$B$G$O$J$$I8K\$H$7$F3X=,$7$^$9!#\e(B
+@vindex gnus-spam-process-destinations
@emph{Ham} \e$B$^$?$O\e(B @emph{\e$BL$J,N`\e(B} \e$B%0%k!<%W$rH4$1$k$H$-$K!"$9$Y$F\e(B
\e$B$N\e(B @strong{spam} \e$B5-;v$O!"\e(B@code{spam-process-destination} \e$B%0%k!<%W%Q%i%a!<\e(B
\e$B%?$+\e(B @code{gnus-spam-process-destinations} \e$BJQ?t$N$I$A$i$+$K9gCW$9$k>l=j\e(B
@code{spam-split} \e$B4X?t$OF~$C$F$/$k%a!<%k$r=hM}$7!"\e(Bspam \e$B$H;W$o$l$k%a!<%k\e(B
\e$B$rJQ?t\e(B @code{spam-split-group} \e$B$GM?$($i$l$kL>A0$N%0%k!<%W$KAw$j$^$9!#%G%#\e(B
-\e$B%U%)%k%H$G$O$=$N%0%k!<%WL>$O\e(B @samp{spam} \e$B$G$9$,!"%+%9%?%^%$%:$9$k$3$H$O\e(B
-\e$B2DG=$G$9!#\e(B
+\e$B%U%)%k%H$G$O$=$N%0%k!<%WL>$O\e(B @samp{spam} \e$B$G$9$,!"\e(B
+@code{spam-split-group} \e$B$r%+%9%?%^%$%:$9$k$3$H$,2DG=$G$9!#\e(B
+
+@c TRANSLATEME
+You can also give @code{spam-split} a parameter,
+e.g. @samp{'spam-use-regex-headers}. Why is this useful?
+
+Take these split rules (with @code{spam-use-regex-headers} and
+@code{spam-use-blackholes} set):
+
+@example
+ nnimap-split-fancy '(|
+ (any "ding" "ding")
+ (: spam-split)
+ ;; default mailbox
+ "mail")
+@end example
+
+Now, the problem is that you want all ding messages to make it to the
+ding folder. But that will let obvious spam (for example, spam
+detected by SpamAssassin, and @code{spam-use-regex-headers}) through,
+when it's sent to the ding list. On the other hand, some messages to
+the ding list are from a mail server in the blackhole list, so the
+invocation of @code{spam-split} can't be before the ding rule.
+
+You can let SpamAssassin headers supercede ding rules, but all other
+@code{spam-split} rules (including a second invocation of the
+regex-headers check) will be after the ding rule:
+
+@example
+ nnimap-split-fancy '(|
+ (: spam-split 'spam-use-regex-headers)
+ (any "ding" "ding")
+ (: spam-split)
+ ;; default mailbox
+ "mail")
+@end example
+
+Basically, this lets you invoke specific @code{spam-split} checks
+depending on your particular needs. You don't have to throw all mail
+into all the spam tests. Another reason why this is nice is that
+messages to mailing lists you have rules for don't have to have
+resource-intensive blackhole checks performed on them. You could also
+specify different spam checks for your nnmail split vs. your nnimap
+split. Go crazy.
+
+You still have to have specific checks such as
+@code{spam-use-regex-headers} set to t, even if you specifically
+invoke @code{spam-split} with the check. The reason is that when
+loading @code{spam.el}, some conditional loading is done depending on
+what @code{spam-use-xyz} variables you have set.
@emph{@acronym{IMAP} \e$BMxMQ<T$X$NCm0U\e(B}
\e$B%U%)%k%H$G$O!"\e(Bnnimap \e$B%P%C%/%(%s%I$O%a%C%;!<%8%X%C%@!<$@$1$r<h$j9~$_$^$9!#\e(B
@code{spam-check-bogofilter}\e$B!"\e(B@code{spam-check-ifile} \e$B$^$?\e(B
\e$B$O\e(B @code{spam-check-stat} (\e$B$=$l$i$NJ,3d4o$O%a%C%;!<%8$NK\J8A4BN$+$i>pJs\e(B
-\e$B$rF@$k\e(B) \e$B$r;H$&$J$i$P!"$3$NJQ?t$r@_Dj$7$J$1$l$P$J$j$^$;$s!#\e(B
-@acronym{IMAP} \e$B$NF0:n$rCY$/$7$F$7$^$&$N$G!"%G%#%U%)%k%H$G$O@_Dj$5$l$F$$\e(B
-\e$B$^$;$s!#\e(B
+\e$B$rF@$k\e(B) \e$B$r;H$&$J$i$P!"$3$NJQ?t$r@_Dj$7$J$1$l$P$J$j$^$;$s!#$=$l\e(B
+\e$B$O\e(B @acronym{IMAP} \e$B$NF0:n$rCY$/$7$F$7$^$$!"%f!<%6$rBeI=$9$k$N$K$U$5$o$7$$\e(B
+\e$B7hDj$G$O$J$$$N$G!"%G%#%U%)%k%H$G$O@_Dj$5$l$F$$$^$;$s!#\e(B
@xref{Splitting in IMAP}.
@menu
* Blacklists and Whitelists::
* BBDB Whitelists::
+* Gmane Spam Reporting::
+* Anti-spam Hashcash Payments::
* Blackholes::
* Regular Expressions Header Matching::
* Bogofilter::
@end defvar
+@c TRANSLATEME
+@node Gmane Spam Reporting
+@subsubsection Gmane Spam Reporting
+@cindex spam reporting
+@cindex Gmane, spam reporting
+@cindex Gmane, spam reporting
+@cindex spam
+
+@defvar gnus-group-spam-exit-processor-report-gmane
+
+Add this symbol to a group's @code{spam-process} parameter by
+customizing the group parameters or the
+@code{gnus-spam-process-newsgroups} variable. When this symbol is
+added to a group's @code{spam-process} parameter, the spam-marked
+articles groups will be reported to the Gmane administrators.
+
+@end defvar
+
+@node Anti-spam Hashcash Payments
+@subsubsection Anti-spam Hashcash Payments
+@cindex spam filtering
+@cindex hashcash, spam filtering
+@cindex spam
+
+@defvar spam-use-hashcash
+
+Similar to @code{spam-use-whitelist} (@pxref{Blacklists and
+Whitelists}), but uses hashcash tokens for whitelisting messages
+instead of the sender address. You must have the @code{hashcash.el}
+package loaded for @code{spam-use-hashcash} to work properly.
+Messages without a hashcash payment token will be sent to the next
+spam-split rule. This is an explicit filter, meaning that unless a
+hashcash token is found, the messages are not assumed to be spam or
+ham.
+
+@end defvar
+
@node Blackholes
@subsubsection \e$B%V%i%C%/%[!<%k\e(B
@cindex spam filtering
@defvar spam-ifile-all-categories
-@code{spam-use-ifile} \e$B$K!"C1$J$k\e(B smap/\e$BHs\e(B-spam \e$B$G$O$J$/$F\e(B ifile \e$B$N$9$Y$F\e(B
+@code{spam-use-ifile} \e$B$K!"C1$J$k\e(B spam/\e$BHs\e(B-spam \e$B$G$O$J$/$F\e(B ifile \e$B$N$9$Y$F\e(B
\e$B$N%+%F%4%j!<$rM?$($F$b$i$$$?$$$J$i$P!"$3$NJQ?t$rM-8z$K$7$F2<$5$$!#$3$l$r\e(B
\e$B;H$&>l9g$O!"$=$NJ88%$K=q$+$l$F$$$k$h$&$K\e(B ifile \e$B$r71N}$7$F$*$+$J$1$l$P$J\e(B
\e$B$j$^$;$s!#\e(B
\e$B$$>l9g\e(B (\e$B$"$J$?$O\e(B OS/2 \e$B%f!<%6$G$9\e(B)\e$B!"0J2<$N$h$&$K$9$k$3$H$,$G$-$^$9!#\e(B
@lisp
+@group
(setq nnheader-file-name-translation-alist
'((?: . ?_)))
+@end group
@end lisp
\e$B<B:]$K$O!"$3$l$O\e(B OS/2 \e$B$H\e(B (\e$B$/$=\e(B) MS Windows \e$B%7%9%F%`>e$G$N$3$NJQ?t$N=i4|\e(B
* Troubleshooting:: \e$B>e<j$/9T$+$J$+$C$?$H$-$K;n$9$+$b$7$l$J$$$3$H\e(B
* Gnus Reference Guide:: \e$B?'!9$J5;=QE*$J$b$N\e(B
* Emacs for Heathens:: Emacs \e$B$NMQ8l$N<jC;$JF3F~\e(B
-* Frequently Asked Questions::
+* Frequently Asked Questions:: Gnus \e$B$N\e(B FAQ
@end menu
@node XEmacs
* Red Gnus:: \e$B;0HVL\$N:G>e$N$b$N\e(B---Gnus 5.4/5.5
* Quassia Gnus:: 2 \e$B$+$1$k\e(B 2 \e$B$O\e(B 4\e$B!"$b$7$/$O\e(B Gnus 5.6/5.7
* Pterodactyl Gnus:: \e$B8^HVL\!"\e(BP \e$B$G;O$^$k!"$b$7$/$O\e(B Gnus 5.8/5.9 \e$B$H$7$FCN$i$l$F$$$k$b$N\e(B
+* Oort Gnus:: \e$B5pBg$J!#1s$/MZ$+$J!#\e(BGnus 5.10\e$B!#\e(B
@end menu
\e$B$3$N%j%9%H$O!"$b$A$m$s!"\e(B@emph{\e$B$?$$$F$$$N\e(B} \e$B=EMW$J?7$7$$5!G=$K4X$9\e(B
Gnus \e$B$O\e(B @code{nnimap} \e$B$K$h$C$F\e(B @acronym{IMAP} \e$B%a!<%k$rFI$`$3$H$,$G$-$^$9!#\e(B
@end itemize
+@c TRANSLATEME
+@node Oort Gnus
+@subsubsection Oort Gnus
+@cindex Oort
+
+New features in Gnus 5.10:
+
+@itemize @bullet
+
+@item
+The revised Gnus @acronym{FAQ} is included in the manual,
+@xref{Frequently Asked Questions}.
+
+@item
+Upgrading from previous (stable) version if you have used Oort.
+
+If you have tried Oort (the unstable Gnus branch leading to this
+release) but went back to a stable version, be careful when upgrading to
+this version. In particular, you will probably want to remove all
+@file{.marks} (nnml) and @file{.mrk} (nnfolder) files, so that flags are
+read from your @file{.newsrc.eld} instead of from the
+@file{.marks}/@file{.mrk} file where this release store flags. See a
+later entry for more information about marks. Note that downgrading
+isn't save in general.
+
+@item
+Article Buttons
+
+More buttons for URLs, mail addresses, Message-IDs, Info links, man
+pages and Emacs or Gnus related references. @xref{Article Buttons}. The
+variables @code{gnus-button-@var{*}-level} can be used to control the
+appearance of all article buttons. @xref{Article Button Levels}.
+
+@item
+Dired integration
+
+@code{gnus-dired-minor-mode} installs key bindings in dired buffers to send
+a file as an attachment (@kbd{C-c C-a}), open a file using the approriate
+mailcap entry (@kbd{C-c C-f}), and print a file using the mailcap entry
+(@kbd{C-c P}). It is enabled with
+@lisp
+(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)
+@end lisp
+
+@item
+Gnus can display RSS newsfeeds as a newsgroup. @xref{RSS}.
+
+@item
+Single-part yenc encoded attachments can be decoded.
+
+@item
+Picons
+
+The picons code has been reimplemented to work in GNU Emacs -- some of
+the previous options have been removed or renamed.
+
+Picons are small ``personal icons'' representing users, domain and
+newsgroups, which can be displayed in the Article buffer.
+@xref{Picons}.
+
+@item
+If the new option @code{gnus-treat-body-boundary} is non-@code{nil}, a
+boundary line is drawn at the end of the headers.
+
+@item
+Retrieval of charters and control messages
+
+There are new commands for fetching newsgroup charters (@kbd{H c}) and
+control messages (@kbd{H C}).
+
+@item
+Delayed articles
+
+You can delay the sending of a message with @kbd{C-c C-j} in the Message
+buffer. The messages are delivered at specified time. This is useful
+for sending yourself reminders. @xref{Delayed Articles}.
+
+@item
+If @code{auto-compression-mode} is enabled, attachments are automatically
+decompressed when activated.
+
+@item
+If the new option @code{nnml-use-compressed-files} is non-@code{nil},
+the nnml back end allows compressed message files.
+
+@item
+Signed article headers (X-PGP-Sig) can be verified with @kbd{W p}.
+
+@item
+The Summary Buffer uses an arrow in the fringe to indicate the current
+article. Use @code{(setq gnus-summary-display-arrow nil)} to disable it.
+
+@item
+Warn about email replies to news
+
+Do you often find yourself replying to news by email by mistake? Then
+the new option @code{gnus-confirm-mail-reply-to-news} is just the thing for
+you.
+
+@item
+If the new option @code{gnus-summary-display-while-building} is
+non-@code{nil}, the summary buffer is shown and updated as it's being
+built.
+
+@item
+The new @code{recent} mark @samp{.} indicates newly arrived messages (as
+opposed to old but unread messages).
+
+@item
+The new option @code{gnus-gcc-mark-as-read} automatically marks
+Gcc articles as read.
+
+@item
+The nndoc back end now supports mailman digests and exim bounces.
+
+@item
+Gnus supports RFC 2369 mailing list headers, and adds a number of
+related commands in mailing list groups.
+
+@item
+The Date header can be displayed in a format that can be read aloud
+in English. @xref{Article Date}.
+
+@item
+The envelope sender address can be customized when using Sendmail.
+@xref{Mail Variables, Mail Variables,, message, Message Manual}.
+
+@item
+diffs are automatically highlighted in groups matching
+@code{mm-uu-diff-groups-regexp}
+
+@item
+TLS wrapper shipped with Gnus
+
+TLS/SSL is now supported in @acronym{IMAP} and @acronym{NNTP} via
+@file{tls.el} and GNUTLS. The old TLS/SSL support via (external third
+party) @file{ssl.el} and OpenSSL still works.
+
+@item
+New @file{make.bat} for compiling and installing Gnus under MS Windows
+
+Use @file{make.bat} if you want to install Gnus under MS Windows, the
+first argument to the batch-program should be the directory where
+@file{xemacs.exe} respectively @file{emacs.exe} is located, iff you want
+to install Gnus after compiling it, give @file{make.bat} @code{/copy} as
+the second parameter.
+
+@file{make.bat} has been rewritten from scratch, it now features
+automatic recognition of XEmacs and GNU Emacs, generates
+@file{gnus-load.el}, checks if errors occur while compilation and
+generation of info files and reports them at the end of the build
+process. It now uses @command{makeinfo} if it is available and falls
+back to @file{infohack.el} otherwise. @file{make.bat} should now
+install all files which are necessary to run Gnus and be generally a
+complete replacement for the @command{configure; make; make install}
+cycle used under Unix systems.
+
+The new @file{make.bat} makes @file{make-x.bat} superfluous, so it has
+been removed.
+
+@item
+Support for non-@acronym{ASCII} domain names
+
+Message supports non-@acronym{ASCII} domain names in From:, To: and
+Cc: and will query you whether to perform encoding when you try to
+send a message. The variable @code{message-use-idna} controls this.
+Gnus will also decode non-@acronym{ASCII} domain names in From:, To:
+and Cc: when you view a message. The variable @code{gnus-use-idna}
+controls this.
+
+@item
+Better handling of Microsoft citation styles
+
+Gnus now tries to recognize the mangled header block that some Microsoft
+mailers use to indicate that the rest of the message is a citation, even
+though it is not quoted in any way. The variable
+@code{gnus-cite-unsightly-citation-regexp} matches the start of these
+citations.
+
+@item
+@code{gnus-article-skip-boring}
+
+If you set @code{gnus-article-skip-boring} to @code{t}, then Gnus will
+not scroll down to show you a page that contains only boring text,
+which by default means cited text and signature. You can customize
+what is skippable using @code{gnus-article-boring-faces}.
+
+This feature is especially useful if you read many articles that
+consist of a little new content at the top with a long, untrimmed
+message cited below.
+
+@item
+The format spec @code{%C} for positioning point has changed to @code{%*}.
+
+@item
+The new variable @code{gnus-parameters} can be used to set group parameters.
+
+Earlier this was done only via @kbd{G p} (or @kbd{G c}), which stored
+the parameters in @file{~/.newsrc.eld}, but via this variable you can
+enjoy the powers of customize, and simplified backups since you set the
+variable in @file{~/.emacs} instead of @file{~/.newsrc.eld}. The
+variable maps regular expressions matching group names to group
+parameters, a'la:
+@lisp
+(setq gnus-parameters
+ '(("mail\\..*"
+ (gnus-show-threads nil)
+ (gnus-use-scoring nil))
+ ("^nnimap:\\(foo.bar\\)$"
+ (to-group . "\\1"))))
+@end lisp
+
+@item
+Smileys (@samp{:-)}, @samp{;-)} etc) are now iconized for Emacs too.
+
+Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.emacs} to
+disable it.
+
+@item
+Gnus no longer generate the Sender: header automatically.
+
+Earlier it was generated iff the user configurable email address was
+different from the Gnus guessed default user address. As the guessing
+algorithm is rarely correct these days, and (more controversally) the
+only use of the Sender: header was to check if you are entitled to
+cancel/supersede news (which is now solved by Cancel Locks instead,
+see another entry), generation of the header has been disabled by
+default. See the variables @code{message-required-headers},
+@code{message-required-news-headers}, and
+@code{message-required-mail-headers}.
+
+@item
+Features from third party @file{message-utils.el} added to @file{message.el}.
+
+Message now asks if you wish to remove @samp{(was: <old subject>)} from
+subject lines (see @code{message-subject-trailing-was-query}). @kbd{C-c
+M-m} and @kbd{C-c M-f} inserts markers indicating included text.
+@kbd{C-c C-f a} adds a X-No-Archive: header. @kbd{C-c C-f x} inserts
+appropriate headers and a note in the body for cross-postings and
+followups (see the variables @code{message-cross-post-@var{*}}).
+
+@item
+References and X-Draft-Headers are no longer generated when you start
+composing messages and @code{message-generate-headers-first} is
+@code{nil}.
+
+@item
+Improved anti-spam features.
+
+Gnus is now able to take out spam from your mail and news streams
+using a wide variety of programs and filter rules. Among the supported
+methods are RBL blocklists, bogofilter and white/blacklists. Hooks
+for easy use of external packages such as SpamAssassin and Hashcash
+are also new. @xref{Thwarting Email Spam}.
+
+@item
+Easy inclusion of X-Faces headers.
+
+@item
+In the summary buffer, the new command @kbd{/ N} inserts new messages
+and @kbd{/ o} inserts old messages.
+
+@item
+Gnus decodes morse encoded messages if you press @kbd{W m}.
+
+@item
+Unread count correct in nnimap groups.
+
+The estimated number of unread articles in the group buffer should now
+be correct for nnimap groups. This is achieved by calling
+@code{nnimap-fixup-unread-after-getting-new-news} from the
+@code{gnus-setup-news-hook} (called on startup) and
+@code{gnus-after-getting-new-news-hook}. (called after getting new
+mail). If you have modified those variables from the default, you may
+want to add @code{nnimap-fixup-unread-after-getting-new-news} again. If
+you were happy with the estimate and want to save some (minimal) time
+when getting new mail, remove the function.
+
+@item
+Group Carbon Copy (GCC) quoting
+
+To support groups that contains SPC and other weird characters, groups
+are quoted before they are placed in the Gcc: header. This means
+variables such as @code{gnus-message-archive-group} should no longer
+contain quote characters to make groups containing SPC work. Also, if
+you are using the string @samp{nnml:foo, nnml:bar} (indicating Gcc
+into two groups) you must change it to return the list
+@code{("nnml:foo" "nnml:bar")}, otherwise the Gcc: line will be quoted
+incorrectly. Note that returning the string @samp{nnml:foo, nnml:bar}
+was incorrect earlier, it just didn't generate any problems since it
+was inserted directly.
+
+@item
+@file{~/News/overview/} not used.
+
+As a result of the following change, the @file{~/News/overview/}
+directory is not used any more. You can safely delete the entire
+hierarchy.
+
+@item
+@code{gnus-agent}
+
+The Gnus Agent has seen a major updated and is now enabled by default,
+and all nntp and nnimap servers from @code{gnus-select-method} and
+@code{gnus-secondary-select-method} are agentized by default. Earlier
+only the server in @code{gnus-select-method} was agentized by the
+default, and the agent was disabled by default. When the agent is
+enabled, headers are now also retrieved from the Agent cache instead
+of the back ends when possible. Earlier this only happened in the
+unplugged state. You can enroll or remove servers with @kbd{J a} and
+@kbd{J r} in the server buffer. Gnus will not download articles into
+the Agent cache, unless you instruct it to do so, though, by using
+@kbd{J u} or @kbd{J s} from the Group buffer. You revert to the old
+behaviour of having the Agent disabled with @code{(setq gnus-agent
+nil)}. Note that putting @code{(gnus-agentize)} in @file{~/.gnus.el}
+is not needed any more.
+
+@item
+@code{gnus-summary-line-format}
+
+The default value changed to @samp{%U%R%z%I%(%[%4L: %-23,23f%]%)
+%s\n}. Moreover @code{gnus-extra-headers},
+@code{nnmail-extra-headers} and @code{gnus-ignored-from-addresses}
+changed their default so that the users name will be replaced by the
+recipient's name or the group name posting to for @acronym{NNTP}
+groups.
+
+@item
+@file{deuglify.el} (@code{gnus-article-outlook-deuglify-article})
+
+A new file from Raymond Scholz @email{rscholz@@zonix.de} for deuglifying
+broken Outlook (Express) articles.
+
+@item
+@code{(require 'gnus-load)}
+
+If you use a stand-alone Gnus distribution, you'd better add
+@code{(require 'gnus-load)} into your @file{~/.emacs} after adding the Gnus
+lisp directory into load-path.
+
+File @file{gnus-load.el} contains autoload commands, functions and variables,
+some of which may not be included in distributions of Emacsen.
+
+@item
+@code{gnus-slave-unplugged}
+
+A new command which starts Gnus offline in slave mode.
+
+@item
+@code{message-insinuate-rmail}
+
+Adding @code{(message-insinuate-rmail)} and @code{(setq
+mail-user-agent 'gnus-user-agent)} in @file{.emacs} convinces Rmail to
+compose, reply and forward messages in message-mode, where you can
+enjoy the power of @acronym{MML}.
+
+@item
+@code{message-minibuffer-local-map}
+
+The line below enables BBDB in resending a message:
+@lisp
+(define-key message-minibuffer-local-map [(tab)]
+ 'bbdb-complete-name)
+@end lisp
+
+@item
+Externalizing and deleting of attachments.
+
+If @code{gnus-gcc-externalize-attachments} or
+@code{message-fcc-externalize-attachments} is non-@code{nil}, attach
+local files as external parts.
+
+The command @code{gnus-mime-save-part-and-strip} (bound to @kbd{C-o}
+on @acronym{MIME} buttons) saves a part and replaces the part with an
+external one. @code{gnus-mime-delete-part} (bound to @kbd{d} on
+@acronym{MIME} buttons) removes a part. It works only on back ends
+that support editing.
+
+@item
+@code{gnus-default-charset}
+
+The default value is determined from the
+@code{current-language-environment} variable, instead of
+@code{iso-8859-1}. Also the @samp{.*} item in
+@code{gnus-group-charset-alist} is removed.
+
+@item
+@code{gnus-posting-styles}
+
+Add a new format of match like
+@lisp
+((header "to" "larsi.*org")
+ (Organization "Somewhere, Inc."))
+@end lisp
+The old format like the lines below is obsolete, but still accepted.
+@lisp
+(header "to" "larsi.*org"
+ (Organization "Somewhere, Inc."))
+@end lisp
+
+@item
+@code{message-ignored-news-headers} and @code{message-ignored-mail-headers}
+
+@samp{X-Draft-From} and @samp{X-Gnus-Agent-Meta-Information} have been
+added into these two variables. If you customized those, perhaps you
+need add those two headers too.
+
+@item
+Gnus reads the @acronym{NOV} and articles in the Agent if plugged.
+
+If one reads an article while plugged, and the article already exists
+in the Agent, it won't get downloaded once more. @code{(setq
+gnus-agent-cache nil)} reverts to the old behavior.
+
+@item
+Gnus supports the ``format=flowed'' (RFC 2646) parameter.
+
+On composing messages, it is enabled by @code{use-hard-newlines}. Decoding
+format=flowed was present but not documented in earlier versions.
+
+@item
+Gnus supports the generation of RFC 2298 Disposition Notification requests.
+
+This is invoked with the @kbd{C-c M-n} key binding from message mode.
+
+@item
+Gnus supports Maildir groups.
+
+Gnus includes a new back end @file{nnmaildir.el}. @xref{Maildir}.
+
+@item
+Printing capabilities are enhanced.
+
+Gnus supports Muttprint natively with @kbd{O P} from the Summary and
+Article buffers. Also, each individual @acronym{MIME} part can be
+printed using @kbd{p} on the @acronym{MIME} button.
+
+@item
+Message supports the Importance: (RFC 2156) header.
+
+In the message buffer, @kbd{C-c C-f C-i} or @kbd{C-c C-u} cycles through
+the valid values.
+
+@item
+Gnus supports Cancel Locks in News.
+
+This means a header @samp{Cancel-Lock} is inserted in news posting. It is
+used to determine if you wrote a article or not (for cancelling and
+superseding). Gnus generates a random password string the first time
+you post a message, and saves it in your @file{~/.emacs} using the Custom
+system. While the variable is called @code{canlock-password}, it is not
+security sensitive data. Publishing your canlock string on the web
+will not allow anyone to be able to anything she could not already do.
+The behaviour can be changed by customizing @code{message-insert-canlock}.
+
+@item
+Gnus supports server-side mail filtering using Sieve.
+
+Sieve rules can be added as Group Parameters for groups, and the
+complete Sieve script is generated using @kbd{D g} from the Group
+buffer, and then uploaded to the server using @kbd{C-c C-l} in the
+generated Sieve buffer. @xref{Sieve Commands}, and the new Sieve
+manual @ref{Top, , Top, sieve, Emacs Sieve}.
+
+@item
+Extended format specs.
+
+Format spec @samp{%&user-date;} is added into
+@code{gnus-summary-line-format-alist}. Also, user defined extended
+format specs are supported. The extended format specs look like
+@samp{%u&foo;}, which invokes function
+@code{gnus-user-format-function-@var{foo}}. Because @samp{&} is used as the
+escape character, old user defined format @samp{%u&} is no longer supported.
+
+@item
+@kbd{/ *} (@code{gnus-summary-limit-include-cached}) is rewritten.
+
+It was aliased to @kbd{Y c}
+(@code{gnus-summary-insert-cached-articles}). The new function filters
+out other articles.
+
+@item
+Group names are treated as UTF-8 by default.
+
+This is supposedly what USEFOR wanted to migrate to. See
+@code{gnus-group-name-charset-group-alist} and
+@code{gnus-group-name-charset-method-alist} for customization.
+
+@item
+The nnml and nnfolder backends store marks for each groups.
+
+This makes it possible to take backup of nnml/nnfolder servers/groups
+separately of @file{~/.newsrc.eld}, while preserving marks. It also
+makes it possible to share articles and marks between users (without
+sharing the @file{~/.newsrc.eld} file) within e.g. a department. It
+works by storing the marks stored in @file{~/.newsrc.eld} in a per-group
+file @file{.marks} (for nnml) and @file{@var{groupname}.mrk} (for
+nnfolder, named @var{groupname}). If the nnml/nnfolder is moved to
+another machine, Gnus will automatically use the @file{.marks} or
+@file{.mrk} file instead of the information in @file{~/.newsrc.eld}.
+The new server variables @code{nnml-marks-is-evil} and
+@code{nnfolder-marks-is-evil} can be used to disable this feature.
+
+@item
+The menu bar item (in Group and Summary buffer) named ``Misc'' has
+been renamed to ``Gnus''.
+
+@item
+The menu bar item (in Message mode) named ``@acronym{MML}'' has been
+renamed to ``Attachments''. Note that this menu also contains security
+related stuff, like signing and encryption (@pxref{Security, Security,,
+message, Message Manual}).
+
+@item
+@code{gnus-group-charset-alist} and
+@code{gnus-group-ignored-charsets-alist}.
+
+The regexps in these variables are compared with full group names
+instead of real group names in 5.8. Users who customize these
+variables should change those regexps accordingly. For example:
+@lisp
+("^han\\>" euc-kr) -> ("\\(^\\|:\\)han\\>" euc-kr)
+@end lisp
+
+@item
+Gnus supports @acronym{PGP} (RFC 1991/2440), @acronym{PGP/MIME} (RFC
+2015/3156) and @acronym{S/MIME} (RFC 2630-2633).
+
+It needs an external @acronym{S/MIME} and OpenPGP implementation, but no
+additional lisp libraries. This add several menu items to the
+Attachments menu, and @kbd{C-c RET} key bindings, when composing
+messages. This also obsoletes @code{gnus-article-hide-pgp-hook}.
+
+@item
+Gnus inlines external parts (message/external).
+
+@item
+@acronym{MML} (Mime compose) prefix changed from @kbd{M-m} to @kbd{C-c
+C-m}.
+
+This change was made to avoid conflict with the standard binding of
+@code{back-to-indentation}, which is also useful in message mode.
+@end itemize
+
@iftex
@page
@c use-kuten-for-period: t
@c use-touten-for-comma: t
@c End:
-% LocalWords: BNF mucho detailmenu cindex kindex kbd
-% LocalWords: findex Gnusae vindex dfn dfn samp nntp setq nnspool nntpserver
-% LocalWords: nnmbox newusers Blllrph NEWGROUPS dingnusdingnusdingnus
-% LocalWords: pre fab rec comp nnslashdot regex ga ga sci nnml nnbabyl nnmh
-% LocalWords: nnfolder emph looong eld newsreaders defun init elc pxref
Group Buffer Format
* Group Line Specification:: Deciding how the group buffer is to look.
-* Group Modeline Specification:: The group buffer modeline.
+* Group Mode Line Specification:: The group buffer mode line.
* Group Highlighting:: Having nice colors in the group buffer.
Group Topics
* Article Date:: Grumble, UT!
* Article Display:: Display various stuff---X-Face, Picons, Smileys
* Article Signature:: What is a signature?
-* Article Miscellania:: Various other stuff.
+* Article Miscellanea:: Various other stuff.
Alternative Approaches
* Troubleshooting:: What you might try if things do not work.
* Gnus Reference Guide:: Rilly, rilly technical stuff.
* Emacs for Heathens:: A short introduction to Emacsian terms.
-* Frequently Asked Questions::
+* Frequently Asked Questions:: The Gnus FAQ.
History
* Red Gnus:: Third time best---Gnus 5.4/5.5.
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
+* Oort Gnus:: It's big. It's far out. Gnus 5.10.
Customization
@menu
* Group Line Specification:: Deciding how the group buffer is to look.
-* Group Modeline Specification:: The group buffer modeline.
+* Group Mode Line Specification:: The group buffer mode line.
* Group Highlighting:: Having nice colors in the group buffer.
@end menu
group, or a bogus native group.
-@node Group Modeline Specification
-@subsection Group Modeline Specification
-@cindex group modeline
+@node Group Mode Line Specification
+@subsection Group Mode Line Specification
+@cindex group mode line
@vindex gnus-group-mode-line-format
The mode line can be changed by setting
parameters have this form @emph{except} local variable specs, which are
not dotted pairs, but proper lists.
-Some parameters have correspondant customizable variables, each of which
+Some parameters have correspondent customizable variables, each of which
is an alist of regexps and values.
The following group parameters can be used:
@end group
@end lisp
+@noindent
or
@lisp
* Article Date:: Grumble, UT!
* Article Display:: Display various stuff---X-Face, Picons, Smileys
* Article Signature:: What is a signature?
-* Article Miscellania:: Various other stuff.
+* Article Miscellanea:: Various other stuff.
@end menu
Unwrap lines that appear to be wrapped citation lines. You can control
what lines will be unwrapped by frobbing
@code{gnus-outlook-deuglify-unwrap-min} and
-@code{gnus-outlook-deuglify-unwrap-max}, indicating the miminum and
+@code{gnus-outlook-deuglify-unwrap-max}, indicating the minimum and
maximum length of an unwrapped citation line.
(@code{gnus-article-outlook-unwrap-lines}).
used to say what headers to apply the buttonize coding to:
@lisp
-(@var{header} @var{regexp} @var{nutton-par} @var{use-p} @var{function} @var{data-par})
+(@var{header} @var{regexp} @var{button-par} @var{use-p} @var{function} @var{data-par})
@end lisp
@var{header} is a regular expression.
@samp{foo123@@bar.invalid} is pushed. Strings like this can be either a
message ID or a mail address. If it is one of the symbols @code{mid} or
@code{mail}, Gnus will always assume that the string is a message ID or
-a mail address, respectivly. If this variable is set to the symbol
+a mail address, respectively. If this variable is set to the symbol
@code{ask}, always query the user what do do. If it is a function, this
function will be called with the string as it's only argument. The
function must return @code{mid}, @code{mail}, @code{invalid} or
signature after all.
-@node Article Miscellania
-@subsection Article Miscellania
+@node Article Miscellanea
+@subsection Article Miscellanea
@table @kbd
@item A t
If the value is an integer, @var{n}, update the display every @var{n}
lines. The default is @code{nil}.
+@vindex gnus-summary-display-arrow
+@item gnus-summary-display-arrow
+If non-@code{nil}, display an arrow in the fringe to indicate the
+current article.
+
@vindex gnus-summary-mode-hook
@item gnus-summary-mode-hook
This hook is called when creating a summary mode buffer.
@enumerate
@item
To handle @acronym{PGP} and @acronym{PGP/MIME} messages, you have to
-install an OpenPGP implementation such as GnuPG. The lisp interface
+install an OpenPGP implementation such as GnuPG. The Lisp interface
to GnuPG included with Gnus is called PGG (@pxref{Top, ,PGG, pgg, PGG
Manual}), but Mailcrypt and gpg.el are also supported.
article. That's well and nice, but there's also lots of information
most people do not want to see---what systems the article has passed
through before reaching you, the @code{Message-ID}, the
-@code{References}, etc. ad nauseum---and you'll probably want to get rid
+@code{References}, etc. ad nauseam---and you'll probably want to get rid
of some of those lines. If you want to keep all those lines in the
article buffer, you can set @code{gnus-show-all-headers} to @code{t}.
If non-@code{nil}, delete incoming files after handling them. If
@code{t}, delete the files immediately, if @code{nil}, never delete any
files. If a positive number, delete files older than number of days
-(This will only happen, when reveiving new mail). You may also set
+(This will only happen, when receiving new mail). You may also set
@code{mail-source-delete-incoming} to @code{nil} and call
@code{mail-source-delete-old-incoming} from a hook or interactively.
@samp{\<} and @samp{\>} pairs.
@vindex nnmail-split-abbrev-alist
-@var{field} and @var{value} can also be lisp symbols, in that case they
+@var{field} and @var{value} can also be Lisp symbols, in that case they
are expanded as specified by the variable
@code{nnmail-split-abbrev-alist}. This is an alist of cons cells, where
the @code{car} of a cell contains the key, and the @code{cdr} contains the associated
@var{groups} may be a regular expression or a list of group names whose
parameters will be scanned to generate the output split.
@var{no-crosspost} can be used to disable cross-posting; in this case, a
-single @code{|} split will be output. @var{catch-all} is the fallback
+single @code{|} split will be output. @var{catch-all} is the fall back
fancy split, used like @var{gnus-group-split-default-catch-all-group}.
If @var{catch-all} is @code{nil}, or if @var{split-regexp} matches the
empty string in any selected group, no catch-all split will be issued.
course.
To make Gnus get rid of your unwanted mail, you have to mark the
-articles as @dfn{expirable}. (With the default keybindings, this means
+articles as @dfn{expirable}. (With the default key bindings, this means
that you have to type @kbd{E}.) This does not mean that the articles
will disappear right away, however. In general, a mail article will be
deleted from your system if, 1) it is marked as expirable, AND 2) it is
maildir.
Maildir format was designed to allow concurrent deliveries and
-reading, without needing locks. With other backends, you would have
+reading, without needing locks. With other back ends, you would have
your mail delivered to a spool of some kind, and then you would
configure Gnus to split mail from that spool into your groups. You
can still do that with nnmaildir, but the more common configuration is
nnmaildir uses several group parameters. It's safe to ignore all
this; the default behavior for nnmaildir is the same as the default
-behavior for other mail backends: articles are deleted after one week,
+behavior for other mail back ends: articles are deleted after one week,
etc. Except for the expiry parameters, all this functionality is
unique to nnmaildir, so you can ignore it if you're just trying to
-duplicate the behavior you already have with another backend.
+duplicate the behavior you already have with another back end.
If the value of any of these parameters is a vector, the first element
is evaluated as a Lisp form and the result is used, rather than the
original value. If the value is not a vector, the value itself is
evaluated as a Lisp form. (This is why these parameters use names
different from those of other, similar parameters supported by other
-backends: they have different, though similar, meanings.) (For
+back ends: they have different, though similar, meanings.) (For
numbers, strings, @code{nil}, and @code{t}, you can ignore the
@code{eval} business again; for other values, remember to use an extra
quote and wrap the value in a vector when appropriate.)
it will be expired, or the symbol @code{never} to specify that
articles should never be expired. If this parameter is not set,
nnmaildir falls back to the usual
-@code{nnmail-expiry-wait}(@code{-function}) variables (overridable by
+@code{nnmail-expiry-wait}(@code{-function}) variables (overrideable by
the @code{expiry-wait}(@code{-function}) group parameters. If you
wanted a value of 3 days, you could use something like @code{[(* 3 24
60 60)]}; nnmaildir will evaluate the form and use the result. An
has only one.)
Probably the only reason for frobing this would be if you're trying
-enable per-user persistant dormant flags, using something like:
+enable per-user persistent dormant flags, using something like:
@lisp
(setcdr (assq 'dormant nnimap-mark-to-flag-alist)
to multiple groups. Which you use is entirely up to you. Topic
parameters do override categories so, if you mix the two, you'll have
to take that into account. If you have a few groups that deviate from
-your policy, you can use grou parameters (@pxref{Group Parameters}) to
+your policy, you can use group parameters (@pxref{Group Parameters}) to
configure them.
@item
@kindex @@ (Agent Summary)
@findex gnus-agent-toggle-mark
Toggle whether to download the article
-(@code{gnus-agent-toggle-mark}). The dowload mark is @samp{%} by
+(@code{gnus-agent-toggle-mark}). The download mark is @samp{%} by
default.
@item J c
@pxref{Agent Variables}) to always download headers and articles while
plugged. Gnus will almost certainly be slower, but it will be kept
synchronized with the server. That last point probably won't make any
-sense if you are using a nntp or nnimap backend.
+sense if you are using a nntp or nnimap back end.
@node Agent Expiry
@subsection Agent Expiry
@cindex Gnus Agent expiry
@cindex expiry
-The Agent backend, @code{nnagent}, doesn't handle expiry. Well, at
-least it doesn't handle it like other backends. Instead, there are
+The Agent back end, @code{nnagent}, doesn't handle expiry. Well, at
+least it doesn't handle it like other back ends. Instead, there are
special @code{gnus-agent-expire} and @code{gnus-agent-expire-group}
commands that will expire all read articles that are older than
@code{gnus-agent-expire-days} days. They can be run whenever you feel
This example demonstrates most score file elements. For a different
approach, see @pxref{Advanced Scoring}.
-Even though this looks much like lisp code, nothing here is actually
-@code{eval}ed. The lisp reader is used to read this form, though, so it
+Even though this looks much like Lisp code, nothing here is actually
+@code{eval}ed. The Lisp reader is used to read this form, though, so it
has to be valid syntactically, if not semantically.
Six keys are supported by this alist:
when he's talking about Gnus:
@example
+@group
((&
("from" "Lars Ingebrigtsen")
("subject" "Gnus"))
1000)
+@end group
@end example
Quite simple, huh?
Gnus includes a command to help you while creating your own format
specs. @kbd{M-x gnus-update-format} will @code{eval} the current form,
update the spec in question and pop you to a buffer where you can
-examine the resulting lisp code to be run to generate the line.
+examine the resulting Lisp code to be run to generate the line.
@node Image Enhancements
@section Image Enhancements
-XEmacs, as well as Emacs 21, is able to display pictures and stuff, so
-Gnus has taken advantage of that.
+XEmacs, as well as Emacs 21@footnote{Emacs 21 on MS Windows doesn't
+support images yet.}, is able to display pictures and stuff, so Gnus has
+taken advantage of that.
@menu
* Picons:: How to display pictures of what you're reading.
@item gnus-picon-file-types
@vindex gnus-picon-file-types
Ordered list of suffixes on picon file names to try. Defaults to
-@code{("xpm" "gif" "xbm")} minus those not builtin your Emacs.
+@code{("xpm" "gif" "xbm")} minus those not built-in your Emacs.
@end table
variables. Try @code{customize-group} on the @samp{spam} variable
group.
+@vindex gnus-spam-process-newsgroups
The concepts of ham processors and spam processors are very important.
Ham processors and spam processors for a group can be set with the
@code{spam-process} group parameter, or the
processors take mail known to be spam and process it so similar spam
will be detected later.
+@vindex gnus-spam-newsgroup-contents
Gnus learns from the spam you get. You have to collect your spam in
one or more spam groups, and set or customize the variable
@code{spam-junk-mailgroups} as appropriate. You can also declare
considered @emph{unclassified}. All groups are unclassified by
default.
+@vindex gnus-spam-mark
+@cindex $
In spam groups, all messages are considered to be spam by default:
-they get the @samp{$} mark when you enter the group. You must review
-these messages from time to time and remove the @samp{$} mark for
+they get the @samp{$} mark (@code{gnus-spam-mark}) when you enter the
+group. If you have seen a message, had it marked as spam, then
+unmarked it, it won't be marked as spam when you enter the group
+thereafter. You can disable that behavior, so all unread messages
+will get the @samp{$} mark, if you set the
+@code{spam-mark-only-unseen-as-spam} parameter to nil. You should
+remove the @samp{$} mark when you are in the group summary buffer for
every message that is not spam after all. To remove the @samp{$}
mark, you can use @kbd{M-u} to ``unread'' the article, or @kbd{d} for
declaring it read the non-spam way. When you leave a group, all
will study them as spam samples.
Messages may also be deleted in various other ways, and unless
-@code{spam-ham-marks} gets overridden below, marks @samp{R} and
-@samp{r} for default read or explicit delete, marks @samp{X} and
+@code{ham-marks} group parameter gets overridden below, marks @samp{R}
+and @samp{r} for default read or explicit delete, marks @samp{X} and
@samp{K} for automatic or explicit kills, as well as mark @samp{Y} for
low scores, are all considered to be associated with articles which
are not spam. This assumption might be false, in particular if you
use kill files or score files as means for detecting genuine spam, you
-should then adjust the @code{spam-ham-marks} variable.
+should then adjust the @code{ham-marks} group parameter.
-@defvar spam-ham-marks
-You can customize this variable to be the list of marks you want to
-consider ham. By default, the list contains the deleted, read,
-killed, kill-filed, and low-score marks.
+@defvar ham-marks
+You can customize this group or topic parameter to be the list of
+marks you want to consider ham. By default, the list contains the
+deleted, read, killed, kill-filed, and low-score marks.
@end defvar
-@defvar spam-spam-marks
-You can customize this variable to be the list of marks you want to
-consider spam. By default, the list contains only the spam mark.
+@defvar spam-marks
+You can customize this group or topic parameter to be the list of
+marks you want to consider spam. By default, the list contains only
+the spam mark.
@end defvar
When you leave @emph{any} group, regardless of its
spam. Best is to make sure that real spam is marked with @samp{$},
and nothing else.
+@vindex gnus-ham-process-destinations
When you leave a @emph{spam} group, all spam-marked articles are
marked as expired after processing with the spam processor. This is
not done for @emph{unclassified} or @emph{ham} groups. Also, any
names (it's easiest to customize this variable with
@code{customize-variable gnus-ham-process-destinations}). The ultimate
location is a group name. If the @code{ham-process-destination}
-parameter is not set, spam articles are only expired.
+parameter is not set, ham articles are left in place. If the
+@code{spam-mark-ham-unread-before-move-from-spam-group} parameter is
+set, the ham articles are marked as unread before being moved.
When you leave a @emph{ham} group, all ham-marked articles are sent to
a ham processor, which will study these as non-spam samples.
+@vindex gnus-spam-process-destinations
When you leave a @emph{ham} or @emph{unclassified} group, all
@strong{spam} articles are moved to a location determined by either
the @code{spam-process-destination} group parameter or a match in the
The @code{spam-split} function will process incoming mail and send the
mail considered to be spam into the group name given by the variable
@code{spam-split-group}. By default that group name is @samp{spam},
-but you can customize it.
+but you can customize @code{spam-split-group}.
+
+You can also give @code{spam-split} a parameter,
+e.g. @samp{'spam-use-regex-headers}. Why is this useful?
+
+Take these split rules (with @code{spam-use-regex-headers} and
+@code{spam-use-blackholes} set):
+
+@example
+ nnimap-split-fancy '(|
+ (any "ding" "ding")
+ (: spam-split)
+ ;; default mailbox
+ "mail")
+@end example
+
+Now, the problem is that you want all ding messages to make it to the
+ding folder. But that will let obvious spam (for example, spam
+detected by SpamAssassin, and @code{spam-use-regex-headers}) through,
+when it's sent to the ding list. On the other hand, some messages to
+the ding list are from a mail server in the blackhole list, so the
+invocation of @code{spam-split} can't be before the ding rule.
+
+You can let SpamAssassin headers supercede ding rules, but all other
+@code{spam-split} rules (including a second invocation of the
+regex-headers check) will be after the ding rule:
+
+@example
+ nnimap-split-fancy '(|
+ (: spam-split 'spam-use-regex-headers)
+ (any "ding" "ding")
+ (: spam-split)
+ ;; default mailbox
+ "mail")
+@end example
+
+Basically, this lets you invoke specific @code{spam-split} checks
+depending on your particular needs. You don't have to throw all mail
+into all the spam tests. Another reason why this is nice is that
+messages to mailing lists you have rules for don't have to have
+resource-intensive blackhole checks performed on them. You could also
+specify different spam checks for your nnmail split vs. your nnimap
+split. Go crazy.
+
+You still have to have specific checks such as
+@code{spam-use-regex-headers} set to t, even if you specifically
+invoke @code{spam-split} with the check. The reason is that when
+loading @code{spam.el}, some conditional loading is done depending on
+what @code{spam-use-xyz} variables you have set.
@emph{Note for IMAP users}
The boolean variable @code{nnimap-split-download-body} needs to be
set, if you want to split based on the whole message instead of just
-the headers. By default, the nnimap backend will only retrieve the
+the headers. By default, the nnimap back end will only retrieve the
message headers. If you use @code{spam-check-bogofilter},
@code{spam-check-ifile}, or @code{spam-check-stat} (the splitters that
can benefit from the full message body), you should set this variable.
-It is not set by default because it will slow @acronym{IMAP} down.
+It is not set by default because it will slow @acronym{IMAP} down, and
+that is not an appropriate decision to make on behalf of the user.
@xref{Splitting in IMAP}.
@emph{TODO: Currently, spam.el only supports insertion of articles
-into a backend. There is no way to tell spam.el that an article is no
+into a back end. There is no way to tell spam.el that an article is no
longer spam or ham.}
@emph{TODO: spam.el needs to provide a uniform way of training all the
@menu
* Blacklists and Whitelists::
* BBDB Whitelists::
+* Gmane Spam Reporting::
+* Anti-spam Hashcash Payments::
* Blackholes::
* Regular Expressions Header Matching::
* Bogofilter::
@end defvar
+@node Gmane Spam Reporting
+@subsubsection Gmane Spam Reporting
+@cindex spam reporting
+@cindex Gmane, spam reporting
+@cindex Gmane, spam reporting
+@cindex spam
+
+@defvar gnus-group-spam-exit-processor-report-gmane
+
+Add this symbol to a group's @code{spam-process} parameter by
+customizing the group parameters or the
+@code{gnus-spam-process-newsgroups} variable. When this symbol is
+added to a group's @code{spam-process} parameter, the spam-marked
+articles groups will be reported to the Gmane administrators.
+
+@end defvar
+
+@node Anti-spam Hashcash Payments
+@subsubsection Anti-spam Hashcash Payments
+@cindex spam filtering
+@cindex hashcash, spam filtering
+@cindex spam
+
+@defvar spam-use-hashcash
+
+Similar to @code{spam-use-whitelist} (@pxref{Blacklists and
+Whitelists}), but uses hashcash tokens for whitelisting messages
+instead of the sender address. You must have the @code{hashcash.el}
+package loaded for @code{spam-use-hashcash} to work properly.
+Messages without a hashcash payment token will be sent to the next
+spam-split rule. This is an explicit filter, meaning that unless a
+hashcash token is found, the messages are not assumed to be spam or
+ham.
+
+@end defvar
+
@node Blackholes
@subsubsection Blackholes
@cindex spam filtering
on your system (you OS/2 user you), you could say something like:
@lisp
+@group
(setq nnheader-file-name-translation-alist
'((?: . ?_)))
+@end group
@end lisp
In fact, this is the default value for this variable on OS/2 and MS
* Troubleshooting:: What you might try if things do not work.
* Gnus Reference Guide:: Rilly, rilly technical stuff.
* Emacs for Heathens:: A short introduction to Emacsian terms.
-* Frequently Asked Questions::
+* Frequently Asked Questions:: The Gnus FAQ
@end menu
* Red Gnus:: Third time best---Gnus 5.4/5.5.
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
+* Oort Gnus:: It's big. It's far out. Gnus 5.10.
@end menu
These lists are, of course, just @emph{short} overviews of the
@end itemize
+@node Oort Gnus
+@subsubsection Oort Gnus
+@cindex Oort
+
+New features in Gnus 5.10:
+
+@itemize @bullet
+
+@item
+The revised Gnus @acronym{FAQ} is included in the manual,
+@xref{Frequently Asked Questions}.
+
+@item
+Upgrading from previous (stable) version if you have used Oort.
+
+If you have tried Oort (the unstable Gnus branch leading to this
+release) but went back to a stable version, be careful when upgrading to
+this version. In particular, you will probably want to remove all
+@file{.marks} (nnml) and @file{.mrk} (nnfolder) files, so that flags are
+read from your @file{.newsrc.eld} instead of from the
+@file{.marks}/@file{.mrk} file where this release store flags. See a
+later entry for more information about marks. Note that downgrading
+isn't save in general.
+
+@item
+Article Buttons
+
+More buttons for URLs, mail addresses, Message-IDs, Info links, man
+pages and Emacs or Gnus related references. @xref{Article Buttons}. The
+variables @code{gnus-button-@var{*}-level} can be used to control the
+appearance of all article buttons. @xref{Article Button Levels}.
+
+@item
+Dired integration
+
+@code{gnus-dired-minor-mode} installs key bindings in dired buffers to send
+a file as an attachment (@kbd{C-c C-a}), open a file using the approriate
+mailcap entry (@kbd{C-c C-f}), and print a file using the mailcap entry
+(@kbd{C-c P}). It is enabled with
+@lisp
+(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)
+@end lisp
+
+@item
+Gnus can display RSS newsfeeds as a newsgroup. @xref{RSS}.
+
+@item
+Single-part yenc encoded attachments can be decoded.
+
+@item
+Picons
+
+The picons code has been reimplemented to work in GNU Emacs -- some of
+the previous options have been removed or renamed.
+
+Picons are small ``personal icons'' representing users, domain and
+newsgroups, which can be displayed in the Article buffer.
+@xref{Picons}.
+
+@item
+If the new option @code{gnus-treat-body-boundary} is non-@code{nil}, a
+boundary line is drawn at the end of the headers.
+
+@item
+Retrieval of charters and control messages
+
+There are new commands for fetching newsgroup charters (@kbd{H c}) and
+control messages (@kbd{H C}).
+
+@item
+Delayed articles
+
+You can delay the sending of a message with @kbd{C-c C-j} in the Message
+buffer. The messages are delivered at specified time. This is useful
+for sending yourself reminders. @xref{Delayed Articles}.
+
+@item
+If @code{auto-compression-mode} is enabled, attachments are automatically
+decompressed when activated.
+
+@item
+If the new option @code{nnml-use-compressed-files} is non-@code{nil},
+the nnml back end allows compressed message files.
+
+@item
+Signed article headers (X-PGP-Sig) can be verified with @kbd{W p}.
+
+@item
+The Summary Buffer uses an arrow in the fringe to indicate the current
+article. Use @code{(setq gnus-summary-display-arrow nil)} to disable it.
+
+@item
+Warn about email replies to news
+
+Do you often find yourself replying to news by email by mistake? Then
+the new option @code{gnus-confirm-mail-reply-to-news} is just the thing for
+you.
+
+@item
+If the new option @code{gnus-summary-display-while-building} is
+non-@code{nil}, the summary buffer is shown and updated as it's being
+built.
+
+@item
+The new @code{recent} mark @samp{.} indicates newly arrived messages (as
+opposed to old but unread messages).
+
+@item
+The new option @code{gnus-gcc-mark-as-read} automatically marks
+Gcc articles as read.
+
+@item
+The nndoc back end now supports mailman digests and exim bounces.
+
+@item
+Gnus supports RFC 2369 mailing list headers, and adds a number of
+related commands in mailing list groups.
+
+@item
+The Date header can be displayed in a format that can be read aloud
+in English. @xref{Article Date}.
+
+@item
+The envelope sender address can be customized when using Sendmail.
+@xref{Mail Variables, Mail Variables,, message, Message Manual}.
+
+@item
+diffs are automatically highlighted in groups matching
+@code{mm-uu-diff-groups-regexp}
+
+@item
+TLS wrapper shipped with Gnus
+
+TLS/SSL is now supported in @acronym{IMAP} and @acronym{NNTP} via
+@file{tls.el} and GNUTLS. The old TLS/SSL support via (external third
+party) @file{ssl.el} and OpenSSL still works.
+
+@item
+New @file{make.bat} for compiling and installing Gnus under MS Windows
+
+Use @file{make.bat} if you want to install Gnus under MS Windows, the
+first argument to the batch-program should be the directory where
+@file{xemacs.exe} respectively @file{emacs.exe} is located, iff you want
+to install Gnus after compiling it, give @file{make.bat} @code{/copy} as
+the second parameter.
+
+@file{make.bat} has been rewritten from scratch, it now features
+automatic recognition of XEmacs and GNU Emacs, generates
+@file{gnus-load.el}, checks if errors occur while compilation and
+generation of info files and reports them at the end of the build
+process. It now uses @command{makeinfo} if it is available and falls
+back to @file{infohack.el} otherwise. @file{make.bat} should now
+install all files which are necessary to run Gnus and be generally a
+complete replacement for the @command{configure; make; make install}
+cycle used under Unix systems.
+
+The new @file{make.bat} makes @file{make-x.bat} superfluous, so it has
+been removed.
+
+@item
+Support for non-@acronym{ASCII} domain names
+
+Message supports non-@acronym{ASCII} domain names in From:, To: and
+Cc: and will query you whether to perform encoding when you try to
+send a message. The variable @code{message-use-idna} controls this.
+Gnus will also decode non-@acronym{ASCII} domain names in From:, To:
+and Cc: when you view a message. The variable @code{gnus-use-idna}
+controls this.
+
+@item
+Better handling of Microsoft citation styles
+
+Gnus now tries to recognize the mangled header block that some Microsoft
+mailers use to indicate that the rest of the message is a citation, even
+though it is not quoted in any way. The variable
+@code{gnus-cite-unsightly-citation-regexp} matches the start of these
+citations.
+
+@item
+@code{gnus-article-skip-boring}
+
+If you set @code{gnus-article-skip-boring} to @code{t}, then Gnus will
+not scroll down to show you a page that contains only boring text,
+which by default means cited text and signature. You can customize
+what is skippable using @code{gnus-article-boring-faces}.
+
+This feature is especially useful if you read many articles that
+consist of a little new content at the top with a long, untrimmed
+message cited below.
+
+@item
+The format spec @code{%C} for positioning point has changed to @code{%*}.
+
+@item
+The new variable @code{gnus-parameters} can be used to set group parameters.
+
+Earlier this was done only via @kbd{G p} (or @kbd{G c}), which stored
+the parameters in @file{~/.newsrc.eld}, but via this variable you can
+enjoy the powers of customize, and simplified backups since you set the
+variable in @file{~/.emacs} instead of @file{~/.newsrc.eld}. The
+variable maps regular expressions matching group names to group
+parameters, a'la:
+@lisp
+(setq gnus-parameters
+ '(("mail\\..*"
+ (gnus-show-threads nil)
+ (gnus-use-scoring nil))
+ ("^nnimap:\\(foo.bar\\)$"
+ (to-group . "\\1"))))
+@end lisp
+
+@item
+Smileys (@samp{:-)}, @samp{;-)} etc) are now iconized for Emacs too.
+
+Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.emacs} to
+disable it.
+
+@item
+Gnus no longer generate the Sender: header automatically.
+
+Earlier it was generated iff the user configurable email address was
+different from the Gnus guessed default user address. As the guessing
+algorithm is rarely correct these days, and (more controversally) the
+only use of the Sender: header was to check if you are entitled to
+cancel/supersede news (which is now solved by Cancel Locks instead,
+see another entry), generation of the header has been disabled by
+default. See the variables @code{message-required-headers},
+@code{message-required-news-headers}, and
+@code{message-required-mail-headers}.
+
+@item
+Features from third party @file{message-utils.el} added to @file{message.el}.
+
+Message now asks if you wish to remove @samp{(was: <old subject>)} from
+subject lines (see @code{message-subject-trailing-was-query}). @kbd{C-c
+M-m} and @kbd{C-c M-f} inserts markers indicating included text.
+@kbd{C-c C-f a} adds a X-No-Archive: header. @kbd{C-c C-f x} inserts
+appropriate headers and a note in the body for cross-postings and
+followups (see the variables @code{message-cross-post-@var{*}}).
+
+@item
+References and X-Draft-Headers are no longer generated when you start
+composing messages and @code{message-generate-headers-first} is
+@code{nil}.
+
+@item
+Improved anti-spam features.
+
+Gnus is now able to take out spam from your mail and news streams
+using a wide variety of programs and filter rules. Among the supported
+methods are RBL blocklists, bogofilter and white/blacklists. Hooks
+for easy use of external packages such as SpamAssassin and Hashcash
+are also new. @xref{Thwarting Email Spam}.
+
+@item
+Easy inclusion of X-Faces headers.
+
+@item
+In the summary buffer, the new command @kbd{/ N} inserts new messages
+and @kbd{/ o} inserts old messages.
+
+@item
+Gnus decodes morse encoded messages if you press @kbd{W m}.
+
+@item
+Unread count correct in nnimap groups.
+
+The estimated number of unread articles in the group buffer should now
+be correct for nnimap groups. This is achieved by calling
+@code{nnimap-fixup-unread-after-getting-new-news} from the
+@code{gnus-setup-news-hook} (called on startup) and
+@code{gnus-after-getting-new-news-hook}. (called after getting new
+mail). If you have modified those variables from the default, you may
+want to add @code{nnimap-fixup-unread-after-getting-new-news} again. If
+you were happy with the estimate and want to save some (minimal) time
+when getting new mail, remove the function.
+
+@item
+Group Carbon Copy (GCC) quoting
+
+To support groups that contains SPC and other weird characters, groups
+are quoted before they are placed in the Gcc: header. This means
+variables such as @code{gnus-message-archive-group} should no longer
+contain quote characters to make groups containing SPC work. Also, if
+you are using the string @samp{nnml:foo, nnml:bar} (indicating Gcc
+into two groups) you must change it to return the list
+@code{("nnml:foo" "nnml:bar")}, otherwise the Gcc: line will be quoted
+incorrectly. Note that returning the string @samp{nnml:foo, nnml:bar}
+was incorrect earlier, it just didn't generate any problems since it
+was inserted directly.
+
+@item
+@file{~/News/overview/} not used.
+
+As a result of the following change, the @file{~/News/overview/}
+directory is not used any more. You can safely delete the entire
+hierarchy.
+
+@item
+@code{gnus-agent}
+
+The Gnus Agent has seen a major updated and is now enabled by default,
+and all nntp and nnimap servers from @code{gnus-select-method} and
+@code{gnus-secondary-select-method} are agentized by default. Earlier
+only the server in @code{gnus-select-method} was agentized by the
+default, and the agent was disabled by default. When the agent is
+enabled, headers are now also retrieved from the Agent cache instead
+of the back ends when possible. Earlier this only happened in the
+unplugged state. You can enroll or remove servers with @kbd{J a} and
+@kbd{J r} in the server buffer. Gnus will not download articles into
+the Agent cache, unless you instruct it to do so, though, by using
+@kbd{J u} or @kbd{J s} from the Group buffer. You revert to the old
+behaviour of having the Agent disabled with @code{(setq gnus-agent
+nil)}. Note that putting @code{(gnus-agentize)} in @file{~/.gnus.el}
+is not needed any more.
+
+@item
+@code{gnus-summary-line-format}
+
+The default value changed to @samp{%U%R%z%I%(%[%4L: %-23,23f%]%)
+%s\n}. Moreover @code{gnus-extra-headers},
+@code{nnmail-extra-headers} and @code{gnus-ignored-from-addresses}
+changed their default so that the users name will be replaced by the
+recipient's name or the group name posting to for @acronym{NNTP}
+groups.
+
+@item
+@file{deuglify.el} (@code{gnus-article-outlook-deuglify-article})
+
+A new file from Raymond Scholz @email{rscholz@@zonix.de} for deuglifying
+broken Outlook (Express) articles.
+
+@item
+@code{(require 'gnus-load)}
+
+If you use a stand-alone Gnus distribution, you'd better add
+@code{(require 'gnus-load)} into your @file{~/.emacs} after adding the Gnus
+lisp directory into load-path.
+
+File @file{gnus-load.el} contains autoload commands, functions and variables,
+some of which may not be included in distributions of Emacsen.
+
+@item
+@code{gnus-slave-unplugged}
+
+A new command which starts Gnus offline in slave mode.
+
+@item
+@code{message-insinuate-rmail}
+
+Adding @code{(message-insinuate-rmail)} and @code{(setq
+mail-user-agent 'gnus-user-agent)} in @file{.emacs} convinces Rmail to
+compose, reply and forward messages in message-mode, where you can
+enjoy the power of @acronym{MML}.
+
+@item
+@code{message-minibuffer-local-map}
+
+The line below enables BBDB in resending a message:
+@lisp
+(define-key message-minibuffer-local-map [(tab)]
+ 'bbdb-complete-name)
+@end lisp
+
+@item
+Externalizing and deleting of attachments.
+
+If @code{gnus-gcc-externalize-attachments} or
+@code{message-fcc-externalize-attachments} is non-@code{nil}, attach
+local files as external parts.
+
+The command @code{gnus-mime-save-part-and-strip} (bound to @kbd{C-o}
+on @acronym{MIME} buttons) saves a part and replaces the part with an
+external one. @code{gnus-mime-delete-part} (bound to @kbd{d} on
+@acronym{MIME} buttons) removes a part. It works only on back ends
+that support editing.
+
+@item
+@code{gnus-default-charset}
+
+The default value is determined from the
+@code{current-language-environment} variable, instead of
+@code{iso-8859-1}. Also the @samp{.*} item in
+@code{gnus-group-charset-alist} is removed.
+
+@item
+@code{gnus-posting-styles}
+
+Add a new format of match like
+@lisp
+((header "to" "larsi.*org")
+ (Organization "Somewhere, Inc."))
+@end lisp
+The old format like the lines below is obsolete, but still accepted.
+@lisp
+(header "to" "larsi.*org"
+ (Organization "Somewhere, Inc."))
+@end lisp
+
+@item
+@code{message-ignored-news-headers} and @code{message-ignored-mail-headers}
+
+@samp{X-Draft-From} and @samp{X-Gnus-Agent-Meta-Information} have been
+added into these two variables. If you customized those, perhaps you
+need add those two headers too.
+
+@item
+Gnus reads the @acronym{NOV} and articles in the Agent if plugged.
+
+If one reads an article while plugged, and the article already exists
+in the Agent, it won't get downloaded once more. @code{(setq
+gnus-agent-cache nil)} reverts to the old behavior.
+
+@item
+Gnus supports the ``format=flowed'' (RFC 2646) parameter.
+
+On composing messages, it is enabled by @code{use-hard-newlines}. Decoding
+format=flowed was present but not documented in earlier versions.
+
+@item
+Gnus supports the generation of RFC 2298 Disposition Notification requests.
+
+This is invoked with the @kbd{C-c M-n} key binding from message mode.
+
+@item
+Gnus supports Maildir groups.
+
+Gnus includes a new back end @file{nnmaildir.el}. @xref{Maildir}.
+
+@item
+Printing capabilities are enhanced.
+
+Gnus supports Muttprint natively with @kbd{O P} from the Summary and
+Article buffers. Also, each individual @acronym{MIME} part can be
+printed using @kbd{p} on the @acronym{MIME} button.
+
+@item
+Message supports the Importance: (RFC 2156) header.
+
+In the message buffer, @kbd{C-c C-f C-i} or @kbd{C-c C-u} cycles through
+the valid values.
+
+@item
+Gnus supports Cancel Locks in News.
+
+This means a header @samp{Cancel-Lock} is inserted in news posting. It is
+used to determine if you wrote a article or not (for cancelling and
+superseding). Gnus generates a random password string the first time
+you post a message, and saves it in your @file{~/.emacs} using the Custom
+system. While the variable is called @code{canlock-password}, it is not
+security sensitive data. Publishing your canlock string on the web
+will not allow anyone to be able to anything she could not already do.
+The behaviour can be changed by customizing @code{message-insert-canlock}.
+
+@item
+Gnus supports server-side mail filtering using Sieve.
+
+Sieve rules can be added as Group Parameters for groups, and the
+complete Sieve script is generated using @kbd{D g} from the Group
+buffer, and then uploaded to the server using @kbd{C-c C-l} in the
+generated Sieve buffer. @xref{Sieve Commands}, and the new Sieve
+manual @ref{Top, , Top, sieve, Emacs Sieve}.
+
+@item
+Extended format specs.
+
+Format spec @samp{%&user-date;} is added into
+@code{gnus-summary-line-format-alist}. Also, user defined extended
+format specs are supported. The extended format specs look like
+@samp{%u&foo;}, which invokes function
+@code{gnus-user-format-function-@var{foo}}. Because @samp{&} is used as the
+escape character, old user defined format @samp{%u&} is no longer supported.
+
+@item
+@kbd{/ *} (@code{gnus-summary-limit-include-cached}) is rewritten.
+
+It was aliased to @kbd{Y c}
+(@code{gnus-summary-insert-cached-articles}). The new function filters
+out other articles.
+
+@item
+Group names are treated as UTF-8 by default.
+
+This is supposedly what USEFOR wanted to migrate to. See
+@code{gnus-group-name-charset-group-alist} and
+@code{gnus-group-name-charset-method-alist} for customization.
+
+@item
+The nnml and nnfolder backends store marks for each groups.
+
+This makes it possible to take backup of nnml/nnfolder servers/groups
+separately of @file{~/.newsrc.eld}, while preserving marks. It also
+makes it possible to share articles and marks between users (without
+sharing the @file{~/.newsrc.eld} file) within e.g. a department. It
+works by storing the marks stored in @file{~/.newsrc.eld} in a per-group
+file @file{.marks} (for nnml) and @file{@var{groupname}.mrk} (for
+nnfolder, named @var{groupname}). If the nnml/nnfolder is moved to
+another machine, Gnus will automatically use the @file{.marks} or
+@file{.mrk} file instead of the information in @file{~/.newsrc.eld}.
+The new server variables @code{nnml-marks-is-evil} and
+@code{nnfolder-marks-is-evil} can be used to disable this feature.
+
+@item
+The menu bar item (in Group and Summary buffer) named ``Misc'' has
+been renamed to ``Gnus''.
+
+@item
+The menu bar item (in Message mode) named ``@acronym{MML}'' has been
+renamed to ``Attachments''. Note that this menu also contains security
+related stuff, like signing and encryption (@pxref{Security, Security,,
+message, Message Manual}).
+
+@item
+@code{gnus-group-charset-alist} and
+@code{gnus-group-ignored-charsets-alist}.
+
+The regexps in these variables are compared with full group names
+instead of real group names in 5.8. Users who customize these
+variables should change those regexps accordingly. For example:
+@lisp
+("^han\\>" euc-kr) -> ("\\(^\\|:\\)han\\>" euc-kr)
+@end lisp
+
+@item
+Gnus supports @acronym{PGP} (RFC 1991/2440), @acronym{PGP/MIME} (RFC
+2015/3156) and @acronym{S/MIME} (RFC 2630-2633).
+
+It needs an external @acronym{S/MIME} and OpenPGP implementation, but no
+additional lisp libraries. This add several menu items to the
+Attachments menu, and @kbd{C-c RET} key bindings, when composing
+messages. This also obsoletes @code{gnus-article-hide-pgp-hook}.
+
+@item
+Gnus inlines external parts (message/external).
+
+@item
+@acronym{MML} (Mime compose) prefix changed from @kbd{M-m} to @kbd{C-c
+C-m}.
+
+This change was made to avoid conflict with the standard binding of
+@code{back-to-indentation}, which is also useful in message mode.
+@end itemize
+
@iftex
@page
@cindex edebug
If you want to debug your problem further before reporting, possibly
in order to solve the problem yourself and send a patch, you can use
-edebug. Debugging lisp code is documented in the Elisp manual
+edebug. Debugging Lisp code is documented in the Elisp manual
(@pxref{Debugging, , Debugging Lisp Programs, elisp, The GNU Emacs
Lisp Reference Manual}). To get you started with edebug, consider if
you discover some weird behaviour when pressing @kbd{c}, the first
@c mode: texinfo
@c coding: iso-8859-1
@c End:
-% LocalWords: BNF mucho detailmenu cindex kindex kbd
-% LocalWords: findex Gnusae vindex dfn dfn samp nntp setq nnspool nntpserver
-% LocalWords: nnmbox newusers Blllrph NEWGROUPS dingnusdingnusdingnus
-% LocalWords: pre fab rec comp nnslashdot regex ga ga sci nnml nnbabyl nnmh
-% LocalWords: nnfolder emph looong eld newsreaders defun init elc pxref