Function: mm-decode-string

mm-decode-string is a byte-compiled function defined in mm-bodies.el.gz.

Signature

(mm-decode-string STRING CHARSET)

Documentation

Decode STRING with CHARSET.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/mm-bodies.el.gz
(defun mm-decode-string (string charset)
  "Decode STRING with CHARSET."
  (when (stringp charset)
    (setq charset (intern (downcase charset))))
  (when (or (not charset)
	    (eq 'gnus-all mail-parse-ignored-charsets)
	    (memq 'gnus-all mail-parse-ignored-charsets)
	    (memq charset mail-parse-ignored-charsets))
    (setq charset mail-parse-charset))
  (or
   (let ((coding-system (mm-charset-to-coding-system
			 charset
			 ;; Allow overwrite using
			 ;; `mm-charset-override-alist'.
			 nil t)))
     (if (and (not coding-system)
	      (listp mail-parse-ignored-charsets)
	      (memq 'gnus-unknown mail-parse-ignored-charsets))
	 (setq coding-system
	       (mm-charset-to-coding-system mail-parse-charset)))
     (when (and charset coding-system
		enable-multibyte-characters
		(or (not (eq coding-system 'ascii))
		    (setq coding-system mail-parse-charset)))
       (decode-coding-string string coding-system)))
   string))