;;; mm-bodies.el --- Functions for decoding MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
(save-excursion
(goto-char (point-min))
(if (re-search-forward "[^\x0-\x7f]" nil t)
- mm-default-charset
+ (or mail-parse-charset
+ (mm-read-charset "Charset used in the article: "))
;; The logic in `mml-generate-mime-1' confirms that it's OK
;; to return nil here.
nil))
charsets)
;; We encode.
(t
- (let ((mime-charset
- (mm-mime-charset (car charsets) (point-min) (point-max)))
+ (let ((mime-charset (mm-mime-charset (car charsets)))
start)
(when (or t
;; We always decode.
'7bit))
(t
;; Mule version
- (if (and (null (delq 'ascii (find-charset-region (point-min) (point-max))))
+ (if (and (null (delq 'ascii
+ (mm-find-charset-region (point-min) (point-max))))
;;!!!The following is necessary because the function
;;!!!above seems to return the wrong result under
;;!!!Emacs 20.3. Sometimes.
(defun mm-decode-content-transfer-encoding (encoding &optional type)
(prog1
- (condition-case ()
+ (condition-case error
(cond
((eq encoding 'quoted-printable)
(quoted-printable-decode-region (point-min) (point-max)))
(funcall encoding (point-min) (point-max)))
(t
(message "Unknown encoding %s; defaulting to 8bit" encoding)))
- (error nil))
+ (error
+ (message "Error while decoding: %s" error)
+ nil))
(when (and
(memq encoding '(base64 x-uuencode x-binhex))
(equal type "text/plain"))
(defun mm-decode-body (charset &optional encoding type)
"Decode the current article that has been encoded with ENCODING.
The characters in CHARSET should then be decoded."
- (setq charset (or charset rfc2047-default-charset))
+ (setq charset (or charset mail-parse-charset))
(save-excursion
(when encoding
(mm-decode-content-transfer-encoding encoding type))
(let (mule-charset)
(when (and charset
(setq mule-charset (mm-charset-to-coding-system charset))
- ;; buffer-file-coding-system
+ ;; buffer-file-coding-system
;Article buffer is nil coding system
;in XEmacs
enable-multibyte-characters
(or (not (eq mule-charset 'ascii))
- (setq mule-charset rfc2047-default-charset)))
+ (setq mule-charset mail-parse-charset)))
(mm-decode-coding-region (point-min) (point-max) mule-charset))))))
(defun mm-decode-string (string charset)
"Decode STRING with CHARSET."
- (setq charset (or charset rfc2047-default-charset))
+ (setq charset (or charset mail-parse-charset))
(or
(when (featurep 'mule)
(let (mule-charset)
(setq mule-charset (mm-charset-to-coding-system charset))
enable-multibyte-characters
(or (not (eq mule-charset 'ascii))
- (setq mule-charset rfc2047-default-charset)))
+ (setq mule-charset mail-parse-charset)))
(mm-decode-coding-string string mule-charset))))
string))