From: Stefan Monnier Date: Fri, 22 Jan 2010 16:43:54 +0000 (-0500) Subject: * mail/rmailmm.el (rmail-mime-handle): Don't set the buffer to unibyte X-Git-Tag: emacs-pretest-23.1.92~30^2~3^2~19 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c893016b07f33eb8d56e1011245fe59a67cb4ee0;p=emacs.git * mail/rmailmm.el (rmail-mime-handle): Don't set the buffer to unibyte just because we see "encoding: 8bit". * mail/rmail.el (rmail-show-message-1): Decode the body's QP into bytes. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ab76ac74d5e..c59ecbae67b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2010-01-22 Stefan Monnier + + * mail/rmailmm.el (rmail-mime-handle): Don't set the buffer to unibyte + just because we see "encoding: 8bit". + * mail/rmail.el (rmail-show-message-1): Decode the body's QP into bytes. + 2010-01-22 Chong Yidong * isearch.el (isearch-allow-scroll): Doc fix (Bug#5446). diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el index 3bca0b23a8c..5fad3554ae5 100644 --- a/lisp/mail/mail-utils.el +++ b/lisp/mail/mail-utils.el @@ -133,6 +133,8 @@ If NOERROR is non-nil, return t if successful. If UNIBYTE is non-nil, insert converted characters as unibyte. That is useful if you are going to character code decoding afterward, as Rmail does." + ;; FIXME: `unibyte' should always be non-nil, and the iso-latin-1 + ;; specific handling should be removed (or moved elsewhere and generalized). (interactive "r\nP") (let (failed) (save-match-data diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 67ea3fdc158..20a03ede965 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -2727,7 +2727,8 @@ The current mail message becomes the message displayed." (insert-buffer-substring mbox-buf body-start end) (cond ((string= character-coding "quoted-printable") - (mail-unquote-printable-region (point-min) (point-max))) + (mail-unquote-printable-region (point-min) (point-max) + nil nil 'unibyte)) ((and (string= character-coding "base64") is-text-message) (base64-decode-region (point-min) (point-max))) ((eq character-coding 'uuencode) diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index e87f72a2e47..415bc20cf50 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el @@ -361,7 +361,10 @@ The parsed header value: (setq content-transfer-encoding nil)) ((string= content-transfer-encoding "8bit") ;; FIXME: Is this the correct way? - (set-buffer-multibyte nil))) + ;; No, of course not, it just means there's no decoding to do. + ;; (set-buffer-multibyte nil) + (setq content-transfer-encoding nil) + )) ;; Inline stuff requires work. Attachments are handled by the bulk ;; handler. (if (string= "inline" (car content-disposition))