tm 7.99.
[elisp/tm.git] / tm-text.el
index 5b64ee9..613aa6e 100644 (file)
@@ -1,5 +1,5 @@
 ;;;
-;;; tm-text.el --- a tm-view content filter to display
+;;; tm-text.el --- a content filter module of tm-view to display
 ;;;                text/plain, text/richtext and text/enriched
 ;;;                in Emacs buffers
 ;;;
@@ -8,7 +8,7 @@
 ;;;
 ;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Version:
-;;;    $Id: tm-text.el,v 7.12 1996/05/27 08:14:11 morioka Exp $
+;;;    $Id: tm-text.el,v 7.21 1996/07/29 01:13:20 morioka Exp $
 ;;; Keywords: mail, news, MIME, multimedia, text
 ;;;
 ;;; This file is part of tm (Tools for MIME).
 ;;;
 
 (defvar mime-viewer/code-converter-alist
-  '((mime/show-message-mode      . mime-charset-decode-region)
-    (mime/temporary-message-mode . mime-charset-decode-region)
-    (t . mime-viewer/default-code-convert-region)
+  '((mime/show-message-mode      . mime-charset/decode-buffer)
+    (mime/temporary-message-mode . mime-charset/decode-buffer)
+    (t                          . mime-charset/maybe-decode-buffer)
     ))
 
-(defun mime-viewer/default-code-convert-region
-  (beg end charset &optional encoding)
-  (if (member encoding '("quoted-printable" "base64"))
-      (mime-charset-decode-region beg end charset)
-    ))
+(defun mime-charset/decode-buffer (charset &optional encoding)
+  (decode-mime-charset-region (point-min)(point-max)
+                             (or charset default-mime-charset))
+  )
 
-(defun mime-preview/decode-text-region (beg end charset encoding)
-  (mime-decode-region beg end encoding)
+(defun mime-charset/maybe-decode-buffer (charset &optional encoding)
+  (or (member encoding '(nil "7bit" "8bit" "binary"))
+      (mime-charset/decode-buffer charset)
+      ))
+
+(defun mime-preview/decode-text-buffer (charset encoding)
+  (mime-decode-region (point-min) (point-max) encoding)
   (let* ((mode mime::preview/original-major-mode)
         (m (or (save-excursion
                  (set-buffer mime::preview/article-buffer)
@@ -55,7 +59,7 @@
                ))
         )
     (and (functionp m)
-        (funcall m beg (point-max) charset encoding)
+        (funcall m charset encoding)
         )))
 
 
 ;;;
 
 (defun mime-preview/filter-for-text/plain (ctype params encoding)
-  (let ((charset (cdr (assoc "charset" params)))
-       (beg (point-min)) (end (point-max))
-       )
-    (mime-preview/decode-text-region beg end charset encoding)
-    )
+  (mime-preview/decode-text-buffer (cdr (assoc "charset" params)) encoding)
   (goto-char (point-max))
   (if (not (eq (char-after (1- (point))) ?\n))
       (insert "\n")
 (defun mime-preview/filter-for-text/richtext (ctype params encoding)
   (let* ((mode mime::preview/original-major-mode)
         (m (assq mode mime-viewer/code-converter-alist))
-        (charset (assoc "charset" params))
-        ;; 1995/9/21 (c.f. tm-eng:105), 1995/10/3 (c.f. tm-eng:121)
-        ;;   modified by Eric Ding <ericding@San-Jose.ate.slb.com>
-        (beg (point-min)) (end (point-max))
+        (charset (cdr (assoc "charset" params)))
+        (beg (point-min))
         )
-    (remove-text-properties beg end '(face nil))
-    (mime-decode-region beg end encoding)
-    (if (and m (fboundp (setq m (cdr m))))
-       (funcall m beg (point-max) charset encoding)
-      (mime-viewer/default-code-convert-region beg (point-max)
-                                              charset encoding)
-      )
+    (remove-text-properties beg (point-max) '(face nil))
+    (mime-preview/decode-text-buffer charset encoding)
     (richtext-decode beg (point-max))
     ))
 
 (defun mime-preview/filter-for-text/enriched (ctype params encoding)
   (let* ((mode mime::preview/original-major-mode)
         (m (assq mode mime-viewer/code-converter-alist))
-        (charset (assoc "charset" params))
-        ;; 1995/9/21 (c.f. tm-eng:105), 1995/10/3 (c.f. tm-eng:121)
-        ;;   modified by Eric Ding <ericding@San-Jose.ate.slb.com>
-        (beg (point-min)) (end (point-max))
+        (charset (cdr (assoc "charset" params)))
+        (beg (point-min))
         )
-    (remove-text-properties beg end '(face nil))
-    (mime-decode-region beg end encoding)
-    (if (and m (fboundp (setq m (cdr m))))
-       (funcall m beg (point-max) charset encoding)
-      (mime-viewer/default-code-convert-region beg (point-max)
-                                              charset encoding)
-      )
+    (remove-text-properties beg (point-max) '(face nil))
+    (mime-preview/decode-text-buffer charset encoding)
     (enriched-decode beg (point-max))
     ))