Mercurial > emacs
changeset 106099:fc3c7104330d
(rfc2047-decode-region): Don't quote decoded words containing tspecial
characters if they have been already quoted. -- Synch with Gnus trunk.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Tue, 17 Nov 2009 22:10:40 +0000 |
parents | 8c46fe65b4c6 |
children | 427dc37dae1b |
files | lisp/gnus/ChangeLog lisp/gnus/rfc2047.el |
diffstat | 2 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog Tue Nov 17 21:57:48 2009 +0000 +++ b/lisp/gnus/ChangeLog Tue Nov 17 22:10:40 2009 +0000 @@ -1,3 +1,8 @@ +2009-11-17 Katsumi Yamaoka <yamaoka@jpl.org> + + * rfc2047.el (rfc2047-decode-region): Don't quote decoded words + containing tspecial characters if they have been already quoted. + 2009-10-24 Glenn Morris <rgm@gnu.org> * gnus-art.el (help-xref-stack-item): Define for compiler.
--- a/lisp/gnus/rfc2047.el Tue Nov 17 21:57:48 2009 +0000 +++ b/lisp/gnus/rfc2047.el Tue Nov 17 22:10:40 2009 +0000 @@ -1026,6 +1026,7 @@ ;; things essentially must not be there. (while (re-search-forward "[\n\r]+" nil t) (replace-match " ")) + (setq end (point-max)) ;; Quote decoded words if there are special characters ;; which might violate RFC2822. (when (and rfc2047-quote-decoded-words-containing-tspecials @@ -1035,10 +1036,15 @@ (when regexp (save-restriction (widen) - (beginning-of-line) - (while (and (memq (char-after) '(? ?\t)) - (zerop (forward-line -1)))) - (looking-at regexp))))) + (and + ;; Don't quote words if already quoted. + (not (and (eq (char-before e) ?\") + (eq (char-after end) ?\"))) + (progn + (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")