emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r101794: mm-decode.el (mm-shr): Decod


From: Katsumi Yamaoka
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r101794: mm-decode.el (mm-shr): Decode contents by charset.
Date: Tue, 05 Oct 2010 02:08:37 +0000
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 101794
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Tue 2010-10-05 02:08:37 +0000
message:
  mm-decode.el (mm-shr): Decode contents by charset.
modified:
  lisp/gnus/ChangeLog
  lisp/gnus/mm-decode.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2010-10-05 01:23:11 +0000
+++ b/lisp/gnus/ChangeLog       2010-10-05 02:08:37 +0000
@@ -1,3 +1,7 @@
+2010-10-05  Katsumi Yamaoka  <address@hidden>
+
+       * mm-decode.el (mm-shr): Decode contents by charset.
+
 2010-10-04  Lars Magne Ingebrigtsen  <address@hidden>
 
        * shr.el (shr-tag-blockquote): Ensure paragraph after quote, too.

=== modified file 'lisp/gnus/mm-decode.el'
--- a/lisp/gnus/mm-decode.el    2010-10-04 00:17:16 +0000
+++ b/lisp/gnus/mm-decode.el    2010-10-05 02:08:37 +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)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]