tm 6.71
[elisp/tm.git] / tm-view.el
index 4110f29..ee8dce3 100644 (file)
@@ -4,16 +4,15 @@
 ;;; by Morioka Tomohiko, 1994/07/13
 ;;; 
 
-(provide 'tm-view)
-
-
 ;;; @ require modules
 ;;;
 
 (require 'tl-str)
 (require 'tl-list)
+(require 'tl-atype)
 (require 'tl-misc)
 (require 'tl-header)
+(require 'mel)
 (require 'tiny-mime)
 (require 'tm-misc)
 
@@ -22,7 +21,7 @@
 ;;;
 
 (defconst mime-viewer/RCS-ID
-  "$Id: tm-view.el,v 6.58 1995/06/22 04:11:58 morioka Exp $")
+  "$Id: tm-view.el,v 6.71 1995/08/03 21:21:16 morioka Exp $")
 
 (defconst mime-viewer/version (get-version-string mime-viewer/RCS-ID))
 (defconst mime/viewer-version mime-viewer/version)
   (concat (regexp-* mime-viewer/file-name-char-regexp)
          "\\(\\." mime-viewer/file-name-char-regexp "+\\)*"))
 
+(defvar mime-viewer/announcement-for-message/partial
+  "[[ This is message/partial style split message. ]]
+[[ Please press `v' key in this buffer.         ]]")
+
 
 ;;; @@ predicate functions
 ;;;
 
 (defun mime-viewer/default-content-subject-function
   (cnum cinfo ctype params subj)
-  (if (not (member
-           ctype
-           mime-viewer/content-subject-omitting-Content-Type-list))
+  (if (and (listp cnum)
+          (not (member
+                ctype
+                mime-viewer/content-subject-omitting-Content-Type-list))
+          )
       (insert
        (let ((access-type (assoc "access-type" params))
             (num (or (assoc-value "x-part-number" params)
       (gnus-summary-select-article nil t)
     ))
 
-(defun mime::viewer/quitting-method-for-rmail ()
-  (mime-viewer/kill-buffer)
-  (rmail-summary)
-  (delete-other-windows)
-  )
-
 (defvar mime-viewer/quitting-method-alist
   '((gnus-article-mode . mime::viewer/quitting-method-for-gnus4)
-    (rmail-mode        . mime::viewer/quitting-method-for-rmail)
     (mime/show-message-mode
      . (lambda ()
         (set-window-configuration
@@ -542,6 +540,9 @@ it is regarded as current-buffer. [tm-view]"
     (setq mime::preview/original-major-mode mode)
     (setq major-mode 'mime/viewer-mode)
     (setq mode-name "MIME-View")
+    (make-variable-buffer-local 'outline-regexp)
+    ;;(setq outline-regexp "\\[.*\\]\\|\C-L")
+    ;;(outline-minor-mode t)
     (setq dest
          (mapcar
           (function
@@ -550,6 +551,7 @@ it is regarded as current-buffer. [tm-view]"
                    (end (mime::content-info/point-max cell))
                    (ctype (mime::content-info/type cell))
                    (params (mime::content-info/parameters cell))
+                   (encoding (mime::content-info/encoding cell))
                    he cnum e nb ne subj str)
                (setq cnum (mime::get-point-content-number beg cinfo))
                (switch-to-buffer the-buf)
@@ -558,6 +560,9 @@ it is regarded as current-buffer. [tm-view]"
                           (re-search-forward "^$" nil t)
                           (+ (match-end 0) 1)
                           ))
+               (if (> he (point-max))
+                   (setq he (point-max))
+                 )
                (switch-to-buffer obuf)
                (setq nb (point))
                (narrow-to-region nb nb)
@@ -598,10 +603,23 @@ it is regarded as current-buffer. [tm-view]"
                        (setq ne (point-max))
                        )
                      (switch-to-buffer the-buf)
-                     ))
+                     )
+                 (if (equal ctype "message/partial")
+                     (let (be)
+                       (switch-to-buffer obuf)
+                       (save-restriction
+                         (setq be (point-max))
+                         (narrow-to-region be be)
+                         (insert
+                          mime-viewer/announcement-for-message/partial)
+                         (setq ne (point-max))
+                         )
+                       (switch-to-buffer the-buf)
+                       ))
+                 )
                (switch-to-buffer obuf)
                (mime-viewer/default-content-separator
-                cnum cinfo ctype params subj)
+                cnum cinfo ctype params subj)
                (prog1
                    (progn
                      (setq subj (mime-viewer/get-subject params))
@@ -698,40 +716,6 @@ it is regarded as current-buffer. [tm-view]"
 ;;; @ decoder
 ;;;
 
-(defun mime/Quoted-Printable-decode-region (beg end)
-  (interactive "*r")
-  (save-excursion
-    (save-restriction
-      (narrow-to-region beg end)
-      (goto-char (point-min))
-      (while (re-search-forward "=\n" nil t)
-       (replace-match "")
-       )
-      (goto-char (point-min))
-      (let (b e str)
-       (while (re-search-forward mime/Quoted-Printable-octet-regexp nil t)
-         (setq b (match-beginning 0))
-         (setq e (match-end 0))
-         (setq str (buffer-substring b e))
-         (delete-region b e)
-         (insert (mime/Quoted-Printable-decode-string str))
-         ))
-      )))
-
-(defun mime/Base64-decode-region (beg end)
-  (interactive "*r")
-  (save-excursion
-    (save-restriction
-      (narrow-to-region beg end)
-      (goto-char (point-min))
-      (while (search-forward "\n" nil t)
-       (replace-match "")
-       )
-      (let ((str (buffer-substring (point-min)(point-max))))
-       (delete-region (point-min)(point-max))
-       (insert (mime/base64-decode-string str))
-       ))))
-
 (defun mime/make-method-args (cal format)
   (mapcar (function
           (lambda (arg)
@@ -900,7 +884,7 @@ it is regarded as current-buffer. [tm-view]"
 
 (defun mime-viewer/default-code-convert-region
   (beg end charset &optional encoding)
-  (if (member charset '("quoted-printable" "base64"))
+  (if (member encoding '("quoted-printable" "base64"))
       (mime/code-convert-region-to-emacs beg (point-max) charset)
     ))
 
@@ -910,10 +894,10 @@ it is regarded as current-buffer. [tm-view]"
        )
     (goto-char (point-min))
     (cond ((string= encoding "quoted-printable")
-          (mime/Quoted-Printable-decode-region beg end)
+          (quoted-printable-decode-region beg end)
           )
          ((string= encoding "base64")
-          (mime/Base64-decode-region beg end)
+          (base64-decode-region beg end)
           ))
     (let* ((mode mime::preview/original-major-mode)
           (m (assq mode mime-viewer/code-converter-alist))
@@ -923,6 +907,11 @@ it is regarded as current-buffer. [tm-view]"
        (mime-viewer/default-code-convert-region beg (point-max)
                                                 charset encoding)
        )))
+  (goto-char (point-max))
+  (if (not (eq (char-after (1- (point))) ?\n))
+      (insert "\n")
+    )
+  ;;(hide-sublevels 1)
   (run-hooks 'mime-viewer/plain-text-preview-hook)
   )
 
@@ -1160,7 +1149,9 @@ q Quit
     (forward-line h)
     (if (> (point) np)
        (goto-char np)
-      )))
+      )
+    ;;(show-subtree)
+    ))
 
 (defun mime-viewer/scroll-down-content (&optional h)
   (interactive)
@@ -1222,4 +1213,10 @@ q        Quit
   (kill-buffer (current-buffer))
   )
 
+
+;;; @ end
+;;;
+
+(provide 'tm-view)
+
 (run-hooks 'tm-view-load-hook)