Mercurial > emacs
changeset 110766:5613a6649f72
mm-decode.el (mm-shr): Decode contents by charset.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Tue, 05 Oct 2010 02:08:37 +0000 |
parents | 0333270eb3dc |
children | 2c36d4f54456 |
files | lisp/gnus/ChangeLog lisp/gnus/mm-decode.el |
diffstat | 2 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog Tue Oct 05 01:23:11 2010 +0000 +++ b/lisp/gnus/ChangeLog Tue Oct 05 02:08:37 2010 +0000 @@ -1,3 +1,7 @@ +2010-10-05 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-decode.el (mm-shr): Decode contents by charset. + 2010-10-04 Lars Magne Ingebrigtsen <larsi@gnus.org> * shr.el (shr-tag-blockquote): Ensure paragraph after quote, too.
--- a/lisp/gnus/mm-decode.el Tue Oct 05 01:23:11 2010 +0000 +++ b/lisp/gnus/mm-decode.el Tue Oct 05 02:08:37 2010 +0000 @@ -1679,14 +1679,27 @@ (and (eq (mm-body-7-or-8) '7bit) (not (mm-long-lines-p 76)))))) +(declare-function libxml-parse-html-region "xml.c" + (start end &optional base-url)) +(declare-function shr-insert-document "shr" (dom)) + (defun mm-shr (handle) - (let ((article-buffer (current-buffer))) + (let ((article-buffer (current-buffer)) + charset) (unless handle (setq handle (mm-dissect-buffer t))) + (setq charset (mail-content-type-get (mm-handle-type handle) 'charset)) (save-restriction (narrow-to-region (point) (point)) (shr-insert-document (mm-with-part handle + (when (and charset + (setq charset (mm-charset-to-coding-system charset)) + (not (eq charset 'ascii))) + (insert (prog1 + (mm-decode-coding-string (buffer-string) charset) + (erase-buffer) + (mm-enable-multibyte)))) (libxml-parse-html-region (point-min) (point-max))))))) (provide 'mm-decode)