Commit 82fc7980 authored by Katsumi Yamaoka's avatar Katsumi Yamaoka

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.
parent 20c0b2ce
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
......
......@@ -2893,7 +2893,8 @@ message header will be added to the bodies of the \"text/html\" parts."
;; 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 @@ message header will be added to the bodies of the \"text/html\" parts."
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 @@ message header will be added to the bodies of the \"text/html\" parts."
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 @@ message header will be added to the bodies of the \"text/html\" parts."
(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)
......
......@@ -1258,11 +1258,11 @@ PROMPT overrides the default one used to ask user for a file name."
(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 @@ or replaced."
(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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment