Mercurial > emacs
changeset 107581:1e23ce3cbd8b
2010-03-30 Martin Stjernholm <mast@lysator.liu.se>
* mm-decode.el (mm-add-meta-html-tag): Added option to override the
charset.
* gnus-art.el (gnus-article-browse-html-parts): Force the correct
charset into the <meta> tag when the article is encoded to utf-8.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Tue, 30 Mar 2010 04:44:38 +0000 |
parents | 7e2e7d245782 |
children | 97afa1904e05 5540f668f288 |
files | lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/mm-decode.el |
diffstat | 3 files changed, 20 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog Tue Mar 30 04:12:11 2010 +0000 +++ b/lisp/gnus/ChangeLog Tue Mar 30 04:44:38 2010 +0000 @@ -1,3 +1,11 @@ +2010-03-30 Martin Stjernholm <mast@lysator.liu.se> + + * mm-decode.el (mm-add-meta-html-tag): Added option to override the + charset. + + * gnus-art.el (gnus-article-browse-html-parts): Force the correct + charset into the <meta> tag when the article is encoded to utf-8. + 2010-03-30 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-art.el (gnus-article-browse-delete-temp-files): Delete
--- a/lisp/gnus/gnus-art.el Tue Mar 30 04:12:11 2010 +0000 +++ b/lisp/gnus/gnus-art.el Tue Mar 30 04:44:38 2010 +0000 @@ -2893,7 +2893,8 @@ ;; Add a meta html tag to specify charset and a header. (cond (header - (let (title eheader body hcharset coding cid-image-dir) + (let (title eheader body hcharset coding force-charset + cid-image-dir) (with-temp-buffer (mm-enable-multibyte) (setq case-fold-search t) @@ -2917,7 +2918,8 @@ title (when title (mm-encode-coding-string title charset)) body (mm-encode-coding-string (mm-get-part handle) - charset)) + charset) + force-charset t) (setq hcharset (mm-find-mime-charset-region (point-min) (point-max))) (cond ((= (length hcharset) 1) @@ -2948,7 +2950,8 @@ body (mm-encode-coding-string (mm-decode-coding-string (mm-get-part handle) body) - charset)))) + charset) + force-charset t))) (setq charset hcharset eheader (mm-encode-coding-string (buffer-string) coding) @@ -2962,7 +2965,7 @@ (mm-disable-multibyte) (insert body) (when charset - (mm-add-meta-html-tag handle charset)) + (mm-add-meta-html-tag handle charset force-charset)) (when title (goto-char (point-min)) (unless (search-forward "<title>" nil t)
--- a/lisp/gnus/mm-decode.el Tue Mar 30 04:12:11 2010 +0000 +++ b/lisp/gnus/mm-decode.el Tue Mar 30 04:44:38 2010 +0000 @@ -1258,11 +1258,11 @@ (mm-save-part-to-file handle file) file)))) -(defun mm-add-meta-html-tag (handle &optional charset) +(defun mm-add-meta-html-tag (handle &optional charset force-charset) "Add meta html tag to specify CHARSET of HANDLE in the current buffer. CHARSET defaults to the one HANDLE specifies. Existing meta tag that -specifies charset will not be modified. Return t if meta tag is added -or replaced." +specifies charset will not be modified unless FORCE-CHARSET is non-nil. +Return t if meta tag is added or replaced." (when (equal (mm-handle-media-type handle) "text/html") (when (or charset (setq charset (mail-content-type-get (mm-handle-type handle) @@ -1274,7 +1274,8 @@ (if (re-search-forward "\ <meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']\ text/\\(\\sw+\\)\\(?:\;\\s-*charset=\\(.+\\)\\)?[\"'][^>]*>" nil t) - (if (and (match-beginning 2) + (if (and (not force-charset) + (match-beginning 2) (string-match "\\`html\\'" (match-string 1))) ;; Don't modify existing meta tag. nil