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.
This commit is contained in:
parent
20c0b2cea2
commit
82fc79808b
3 changed files with 20 additions and 8 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue