tm 7.23.
[elisp/tm.git] / tm-play.el
index ef3cc3f..7fbe1f0 100644 (file)
@@ -6,7 +6,7 @@
 ;;;
 ;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Version:
-;;;    $Id: tm-play.el,v 4.0 1995/11/04 07:51:22 morioka Exp $
+;;;    $Id: tm-play.el,v 7.1 1995/11/10 11:13:32 morioka Exp $
 ;;; Keywords: mail, news, MIME, multimedia
 ;;;
 ;;; This file is part of tm (Tools for MIME).
       )))
 
 
+;;; @ mail/news message
+;;;
+
+(defun mime-viewer/quitting-method-for-mime/show-message-mode ()
+  (set-window-configuration mime/show-mode-old-window-configuration)
+  (let ((mother mime::preview/mother-buffer))
+    (kill-buffer
+     (mime::preview-content-info/buffer (car mime::preview/content-list)))
+    (mime-viewer/kill-buffer)
+    (pop-to-buffer mother)
+    ;;(goto-char (point-min))
+    ;;(mime-viewer/up-content)
+    ))
+
+(defun mime-article/view-message/rfc822 (beg end cal)
+  (let* ((cnum (mime-article/point-content-number beg))
+        (cur-buf (current-buffer))
+        (new-name (format "%s-%s" (buffer-name) cnum))
+        (mother mime::article/preview-buffer)
+        str)
+    (setq str (buffer-substring beg end))
+    (switch-to-buffer new-name)
+    (erase-buffer)
+    (insert str)
+    (goto-char (point-min))
+    (if (re-search-forward "^\n" nil t)
+       (delete-region (point-min) (match-end 0))
+      )
+    (setq major-mode 'mime/show-message-mode)
+    (mime/viewer-mode mother)
+    ))
+
+
 ;;; @ message/partial
 ;;;
 
+(defvar mime-article/coding-system-alist
+  (and (boundp 'MULE)
+       '((mh-show-mode . *noconv*)
+        (t            . *ctext*)
+        )))             
+
+(defvar mime-article/kanji-code-alist
+  (and (boundp 'NEMACS)
+       '((mh-show-mode . nil)
+        (t            . 2)
+        ))) 
+
 (defun mime-article/decode-message/partial (beg end cal)
   (goto-char beg)
   (let* ((root-dir (expand-file-name
          (re-search-forward "^$")
          (goto-char (1+ (match-end 0)))
          (setq file (concat root-dir "/" number))
-         (write-region (point) (point-max) file)
+         (let ((file-coding-system
+                (cdr
+                 (or (assq major-mode mime-article/coding-system-alist)
+                     (assq t mime-article/coding-system-alist)
+                     )))
+               (kanji-fileio-code
+                (cdr
+                 (or (assq major-mode mime-article/kanji-code-alist)
+                     (assq t mime-article/kanji-code-alist)
+                     )))
+               )
+           (write-region (point) (point-max) file)
+           )
          (if (get-buffer "*MIME-temp*")
              (kill-buffer "*MIME-temp*")
            )
     ))
 
 
+;;; @ rot13-47
+;;;
+
+(defun mime-article/decode-caesar (beg end cal)
+  (let* ((cnum (mime-article/point-content-number beg))
+        (cur-buf (current-buffer))
+        (new-name (format "%s-%s" (buffer-name) cnum))
+        (mother mime::article/preview-buffer)
+        (charset (cdr (assoc "charset" params)))
+        (mode major-mode)
+        str)
+    (setq str (buffer-substring beg end))
+    (switch-to-buffer new-name)
+    (erase-buffer)
+    (insert str)
+    (goto-char (point-min))
+    (if (re-search-forward "^\n" nil t)
+       (delete-region (point-min) (match-end 0))
+      )
+    (let ((m (assq mode mime-viewer/code-converter-alist)))
+      (if (and m (fboundp (setq m (cdr m))))
+         (funcall m (point-min) (point-max) charset encoding)
+       (mime-viewer/default-code-convert-region (point-min) (point-max)
+                                                charset encoding)
+       ))
+    (save-excursion
+      (set-mark (point-min))
+      (goto-char (point-max))
+      (tm:caesar-region)
+      )
+    (view-mode)
+    ))
+
+
 ;;; @ end
 ;;;