X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-art.el;h=48ab6bf6617965d2f1465b7a5cd7621a002cb304;hb=8105541ee890397f15d41f6ac2d1a818ce80e0f4;hp=d3b2357a318a7038f604295cd668b10ecdb2a2ee;hpb=efabe10f0e7b9efc08982cf7430df51648dac426;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index d3b2357..48ab6bf 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -33,6 +33,7 @@ (require 'gnus-spec) (require 'gnus-int) (require 'browse-url) +(require 'mm-bodies) (defgroup gnus-article nil "Article display." @@ -398,7 +399,7 @@ beginning of a line." :type 'regexp :group 'gnus-article-various) -(defcustom gnus-article-mode-line-format "Gnus: %%b %S" +(defcustom gnus-article-mode-line-format "Gnus: %g %S" "*The format specification for the article mode line. See `gnus-summary-mode-line-format' for a closer description." :type 'string @@ -954,6 +955,31 @@ characters to translate to." buffer-read-only) (rfc2047-decode-region (point-min) (point-max))))) +(defun gnus-article-decode-charset (&optional prompt) + "Decode charset-encoded text in the article. +If PROMPT (the prefix), prompt for a coding system to use." + (interactive "P") + (save-excursion + (set-buffer gnus-article-buffer) + (let* ((inhibit-point-motion-hooks t) + (ct (message-fetch-field "Content-Type" t)) + (cte (message-fetch-field "Content-Transfer-Encoding" t)) + (charset (cond + (prompt + (mm-read-coding-system "Charset to decode: ")) + (ct + (mm-content-type-charset ct)) + (gnus-newsgroup-name + (gnus-group-find-parameter + gnus-newsgroup-name 'charset)))) + buffer-read-only) + (save-restriction + (goto-char (point-min)) + (search-forward "\n\n" nil 'move) + (narrow-to-region (point) (point-max)) + (mm-decode-body + charset (and cte (intern (downcase (gnus-strip-whitespace cte))))))))) + (defalias 'gnus-decode-rfc1522 'article-decode-rfc1522) (defalias 'gnus-article-decode-rfc1522 'article-decode-rfc1522) (defun article-decode-rfc1522 () @@ -1936,8 +1962,7 @@ commands: (buffer-disable-undo (current-buffer)) (setq buffer-read-only t) (set-syntax-table gnus-article-mode-syntax-table) - (when (fboundp 'set-buffer-multibyte) - (set-buffer-multibyte t)) + (mm-enable-multibyte) (gnus-run-hooks 'gnus-article-mode-hook)) (defun gnus-article-setup-buffer ()