*** empty log message ***
[gnus] / lisp / mm-bodies.el
index 09c406d..c9b24b5 100644 (file)
@@ -1,5 +1,5 @@
 ;;; 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>
@@ -51,7 +51,8 @@ If no encoding was done, nil is returned."
       (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))
@@ -69,8 +70,7 @@ If no encoding was done, nil is returned."
          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.
@@ -103,7 +103,8 @@ If no encoding was done, nil is returned."
       '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.
@@ -120,7 +121,7 @@ If no encoding was done, nil is returned."
 
 (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)))
@@ -138,7 +139,9 @@ If no encoding was done, nil is returned."
            (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"))
@@ -149,7 +152,7 @@ If no encoding was done, nil is returned."
 (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))
@@ -157,17 +160,17 @@ The characters in CHARSET should then be decoded."
       (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)
@@ -175,7 +178,7 @@ The characters in CHARSET should then be decoded."
                  (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))