From: yamaoka Date: Thu, 1 May 2003 01:00:59 +0000 (+0000) Subject: Synch to Oort Gnus 200304302331. X-Git-Tag: t-gnus-6_15_21-00-quimby~5 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=356954028b05fa99d661164277bd7cd0c48aa605;p=elisp%2Fgnus.git- Synch to Oort Gnus 200304302331. --- diff --git a/ChangeLog b/ChangeLog index 852acb1..27e7bac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,9 @@ 2003-04-30 Reiner Steib * 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 diff --git a/GNUS-NEWS b/GNUS-NEWS index 242c25b..7ec3424 100644 --- a/GNUS-NEWS +++ b/GNUS-NEWS @@ -8,13 +8,16 @@ For older news, see Gnus info node "New Features". * 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. @@ -285,7 +288,7 @@ A new command which starts gnus offline in slave mode. ** 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. @@ -295,15 +298,16 @@ The line below enables BBDB in resending a message: (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 @@ -356,8 +360,8 @@ the MIME button. ** 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. @@ -401,13 +405,13 @@ This is supposedly what USEFOR wanted to migrate to. See ** 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. @@ -415,7 +419,8 @@ The new server variables `nnml-marks-is-evil' and 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. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5d94727..b2a0753 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,48 @@ 2003-04-30 Kai Gro,A_(Bjohann + * gnus-int.el (gnus-open-server): Try to open unagentized servers + even when unplugged. + +2003-04-30 Reiner Steib + + * gnus-art.el (gnus-button-prefer-mid-or-mail): Fixed typo in + doc-string. + +2003-05-01 Steve Youngs + + * 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 + + * 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,A_(Bjohann + * gnus-delay.el (gnus-delay-article): Call `gnus-agent-queue-setup' to create the delay group. diff --git a/lisp/dns.el b/lisp/dns.el index 349d29f..6acfd51 100644 --- a/lisp/dns.el +++ b/lisp/dns.el @@ -282,11 +282,13 @@ If TCP-P, the first two bytes of the package with be the length field." ;;; 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) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 923599b..9c5399e 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -3402,9 +3402,17 @@ The directory to save in defaults to `gnus-article-save-directory'." (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)) @@ -6184,7 +6192,7 @@ It should match all directories in the top level of `gnus-ctan-url'." "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'." diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 614bb89..d9fda8a 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -208,16 +208,18 @@ If it is down, start it up (again)." ((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. diff --git a/lisp/gnus-registry.el b/lisp/gnus-registry.el index e5aed7c..7d80120 100644 --- a/lisp/gnus-registry.el +++ b/lisp/gnus-registry.el @@ -94,9 +94,13 @@ The group names are matched, they don't have to be fully qualified." 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 @@ -139,48 +143,75 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." 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." @@ -198,6 +229,8 @@ Returns the first place where the trail finds a spool action." (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) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 2b6190d..0033120 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -1277,12 +1277,22 @@ SPEC is a predicate specifier that contains stuff like `or', `and', (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 ": ")) diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index 7387944..7fa13d7 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -952,6 +952,16 @@ Warning: Don't insert text immediately after the image." 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 diff --git a/lisp/lpath.el b/lisp/lpath.el index e9e1613..fc48c59 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -107,6 +107,12 @@ (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) ) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index e80fb68..71f4458 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -558,6 +558,8 @@ map."))) (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)) @@ -568,7 +570,7 @@ map."))) (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) ") ") "")) diff --git a/texi/ChangeLog b/texi/ChangeLog index 7f83ab6..4adfa0c 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,35 @@ +2003-05-01 Jesper Harder + + * gnus.texi: Markup and formatting improvements. + +2003-04-30 Reiner Steib + + * 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 + + * 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 + + * gnus.texi (Oort Gnus): New features in Gnus 5.10 from GNUS-NEWS. + +2003-04-30 Jesper Harder + + * 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 * gnus.texi (Group Parameters): Fix markup. diff --git a/texi/gnus-faq.texi b/texi/gnus-faq.texi index 7b1ab40..4d27af4 100644 --- a/texi/gnus-faq.texi +++ b/texi/gnus-faq.texi @@ -10,6 +10,8 @@ @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) @@ -18,11 +20,13 @@ @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. @@ -97,12 +101,12 @@ Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented @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 @@ -246,11 +250,15 @@ Answer: @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 @@ -362,17 +370,24 @@ Answer: @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 @@ -802,21 +817,32 @@ Answer: @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 @@ -1344,18 +1370,25 @@ Answer: @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 @@ -1865,12 +1898,14 @@ Answer: @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 @@ -2110,10 +2145,12 @@ Answer: @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 @@ -2273,12 +2310,13 @@ Answer: @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 @@ -2399,9 +2437,9 @@ Answer: @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 diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 67a0380..6a3212d 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -1,4 +1,4 @@ ->\input texinfo +\input texinfo @setfilename gnus-ja @settitle T-gnus 6.15 Manual @@ -548,7 +548,7 @@ Group Buffer Group Buffer Format * Group Line Specification:: $B%0%k!<%W%P%C%U%!$N8+$(J}$r7h$a$k(B -* Group Modeline Specification:: $B%0%k!<%W%P%C%U%!$N%b!<%I9T(B +* Group Mode line Specification:: $B%0%k!<%W%P%C%U%!$N%b!<%I9T(B * Group Highlighting:: $B%0%k!<%W%P%C%U%!$K$-$l$$$K?'$r$D$1$k(B Group Topics @@ -671,7 +671,7 @@ Article Treatment * Article Date:: $B$0$:$0$:8@$&$J!"@$3&;~$@(B! * Article Display:: X-Face, Picons, Smileys $B$rI=<($9$k(B * Article Signature:: $B=pL>$C$F2?(B? -* Article Miscellania:: $BB>$N$$$m$$$m$J$b$N(B +* Article Miscellanea:: $BB>$N$$$m$$$m$J$b$N(B Alternative Approaches @@ -930,7 +930,7 @@ Appendices * Troubleshooting:: $B>ee$N$b$N(B---Gnus 5.4/5.5 * Quassia Gnus:: 2 $B$+$1$k(B 2 $B$O(B 4$B!"$b$7$/$O(B Gnus 5.6/5.7 * Pterodactyl Gnus:: $B8^HVL\!"(BP $B$G;O$^$k!"$b$7$/$O(B Gnus 5.8/5.9 $B$H$7$FCN$i$l$F$$$k$b$N(B +* Oort Gnus:: $B5pBg$J!#1s$/MZ$+$J!#(BGnus 5.10$B!#(B Customization @@ -1766,7 +1767,7 @@ Gnus $B$N5/F0$K@.8y$7$?8e$K!"0lHV:G8e$Kl9g$G$9!#(B -@node Group Modeline Specification +@node Group Mode line Specification @subsection $B%0%k!<%W%b!<%I9T$N;EMM(B -@cindex group modeline +@cindex group mode line @vindex gnus-group-mode-line-format $B%b!<%I9T(B @@ -5896,6 +5897,7 @@ gnus $B%(!<%8%'%s%H(B @pxref{Agent Basics} $B$O$$$/$D$+$N5-;v$r<+F0E*$K%@%&%s (local-set-key "!" 'gnus-summary-put-mark-as-ticked-next)) @end lisp +@noindent $B$b$7$/$O!"(B @lisp @@ -7701,7 +7703,7 @@ gnus $B$O%U%!%$%kL>$K4p$E$$$F7?$r?dB,$7$F$$$k;v$KCm0U$7$F$/$@$5$$!#(B * Article Date:: $B$0$:$0$:8@$&$J!"@$3&;~$@(B! * Article Display:: X-Face, Picons, Smileys $B$rI=<($9$k(B * Article Signature:: $B=pL>$C$F2?(B? -* Article Miscellania:: $BB>$N$$$m$$$m$J$b$N(B +* Article Miscellanea:: $BB>$N$$$m$$$m$J$b$N(B @end menu @node Article Highlighting @@ -8436,7 +8438,7 @@ Gnus $B$O9gCW$7$?$b$N$N$I$NItJ,$,%O%$%i%$%H$5$l$k$N$+$rCN$i$J$1$l$P$J$j$^(B $BF1$8$h$&$J$b$N$G$9(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} $B$O@55,I=8=$G$9!#(B @@ -8783,7 +8785,7 @@ gnus $B$G%a!<%k$rFI$`$3$H$NM-Mx$JE@$O!"C1=c$J%P%0$rAG@2$i$7$$IT>rM}$KCV$-(B $B8=(B @samp{^---*Forwarded article} $B$K9gCW$9$l$P!"7k6I$=$l$O=pL>$G$O$J$$$H(B $B$$$&;v$G$9!#(B -@node Article Miscellania +@node Article Miscellanea @subsection $B5-;v$$$m$$$m(B @table @kbd @@ -9394,6 +9396,11 @@ Line Formatting})$B!#%G%#%U%)%k%H$O(B @samp{Gnus: %%b %S %Z} $B$G$9!#;HMQ2DG= $B@0?t(B @var{n} $B$G$"$C$?>l9g$O!"(B@var{n} $B9TKh$KI=<($r99?7$7$^$9!#%G%#%U%)%k(B $B%H$O(B @code{nil} $B$G$9!#(B +@vindex gnus-summary-display-arrow +@item gnus-summary-display-arrow +$BHs(B-@code{nil} $B$@$C$?$i!"8=:_$N5-;v$r;X$7<($9$?$a$K%U%j%s%8$KLp0u$rI=<($7(B +$B$^$9!#(B + @vindex gnus-summary-mode-hook @item gnus-summary-mode-hook $B35N,%b!<%I%P%C%U%!$r:n@.$9$k$H$-$K$3$N%U%C%/$,8F$P$l$^$9!#(B @@ -9864,7 +9871,7 @@ things to work: @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. @@ -12826,7 +12833,7 @@ UNDELETED} $B$O$*$=$i$/$?$$$F$$$N?M$K$O:GNI$NA*Br$G$7$g$&$,!"$H$-$I(B @end table @end table -@subsubsection Function Interface +@subsubsection $B4X?t%$%s%?!<%U%'!<%9(B $B>e5-$N$$$/$D$+$N%-!<%o!<%I$O!"$l$N%-!<%o!<%I(B @code{:foo} $B$NCM$H$7$F(B Lisp @@ -12865,7 +12872,7 @@ UNDELETED} $B$O$*$=$i$/$?$$$F$$$N?M$K$O:GNI$NA*Br$G$7$g$&$,!"$H$-$I(B @code{nil} $B$G$J$1$l$P!"F~$C$FMh$?%U%!%$%k$O!"$=$l$r=hM}$7$?8e$K>C5n$5$l(B $B$^$9!#(B@code{t} $B$G$O%U%!%$%k$r$?$@$A$K>C5n$7!"(B@code{nil} $B$G$O$$$+$J$k%U%!(B $B%$%k$b>C$7$^$;$s!#@5$N?t$@$C$?>l9g$O!"$=$NF|?t0J>e$K8E$$%U%!%$%k$r>C5n$7(B -$B$^$9(B ($B$3$l$O?7Ce%a!<%k$r$C$F40A4$K9gCW$7$J$1$l$P$J$j$^$;$s!#@55,I=8=$G%U%#!<%k%IL>$+(B $BA4$F$N(B @var{value} $B$O(B @samp{\<} $B$H(B @samp{\>} $B$NBP$G0O$^$l$^$9!#(B @vindex nnmail-split-abbrev-alist -@var{field} $B$H(B @var{value} $B$O(B lisp $B%7%s%\%k(B (symbol) $B$G$"$k;v$b$G$-!"$=(B +@var{field} $B$H(B @var{value} $B$O(B Lisp $B%7%s%\%k(B (symbol) $B$G$"$k;v$b$G$-!"$=(B $B$N>l9g$O$=$l$i$O(B @code{nnmail-split-abbrev-alist} $B$G;XDj$5$l$F$$$k$h$&$K(B $BE83+$5$l$^$9!#$3$l$O%;%k$N(B @code{car} $B$,%-!<$r4^$s$G$$$F!"(B@code{cdr} $B$,(B $B4XO"IU$1$i$l$?CM$r;}$C$F$$$k%3%s%9%;%k(B (cons cell) $B$NO"A[%j%9%H$G$9!#(B @@ -18303,8 +18310,8 @@ Gnus $B$O0lHLE*$J%9%3%"%U%!%$%k$rFCDj$N%9%3%"%U%!%$%k8~$1$N$b$N$h$jA0$KE,(B $B$3$NNc$O$?$$$F$$$N%9%3%"%U%!%$%k$NMWAG$r@bL@$7$F$$$^$9!#0c$C$?J}K!$K$D$$(B $B$F$O!"(B@pxref{Advanced Scoring} $B$r8+$F$/$@$5$$!#(B -$B$3$l$O(B lisp $B%3!<%I$N$h$&$K8+$($^$9$,!"2A(B} (eval) $B$5$l$^$;$s!#$7$+$7!"(Blisp $B%j!<%@!<$,$3$NMM<0$rFI$_(B +$B$3$l$O(B Lisp $B%3!<%I$N$h$&$K8+$($^$9$,!"2A(B} (eval) $B$5$l$^$;$s!#$7$+$7!"(BLisp $B%j!<%@!<$,$3$NMM<0$rFI$_(B $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!#(B $B$3$NO"A[%j%9%H$G$OO;$D$N%-!<$r;H$&;v$,$G$-$^$9!#(B @@ -19424,10 +19431,12 @@ Lars $B$,(B Gnus $B$K4X$7$FOC$r$7$F$$$k$H$-$KH`$K$h$C$F=q$+$l$?5-;v$N%9%3%"$r $BA}$d$7$?$$$H$7$^$7$g$&(B: @example +@group ((& ("from" "Lars Ingebrigtsen") ("subject" "Gnus")) 1000) +@end group @end example $B$M!"$H$F$bC1=c$G$7$g(B? @@ -19752,7 +19761,7 @@ Gnus $B$r=*N;$9$kA0$K3NG'$rMW5a$7$^$9!#$3$NJQ?t$O=i4|@_Dj$G(B @code{t} $B$G$9 @findex gnus-update-format Gnus $B$O$"$J$?<+?H$N=qK!;EMM;XDj$r:n$k2A(B} $B$7!"Ev$N;XDj$r99?7(B -$B$7!"7k2L$N(B lisp $B<0$r$N$b$N$rI=<($9$k$3$H$,$G$-$k$N$G!"(B +XEmacs $B$=$l$K(B Emacs 21@footnote{MS $B%&%#%s%I%&%:$N(B Emacs 21 $B$O$^$@2hA|$r(B +$B%5%]!<%H$7$F$$$^$;$s!#(B} $B$O3($d$=$NB>$N$b$N$rI=<($9$k$3$H$,$G$-$k$N$G!"(B gnus $B$O$3$l$rMxMQ$9$k$3$H$K$7$^$9!#(B @menu @@ -21478,6 +21488,7 @@ Spam $B5-;v$r8+$?$H$-$O$$$D$G$b!"%0%k!<%W$rH4$1$kA0$KI,$:(B @kbd{M-d} $B$G$=$ $B$G$-$k$h$&$K$J$j$^$9!#(B@samp{spam} $BJQ?t%0%k!<%W$K$D$$(B $B$F(B @code{customize-group} $B$r;n$7$F$_$F2<$5$$!#(B +@vindex gnus-spam-process-newsgroups Ham $B%W%m%;%C%5!<$H(B spam $B%W%m%;%C%5!<$N35G0$OHs>o$K=EMW$G$9!#$"$k%0%k!<%W(B $B$N(B ham $B%W%m%;%C%5!<$H(B spam $B%W%m%;%C%5!<$O!"(B@code{spam-process} $B%0%k!<%W(B $B%Q%i%a!<%?$+(B @code{gnus-spam-process-newsgroups} $BJQ?t$G@_Dj$9$k$3$H$,$G(B @@ -21487,6 +21498,7 @@ ham $B%W%m%;%C%5!<$OHs(B spam (@emph{ham}) $B$G$"$k$3$H$,$o$+$C$F$$$k%a!<%k$r $B$N(B spam $B$,8!=P$5$l$k$h$&$K!"(Bspam $B$G$"$k$3$H$,$o$+$C$F$$$k%a!<%k$re$N(B spam $B%0(B $B%k!<%W$K(B spam $B5-;v$r=8$a$F!"JQ?t(B @code{spam-junk-mailgroups} $B$rE,@Z$K@_(B $BDj$b$7$/$O%+%9%?%^%$%:$7$J$1$l$P$J$j$^$;$s!#$^$?!"(Bspam $B$r4^$a$k%0%k!<%W(B @@ -21503,33 +21515,41 @@ gnus $B$O$"$J$?$,e$N(B spam $B$$$J$$$H!"$=$l$i$O(B @emph{$BL$J,N`(B} $B$G$"$k$H2rC$5$J$1$l$P$J$j$^$;$s!#(B@samp{$} $B0u$r>C$9$K$O(B @kbd{M-u} $B$G(B -$B$=$N5-;v$r(B ``$BL$FI(B'' $B$K$9$k$+!"$"$k$$$O(B @kbd{d} $B$G(B spam $B$G$O$J$$$b$N$H$7(B -$B$FFI$s$@$3$H$r@k8@$9$l$PNI$$$G$7$g$&!#%0%k!<%W$rH4$1$k$H$-!"$9$Y$F(B -$B$N(B spam $B0u(B (@samp{$}) $B$,IU$$$?5-;v$O(B spam $B%W%m%;%C%5!<$KAw$i$l!"$=$l$i(B -$B$r(B spam $B$NI8K\$H$7$F3X=,$7$^$9!#(B +$B$5$l$^$9(B: $B$=$N%0%k!<%W$KF~$k$H!"$=$l$i(B +$B$K(B @samp{$} $B0u(B (@code{gnus-spam-mark}) $B$,IU$-$^$9!#%a%C%;!<%8$r8+$F0lC6(B +$B$=$l$K(B spam $B$N0u$rIU$1$F$b!"8e$GC$;$P!"$=$N8e$=$N%0%k!<%W$KF~$C$?$H(B +$B$-$K!"$=$l$K$O(B spam $B0u$OIU$-$^$;$s!#$?$@(B +$B$7(B @code{spam-mark-only-unseen-as-spam} $B%Q%i%a!<%?$r(B @code{nil} $B$K$9$l$P!"(B +$B$=$&$$$&F0:n$r$d$a$5$;$k!"$D$^$j$9$Y$F$NL$FI%a%C%;!<%8$K(B spam $B0u$,IU$/$h(B +$B$&$K$9$k$3$H$,$G$-$^$9!#$=$N%0%k!<%W$N35N,%P%C%U%!$K$$$k$H$-!"$d$C$Q(B +$B$j(B spam $B$G$O$J$+$C$?$9$Y$F$N(B $B5-;v$+$i(B @samp{$} $B0u$r>C$5$J$1$l$P$J$j$^$;(B +$B$s!#(B@samp{$} $B0u$r>C$9$K$O(B @kbd{M-u} $B$G$=$N5-;v$r(B ``$BL$FI(B'' $B$K$9$k$+!"$"$k(B +$B$$$O(B @kbd{d} $B$G(B spam $B$G$O$J$$$b$N$H$7$FFI$s$@$3$H$r@k8@$9$l$PNI$$$G$7$g(B +$B$&!#%0%k!<%W$rH4$1$k$H$-!"$9$Y$F$N(B spam $B0u(B (@samp{$}) $B$,IU$$$?5-;v(B +$B$O(B spam $B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r(B spam $B$NI8K\$H$7$F3X=,$7$^$9!#(B $B%a%C%;!<%8$OB>$N$$$m$$$m$JJ}K!$K$h$C$F$b>C5n$5$l$k$+$b$7$l$^$;$s$7!"(B -@code{spam-ham-marks} $B$,8e=R$N$h$&$K>e=q$-$5$l$J$1$l$P!"Dc$$%9%3%"$N$?$a(B -$B$N(B @samp{Y} $B0u$HF1MM!"%G%#%U%)%k%H$N4{FI$+L@<(E*$J>C5n$N$?$a(B -$B$N(B @samp{R} $B$H(B @samp{r} $B0u!"<+F0$^$?$OL@<(E*$J:o=|$N$?$a(B +@code{ham-marks} $B%0%k!<%W%Q%i%a!<%?$,8e=R$N$h$&$K>e=q$-$5$l$J$1$l$P!"Dc(B +$B$$%9%3%"$N$?$a$N(B @samp{Y} $B0u$HF1MM!"%G%#%U%)%k%H$N4{FI$+L@<(E*$J>C5n$N$?(B +$B$a$N(B @samp{R} $B$H(B @samp{r} $B0u!"<+F0$^$?$OL@<(E*$J:o=|$N$?$a(B $B$N(B @samp{X} $B$H(B @samp{K} $B0u!"$=$l$i$9$Y$F$,(B spam $B$H$OL54X78$G$"$k$H2rDj$O!"K\J*$N(B spam $B$r8!=P$9$k$?$a$K>C5n(B (kill) $B%U%!%$%k$+%9(B $B%3%"%U%!%$%k$rFCJL$K;H$C$F$$$k>l9g$O4V0c$C$F$$$k$+$b$7$l$^$;$s!#$=$&$G$"(B -$B$l$P(B @code{spam-ham-marks} $BJQ?t$rD4@0$9$k$Y$-$G$9!#(B +$B$l$P(B @code{ham-marks} $B%0%k!<%W%Q%i%a!<%?$rD4@0$9$k$Y$-$G$9!#(B -@defvar spam-ham-marks -$B$3$NJQ?t$r(B ham $B$G$"$k$H2rC5n(B (deleted)$B!"4{FI(B (read)$B!":o=|(B (killed)$B!"(Bkill $B%U%!%$%k(B -$B$K$"$k$b$N(B (kill-filed) $B$*$h$SDc$$%9%3%"(B (low-score) $B0u$N%j%9%H$G$9!#(B +@defvar ham-marks +$B$3$N%0%k!<%W$^$?$O%H%T%C%/%Q%i%a!<%?$r(B ham $B$G$"$k$H2rC5n(B (deleted)$B!"4{FI(B (read)$B!"(B +$B:o=|(B (killed)$B!"(Bkill $B%U%!%$%k$K$"$k$b$N(B (kill-filed) $B$*$h$SDc$$%9%3(B +$B%"(B (low-score) $B0u$N%j%9%H$G$9!#(B @end defvar -@defvar spam-spam-marks -$B$3$NJQ?t$r(B spam $B$G$"$k$H2r$K2?(B $B$bL5$$$3$H$r3N$+$a$k$3$H$G$9!#(B +@vindex gnus-ham-process-destinations @emph{Spam} $B%0%k!<%W$rH4$1$k$H$-$K!"(Bspam $B0u$,IU$$$F$$$k$9$Y$F$N5-;v(B $B$K$O(B spam $B%W%m%;%C%5!<$G=hM}$7$?8e$G4|8B@Z$l>C5n$N0u$,IU$1$i$l$^$9!#$3$l(B $B$O(B @emph{$BL$J,N`(B} $B$^$?$O(B @emph{ham} $B%0%k!<%W$KBP$7$F$O9T$J$o$l$^$;$s!#$5(B @@ -21549,12 +21570,15 @@ Spam $B%0%k!<%W$G$O!"%G%#%U%)%k%H$G$9$Y$F$N%a%C%;!<%8$,(B spam $B$G$"$k$H2r$K9gCW$9$k@55,I=8=$N%j%9%H$G(B $B$9(B (@code{customize-variable gnus-ham-process-destinations} $B$K$h$C$F$3$N(B $BJQ?t$r%+%9%?%^%$%:$9$k$N$,:G$b4JC1$G$9(B)$B!#:G=*E*$J>l=j$O%0%k!<%WL>$G$9!#(B -@code{ham-process-destination} $B%Q%i%a!<%?$,@_Dj$5$l$F$$$J$$$H!"(Bspam $B5-;v(B -$B$OC1$K4|8B@Z$l>C5n$5$l$^$9!#(B +@code{ham-process-destination} $B%Q%i%a!<%?$,@_Dj$5$l$F$$$J$$$H!"(Bham $B5-;v(B +$B$O$=$3$KN1$aCV$+$l$^$9!#(B +@code{spam-mark-ham-unread-before-move-from-spam-group} $B%Q%i%a!<%?$,@_Dj(B +$B$5$l$F$$$k$H!"(Bham $B5-;v$O0\F0$5$;$i$l$kA0$KL$FI$N0u$,IU$1$i$l$^$9!#(B @emph{Ham} $B%0%k!<%W$rH4$1$k$H$-$K!"(Bham $B0u$,IU$$$F$$$k$9$Y$F$N5-;v(B $B$O(B ham $B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r(B spam $B$G$O$J$$I8K\$H$7$F3X=,$7$^$9!#(B +@vindex gnus-spam-process-destinations @emph{Ham} $B$^$?$O(B @emph{$BL$J,N`(B} $B%0%k!<%W$rH4$1$k$H$-$K!"$9$Y$F(B $B$N(B @strong{spam} $B5-;v$O!"(B@code{spam-process-destination} $B%0%k!<%W%Q%i%a!<(B $B%?$+(B @code{gnus-spam-process-destinations} $BJQ?t$N$I$A$i$+$K9gCW$9$k>l=j(B @@ -21578,8 +21602,57 @@ Spam $B%0%k!<%W$G$O!"%G%#%U%)%k%H$G$9$Y$F$N%a%C%;!<%8$,(B spam $B$G$"$k$H2rA0$N%0%k!<%W$KAw$j$^$9!#%G%#(B -$B%U%)%k%H$G$O$=$N%0%k!<%WL>$O(B @samp{spam} $B$G$9$,!"%+%9%?%^%$%:$9$k$3$H$O(B -$B2DG=$G$9!#(B +$B%U%)%k%H$G$O$=$N%0%k!<%WL>$O(B @samp{spam} $B$G$9$,!"(B +@code{spam-split-group} $B$r%+%9%?%^%$%:$9$k$3$H$,2DG=$G$9!#(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} $BMxMQpJs(B -$B$rF@$k(B) $B$r;H$&$J$i$P!"$3$NJQ?t$r@_Dj$7$J$1$l$P$J$j$^$;$s!#(B -@acronym{IMAP} $B$NF0:n$rCY$/$7$F$7$^$&$N$G!"%G%#%U%)%k%H$G$O@_Dj$5$l$F$$(B -$B$^$;$s!#(B +$B$rF@$k(B) $B$r;H$&$J$i$P!"$3$NJQ?t$r@_Dj$7$J$1$l$P$J$j$^$;$s!#$=$l(B +$B$O(B @acronym{IMAP} $B$NF0:n$rCY$/$7$F$7$^$$!"%f!<%6$rBeI=$9$k$N$K$U$5$o$7$$(B +$B7hDj$G$O$J$$$N$G!"%G%#%U%)%k%H$G$O@_Dj$5$l$F$$$^$;$s!#(B @xref{Splitting in IMAP}. @@ -21608,6 +21681,8 @@ Spam $B%0%k!<%W$G$O!"%G%#%U%)%k%H$G$9$Y$F$N%a%C%;!<%8$,(B spam $B$G$"$k$H2rl9g$O!"$=$NJ88%$K=q$+$l$F$$$k$h$&$K(B ifile $B$r71N}$7$F$*$+$J$1$l$P$J(B $B$j$^$;$s!#(B @@ -22404,8 +22516,10 @@ gnus $B$,3JG<$9$k$?$/$5$s$N%U%!%$%kL>$H%G%#%l%/%H%jL>$NJQ?t$O!"$3$l$K$h$C(B $B$$>l9g(B ($B$"$J$?$O(B OS/2 $B%f!<%6$G$9(B)$B!"0J2<$N$h$&$K$9$k$3$H$,$G$-$^$9!#(B @lisp +@group (setq nnheader-file-name-translation-alist '((?: . ?_))) +@end group @end lisp $Be$G$N$3$NJQ?t$N=i4|(B @@ -22503,7 +22617,7 @@ but at the common table.@* * Troubleshooting:: $B>ee$N$b$N(B---Gnus 5.4/5.5 * Quassia Gnus:: 2 $B$+$1$k(B 2 $B$O(B 4$B!"$b$7$/$O(B Gnus 5.6/5.7 * Pterodactyl Gnus:: $B8^HVL\!"(BP $B$G;O$^$k!"$b$7$/$O(B Gnus 5.8/5.9 $B$H$7$FCN$i$l$F$$$k$b$N(B +* Oort Gnus:: $B5pBg$J!#1s$/MZ$+$J!#(BGnus 5.10$B!#(B @end menu $B$3$N%j%9%H$O!"$b$A$m$s!"(B@emph{$B$?$$$F$$$N(B} $B=EMW$J?7$7$$5!G=$K4X$9(B @@ -23900,6 +24015,550 @@ Gnus posting styles $B$,:F$S2~Au$5$l$^$7$?!#8=:_$OHyL/$K0c$&5,B'$GF0:n$7$^(B Gnus $B$O(B @code{nnimap} $B$K$h$C$F(B @acronym{IMAP} $B%a!<%k$rFI$`$3$H$,$G$-$^$9!#(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: )} 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 @@ -25966,8 +26625,3 @@ Gnus $B$O(B Emacs Lisp $B$K$h$C$F=q$+$l$F$$$F!"$=$l$O$?$/$5$s$NC`} 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 @@ -14059,7 +14066,7 @@ splits like this: @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. @@ -14167,7 +14174,7 @@ Gnus will not delete your old, read mail. Unless you ask it to, of 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 @@ -14776,7 +14783,7 @@ stores extra information in the @file{.nnmaildir/} directory within a 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 @@ -14875,17 +14882,17 @@ supply a @code{create-directory} server parameter. 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.) @@ -14896,7 +14903,7 @@ An integer specifying the minimum age, in seconds, of an article before 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 @@ -15981,7 +15988,7 @@ clients. (In other words, Gnus has two ``Tick'' marks and @acronym{IMAP} 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) @@ -17310,7 +17317,7 @@ Both topic parameters (@pxref{Topic Parameters}) and agent categories 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 @@ -17891,7 +17898,7 @@ Remove the downloading mark from the article @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 @@ -17956,7 +17963,7 @@ If you so desire, you can configure the agent (see @code{gnus-agent-cache} @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 @@ -17970,8 +17977,8 @@ sense if you are using a nntp or nnimap backend. @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 @@ -18819,8 +18826,8 @@ Anyway, if you'd like to dig into it yourself, here's an example: 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: @@ -19992,10 +19999,12 @@ Let's say you want to increase the score of articles written by Lars when he's talking about Gnus: @example +@group ((& ("from" "Lars Ingebrigtsen") ("subject" "Gnus")) 1000) +@end group @end example Quite simple, huh? @@ -20342,7 +20351,7 @@ case, they will be @code{eval}ed to insert the required lines. 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. @@ -21457,8 +21466,9 @@ To use moderation mode in these two groups, say: @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. @@ -21541,7 +21551,7 @@ want to add @samp{"unknown"} to this list. @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 @@ -22141,6 +22151,7 @@ Also, when you load @code{spam.el}, you will be able to customize its 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 @@ -22150,6 +22161,7 @@ that later similar mail will also be considered non-spam. Spam 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 @@ -22165,9 +22177,16 @@ groups are not classified by means of @code{spam-junk-mailgroups}, 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 @@ -22175,23 +22194,24 @@ spam-marked (@samp{$}) articles are sent to a spam processor which 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 @@ -22202,6 +22222,7 @@ explicit kill a lot, you might sometimes end up with articles marked 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 @@ -22212,11 +22233,14 @@ variable, which is a list of regular expressions matched with group 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 @@ -22242,22 +22266,71 @@ nnimap back ends to retrieve your mail. 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 @@ -22270,6 +22343,8 @@ The following are the methods you can use to control the behavior of @menu * Blacklists and Whitelists:: * BBDB Whitelists:: +* Gmane Spam Reporting:: +* Anti-spam Hashcash Payments:: * Blackholes:: * Regular Expressions Header Matching:: * Bogofilter:: @@ -22394,6 +22469,42 @@ or @emph{unclassified} groups. @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 @@ -23069,8 +23180,10 @@ For instance, if @samp{:} is invalid as a file character in file names 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 @@ -23148,7 +23261,7 @@ but at the common table.@* * 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 @@ -23848,6 +23961,7 @@ actually are people who are using Gnus. Who'd'a thunk it! * 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 @@ -24558,6 +24672,549 @@ Gnus can now read @acronym{IMAP} mail via @code{nnimap}. @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: )} 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 @@ -25063,7 +25720,7 @@ improvements, please produce the patch using @samp{diff -u}. @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 @@ -26717,8 +27374,3 @@ former). The manual is unambiguous, but it can be confusing. @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