New directory
[bpt/emacs.git] / lisp / gnus / mm-bodies.el
index bd72acc..ab8ab1c 100644 (file)
@@ -1,5 +1,5 @@
-;;; mm-bodies.el --- Functions for decoding MIME things
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+;;; mm-bodies.el --- functions for decoding MIME things
+;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -56,11 +56,11 @@ Valid encodings are `7bit', `8bit', `quoted-printable' and `base64'."
 (defun mm-encode-body ()
   "Encode a body.
 Should be called narrowed to the body that is to be encoded.
-If there is more than one non-ASCII MULE charset, then list of found
-MULE charsets are returned.
+If there is more than one non-ASCII Mule charset, then the list of found
+Mule charsets is returned.
 If successful, the MIME charset is returned.
 If no encoding was done, nil is returned."
-  (if (not (featurep 'mule))
+  (if (not (mm-multibyte-p))
       ;; In the non-Mule case, we search for non-ASCII chars and
       ;; return the value of `mail-parse-charset' if any are found.
       (save-excursion
@@ -73,8 +73,7 @@ If no encoding was done, nil is returned."
          nil))
     (save-excursion
       (goto-char (point-min))
-      (let ((charsets (mm-find-mime-charset-region (point-min) (point-max)))
-           charset)
+      (let ((charsets (mm-find-mime-charset-region (point-min) (point-max))))
        (cond
         ;; No encoding.
         ((null charsets)
@@ -84,29 +83,10 @@ If no encoding was done, nil is returned."
          charsets)
         ;; We encode.
         (t
-         (let ((charset (car charsets))
-               start)
-           (when (or t
-                     ;; We always decode.
-                     (not (mm-coding-system-equal
-                           charset buffer-file-coding-system)))
-             (while (not (eobp))
-               (if (eq (mm-charset-after) 'ascii)
-                   (when start
-                     (save-restriction
-                       (narrow-to-region start (point))
-                       (mm-encode-coding-region
-                        start (point) (mm-charset-to-coding-system charset))
-                       (goto-char (point-max)))
-                     (setq start nil))
-                 (unless start
-                   (setq start (point))))
-               (forward-char 1))
-             (when start
-               (mm-encode-coding-region start (point)
-                                        (mm-charset-to-coding-system charset))
-               (setq start nil)))
-           charset)))))))
+         (mm-encode-coding-region (point-min) (point-max)
+                                  (mm-charset-to-coding-system
+                                   (car charsets)))
+         (car charsets)))))))
 
 (eval-when-compile (defvar message-posting-charset))
 
@@ -133,27 +113,12 @@ If no encoding was done, nil is returned."
 
 (defun mm-body-7-or-8 ()
   "Say whether the body is 7bit or 8bit."
-  (cond
-   ((not (featurep 'mule))
-    (if (save-excursion
-         (goto-char (point-min))
-         (skip-chars-forward mm-7bit-chars)
-         (eobp))
-       '7bit
-      '8bit))
-   (t
-    ;; Mule version
-    (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.
-            (save-excursion
-              (goto-char (point-min))
-              (skip-chars-forward mm-7bit-chars)
-              (eobp)))
-       '7bit
-      '8bit))))
+  (if (save-excursion
+       (goto-char (point-min))
+       (skip-chars-forward mm-7bit-chars)
+       (eobp))
+      '7bit
+    '8bit))
 
 ;;;
 ;;; Functions for decoding
@@ -213,7 +178,7 @@ If no encoding was done, nil is returned."
 The characters in CHARSET should then be decoded."
   (if (stringp charset)
       (setq charset (intern (downcase charset))))
-  (if (or (not charset) 
+  (if (or (not charset)
          (eq 'gnus-all mail-parse-ignored-charsets)
          (memq 'gnus-all mail-parse-ignored-charsets)
          (memq charset mail-parse-ignored-charsets))
@@ -226,7 +191,7 @@ The characters in CHARSET should then be decoded."
        (if (and (not coding-system)
                 (listp mail-parse-ignored-charsets)
                 (memq 'gnus-unknown mail-parse-ignored-charsets))
-           (setq coding-system 
+           (setq coding-system
                  (mm-charset-to-coding-system mail-parse-charset)))
        (when (and charset coding-system
                   ;; buffer-file-coding-system
@@ -242,7 +207,7 @@ The characters in CHARSET should then be decoded."
   "Decode STRING with CHARSET."
   (when (stringp charset)
     (setq charset (intern (downcase charset))))
-  (when (or (not 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))
@@ -253,7 +218,7 @@ The characters in CHARSET should then be decoded."
        (if (and (not coding-system)
                (listp mail-parse-ignored-charsets)
                (memq 'gnus-unknown mail-parse-ignored-charsets))
-          (setq coding-system 
+          (setq coding-system
                 (mm-charset-to-coding-system mail-parse-charset)))
        (when (and charset coding-system
                  (mm-multibyte-p)
@@ -264,4 +229,4 @@ The characters in CHARSET should then be decoded."
 
 (provide 'mm-bodies)
 
-;; mm-bodies.el ends here
+;;; mm-bodies.el ends here