Function: article-decode-charset
article-decode-charset is an interactive and byte-compiled function
defined in gnus-art.el.gz.
Signature
(article-decode-charset &optional PROMPT)
Documentation
Decode charset-encoded text in the article.
If PROMPT (the prefix), prompt for a coding system to use.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
(defun 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" gnus-article-mode)
(let ((case-fold-search t)
(inhibit-read-only t)
(mail-parse-charset gnus-newsgroup-charset)
(mail-parse-ignored-charsets
(save-excursion (condition-case nil
(set-buffer gnus-summary-buffer)
(error))
gnus-newsgroup-ignored-charsets))
ct cte ctl charset format)
(save-excursion
(save-restriction
(article-narrow-to-head)
(setq ct (message-fetch-field "Content-Type" t)
cte (message-fetch-field "Content-Transfer-Encoding" t)
ctl (and ct (mail-header-parse-content-type ct))
charset (cond
(prompt
(read-coding-system "Charset to decode: "))
(ctl
(mail-content-type-get ctl 'charset)))
format (and ctl (mail-content-type-get ctl 'format)))
(when cte
(setq cte (mail-header-strip-cte cte)))
(if (and ctl (not (string-search "/" (car ctl))))
(setq ctl nil))
(goto-char (point-max)))
(forward-line 1)
(save-restriction
(narrow-to-region (point) (point-max))
(when (and (eq mail-parse-charset 'gnus-decoded)
(eq (mm-body-7-or-8) '8bit))
;; The text code could have been decoded.
(setq charset mail-parse-charset))
(when (and (or (not ctl)
(equal (car ctl) "text/plain"))
(not format)) ;; article with format will decode later.
(mm-decode-body
charset (and cte (intern (downcase cte)))
(car ctl)))))))