# HG changeset patch # User Miles Bader # Date 1108819456 0 # Node ID b070535d2416f4bef099712e54c99cffb37b9097 # Parent 1100781377df1a73b36fed9975722b90214c05fd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-111 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-17 - miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-19 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-20 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-21 More work on moving images to etc/images * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-22 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-23 Fix errors with image-file installation 2005-02-19 Katsumi Yamaoka * lisp/gnus/gnus-msg.el (gnus-copy-article-buffer): Quote decoded words containing special characters. * lisp/gnus/gnus-sum.el (gnus-summary-edit-article): Ditto. * lisp/gnus/mml.el (mime-to-mml): Ditto. * lisp/gnus/rfc2047.el (rfc2047-encode-parameter): Use ietf-drums-tspecials. (rfc2047-quote-decoded-words-containing-tspecials): New variable. (rfc2047-decode-region): Quote decoded words containing special characters when rfc2047-quote-decoded-words-containing-tspecials is non-nil. 2005-02-16 Teodor Zlatanov * lisp/gnus/gnus-registry.el (gnus-registry-delete-group): minor bug fix * lisp/gnus/gnus.el (gnus-install-group-spam-parameters): Doc fix. 2005-02-15 Simon Josefsson * lisp/gnus/nnimap.el (nnimap-debug): Doc fix. * lisp/gnus/imap.el (imap-debug): Doc fix. 2005-02-14 Reiner Steib * lisp/gnus/gnus-group.el (gnus-group-make-doc-group): Mention prefix argument in doc string. Make query for type more clear. diff -r 1100781377df -r b070535d2416 lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/ChangeLog Sat Feb 19 13:24:16 2005 +0000 @@ -1,3 +1,35 @@ +2005-02-19 Katsumi Yamaoka + + * gnus-msg.el (gnus-copy-article-buffer): Quote decoded words + containing special characters. + + * gnus-sum.el (gnus-summary-edit-article): Ditto. + + * mml.el (mime-to-mml): Ditto. + + * rfc2047.el (rfc2047-encode-parameter): Use ietf-drums-tspecials. + (rfc2047-quote-decoded-words-containing-tspecials): New variable. + (rfc2047-decode-region): Quote decoded words containing special + characters when rfc2047-quote-decoded-words-containing-tspecials + is non-nil. + +2005-02-16 Teodor Zlatanov + + * gnus-registry.el (gnus-registry-delete-group): minor bug fix + + * gnus.el (gnus-install-group-spam-parameters): Doc fix. + +2005-02-15 Simon Josefsson + + * nnimap.el (nnimap-debug): Doc fix. + + * imap.el (imap-debug): Doc fix. + +2005-02-14 Reiner Steib + + * gnus-group.el (gnus-group-make-doc-group): Mention prefix + argument in doc string. Make query for type more clear. + 2005-02-13 Reiner Steib * gnus.el (gnus-group-startup-message): Search for gnus images in diff -r 1100781377df -r b070535d2416 lisp/gnus/gnus-group.el --- a/lisp/gnus/gnus-group.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/gnus-group.el Sat Feb 19 13:24:16 2005 +0000 @@ -2502,7 +2502,9 @@ (gnus-group-position-point)) (defun gnus-group-make-doc-group (file type) - "Create a group that uses a single file as the source." + "Create a group that uses a single file as the source. + +If called with a prefix argument, ask for the file type." (interactive (list (read-file-name "File name: ") (and current-prefix-arg 'ask))) @@ -2511,7 +2513,7 @@ char found) (while (not found) (message - "%sFile type (mbox, babyl, digest, forward, mmdf, guess) [mbdfag]: " + "%sFile type (mbox, babyl, digest, forward, mmdf, guess) [m, b, d, f, a, g]: " err) (setq found (cond ((= (setq char (read-char)) ?m) 'mbox) ((= char ?b) 'babyl) diff -r 1100781377df -r b070535d2416 lisp/gnus/gnus-msg.el --- a/lisp/gnus/gnus-msg.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/gnus-msg.el Sat Feb 19 13:24:16 2005 +0000 @@ -876,7 +876,8 @@ ;; Decode charsets. (let ((gnus-article-decode-hook (delq 'article-decode-charset - (copy-sequence gnus-article-decode-hook)))) + (copy-sequence gnus-article-decode-hook))) + (rfc2047-quote-decoded-words-containing-tspecials t)) (run-hooks 'gnus-article-decode-hook))))) gnus-article-copy))) diff -r 1100781377df -r b070535d2416 lisp/gnus/gnus-registry.el --- a/lisp/gnus/gnus-registry.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/gnus-registry.el Sat Feb 19 13:24:16 2005 +0000 @@ -606,7 +606,9 @@ (when gnus-registry-trim-articles-without-groups (unless (gnus-registry-group-count id) (gnus-registry-delete-id id))) - (gnus-registry-store-extra-entry id 'mtime (current-time))))) + ;; is this ID still in the registry? + (when (gethash id gnus-registry-hashtb) + (gnus-registry-store-extra-entry id 'mtime (current-time)))))) (defun gnus-registry-delete-id (id) "Delete a message ID from the registry." diff -r 1100781377df -r b070535d2416 lisp/gnus/gnus-sum.el --- a/lisp/gnus/gnus-sum.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/gnus-sum.el Sat Feb 19 13:24:16 2005 +0000 @@ -9485,7 +9485,8 @@ `(lambda () (let ((mbl mml-buffer-list)) (setq mml-buffer-list nil) - (mime-to-mml ,'current-handles) + (let ((rfc2047-quote-decoded-words-containing-tspecials t)) + (mime-to-mml ,'current-handles)) (let ((mbl1 mml-buffer-list)) (setq mml-buffer-list mbl) (set (make-local-variable 'mml-buffer-list) mbl1)) diff -r 1100781377df -r b070535d2416 lisp/gnus/gnus.el --- a/lisp/gnus/gnus.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/gnus.el Sat Feb 19 13:24:16 2005 +0000 @@ -1819,11 +1819,12 @@ :variable gnus-spam-newsgroup-contents :variable-default nil :variable-document - "*Groups in which to automatically mark new articles as spam on -summary entry. If non-nil, this should be a list of group name -regexps that should match all groups in which to do automatic spam -tagging, associated with a classification (spam, ham, or neither). -This only makes sense for mail groups." + "*Group classification (spam, ham, or neither). Only +meaningful when spam.el is loaded. If non-nil, this should be a +list of group name regexps associated with a classification for +each one. In spam groups, new articles are marked as spam on +summary entry. There is other behavior associated with ham and +no classification when spam.el is loaded - see the manual." :variable-group spam :variable-type '(repeat (list :tag "Group contents spam/ham classification" @@ -1840,7 +1841,9 @@ (const :tag "Unclassified" nil))) :parameter-document "The spam classification (spam, ham, or neither) of this group. -When a spam group is entered, all unread articles are marked as spam.") +When a spam group is entered, all unread articles are marked as +spam. There is other behavior associated with ham and no +classification when spam.el is loaded - see the manual.") (defvar gnus-group-spam-exit-processor-ifile "ifile" "OBSOLETE: The ifile summary exit spam processor.") diff -r 1100781377df -r b070535d2416 lisp/gnus/imap.el --- a/lisp/gnus/imap.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/imap.el Sat Feb 19 13:24:16 2005 +0000 @@ -250,7 +250,11 @@ :type 'boolean) (defcustom imap-debug nil - "If non-nil, random debug spews are placed in *imap-debug* buffer." + "If non-nil, random debug spews are placed in *imap-debug* buffer. +Note that username, passwords and other privacy sensitive +information (such as e-mail) may be stored in the *imap-debug* +buffer. It is not written to disk, however. Do not enable this +variable unless you are comfortable with that." :group 'imap :type 'boolean) diff -r 1100781377df -r b070535d2416 lisp/gnus/mml.el --- a/lisp/gnus/mml.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/mml.el Sat Feb 19 13:24:16 2005 +0000 @@ -710,7 +710,8 @@ ;; First decode the head. (save-restriction (message-narrow-to-head) - (mail-decode-encoded-word-region (point-min) (point-max))) + (let ((rfc2047-quote-decoded-words-containing-tspecials t)) + (mail-decode-encoded-word-region (point-min) (point-max)))) (unless handles (setq handles (mm-dissect-buffer t))) (goto-char (point-min)) diff -r 1100781377df -r b070535d2416 lisp/gnus/nnimap.el --- a/lisp/gnus/nnimap.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/nnimap.el Sat Feb 19 13:24:16 2005 +0000 @@ -1,5 +1,5 @@ ;;; nnimap.el --- imap backend for Gnus -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ;; Free Software Foundation, Inc. ;; Author: Simon Josefsson @@ -409,7 +409,11 @@ restrict visible folders.") (defcustom nnimap-debug nil - "If non-nil, random debug spews are placed in *nnimap-debug* buffer." + "If non-nil, random debug spews are placed in *nnimap-debug* buffer. +Note that username, passwords and other privacy sensitive +information (such as e-mail) may be stored in the *nnimap-debug* +buffer. It is not written to disk, however. Do not enable this +variable unless you are comfortable with that." :group 'nnimap :type 'boolean) diff -r 1100781377df -r b070535d2416 lisp/gnus/rfc2047.el --- a/lisp/gnus/rfc2047.el Sat Feb 19 13:12:21 2005 +0000 +++ b/lisp/gnus/rfc2047.el Sat Feb 19 13:24:16 2005 +0000 @@ -1,5 +1,7 @@ ;;; rfc2047.el --- functions for encoding and decoding rfc2047 messages -;; Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; MORIOKA Tomohiko @@ -50,6 +52,7 @@ (require 'qp) (require 'mm-util) +(require 'ietf-drums) ;; Fixme: Avoid this (used for mail-parse-charset) mm dependence on gnus. (require 'mail-prsvr) (require 'base64) @@ -639,6 +642,9 @@ "=\\?\\([^][\000-\040()<>@,\;:\\\"/?.=]+\\)\\?\\(B\\|Q\\)\ \\?\\([!->@-~ +]*\\)\\?=")) +(defvar rfc2047-quote-decoded-words-containing-tspecials nil + "If non-nil, quote decoded words containing special characters.") + ;; Fixme: This should decode in place, not cons intermediate strings. ;; Also check whether it needs to worry about delimiting fields like ;; encoding. @@ -673,14 +679,66 @@ (insert (rfc2047-parse-and-decode (prog1 (match-string 0) - (delete-region (match-beginning 0) (match-end 0))))) - ;; Remove newlines between decoded words, though such things - ;; essentially must not be there. + (delete-region e (match-end 0))))) + (while (looking-at rfc2047-encoded-word-regexp) + (insert (rfc2047-parse-and-decode + (prog1 + (match-string 0) + (delete-region (point) (match-end 0)))))) (save-restriction (narrow-to-region e (point)) (goto-char e) + ;; Remove newlines between decoded words, though such + ;; things essentially must not be there. (while (re-search-forward "[\n\r]+" nil t) (replace-match " ")) + ;; Quote decoded words if there are special characters + ;; which might violate RFC2822. + (when (and rfc2047-quote-decoded-words-containing-tspecials + (let ((regexp (car (rassq + 'address-mime + rfc2047-header-encoding-alist)))) + (when regexp + (save-restriction + (widen) + (beginning-of-line) + (while (and (memq (char-after) '(? ?\t)) + (zerop (forward-line -1)))) + (looking-at regexp))))) + (let (quoted) + (goto-char e) + (skip-chars-forward " \t") + (setq start (point)) + (setq quoted (eq (char-after) ?\")) + (goto-char (point-max)) + (skip-chars-backward " \t") + (if (setq quoted (and quoted + (> (point) (1+ start)) + (eq (char-before) ?\"))) + (progn + (backward-char) + (setq start (1+ start) + end (point-marker))) + (setq end (point-marker))) + (goto-char start) + (while (search-forward "\"" end t) + (when (prog2 + (backward-char) + (zerop (% (skip-chars-backward "\\\\") 2)) + (goto-char (match-beginning 0))) + (insert "\\")) + (forward-char)) + (when (and (not quoted) + (progn + (goto-char start) + (re-search-forward + (concat "[" ietf-drums-tspecials "]") + end t))) + (goto-char start) + (insert "\"") + (goto-char end) + (insert "\"")) + (set-marker end nil))) (goto-char (point-max))) (when (and (mm-multibyte-p) mail-parse-charset