(bbdb-extract-field-value): Use `eword-decode-string' instead of
[elisp/tm.git] / tm-play.el
index d901e00..a1366d7 100644 (file)
@@ -4,7 +4,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1995/9/26 (separated from tm-view.el)
-;; Version: $Id: tm-play.el,v 7.39 1997/02/01 17:54:51 morioka Exp $
+;; Version: $Id: tm-play.el,v 7.43 1997/03/12 14:26:55 morioka Exp $
 ;; Keywords: mail, news, MIME, multimedia
 
 ;; This file is part of tm (Tools for MIME).
        (cons t (mime-charset-to-coding-system default-mime-charset))
        ))
 
-(cond (running-mule-merged-emacs
+(cond ((boundp 'MULE) ; for MULE 2.3 or older
        (defun mime-article::write-region (start end file)
-        (let ((coding-system-for-write
+        (let ((file-coding-system
                (cdr
                 (or (assq major-mode mime-article/coding-system-alist)
                     (assq t mime-article/coding-system-alist)
           (write-region start end file)
           ))
        )
-      ((or (boundp 'MULE)
-          running-xemacs-with-mule)
+      ((featurep 'mule) ; for Emacs/mule and XEmacs/mule
        (defun mime-article::write-region (start end file)
-        (let ((file-coding-system
+        (let ((coding-system-for-write
                (cdr
                 (or (assq major-mode mime-article/coding-system-alist)
                     (assq t mime-article/coding-system-alist)
           (write-region start end file)
           ))
        )
-      ((boundp 'NEMACS)
+      ((boundp 'NEMACS) ; for NEmacs
        (defun mime-article::write-region (start end file)
         (let ((kanji-fileio-code
                (cdr
           (write-region start end file)
           ))
        )
-      (t
+      (t ; for Emacs 19 or older and XEmacs without mule
        (defalias 'mime-article::write-region 'write-region)
        ))
 
                  (progn
                    (or (file-exists-p total-file)
                        (save-excursion
-                         (set-buffer (find-file-noselect total-file))
+                         (set-buffer
+                          (get-buffer-create mime/temp-buffer-name))
                          (erase-buffer)
                          (insert total)
-                         (save-buffer)
+                         (write-file total-file)
                          (kill-buffer (current-buffer))
                          ))
                    (string-to-number total)
                (and (file-exists-p total-file)
                     (save-excursion
                       (set-buffer (find-file-noselect total-file))
-                      (and (re-search-forward "[0-9]+" nil t)
-                           (string-to-number
-                            (buffer-substring (match-beginning 0)
-                                              (match-end 0)))
-                           )
-                      (kill-buffer (current-buffer))
-                      ))
+                      (prog1
+                          (and (re-search-forward "[0-9]+" nil t)
+                               (string-to-number
+                                (buffer-substring (match-beginning 0)
+                                                  (match-end 0)))
+                               )
+                        (kill-buffer (current-buffer))
+                        )))
                )))
       (if (and total (> total 0))
          (catch 'tag
                (let ((i 1))
                  (while (<= i total)
                    (setq file (concat root-dir "/" (int-to-string i)))
-                   (if (not (file-exists-p file))
+                   (or (file-exists-p file)
                        (throw 'tag nil)
-                     )
+                       )
                    (as-binary-input-file (insert-file-contents file))
                    (goto-char (point-max))
                    (setq i (1+ i))
 ;;; @ rot13-47
 ;;;
 
+(require 'view)
+
+(defconst mime-view-text/plain-mode-map (copy-keymap view-mode-map))
+(define-key mime-view-text/plain-mode-map
+  "q" (function mime-view-text/plain-exit))
+
+(defun mime-view-text/plain-mode ()
+  "\\{mime-view-text/plain-mode-map}"
+  (setq buffer-read-only t)
+  (setq major-mode 'mime-view-text/plain-mode)
+  (setq mode-name "MIME-View text/plain")
+  (use-local-map mime-view-text/plain-mode-map)
+  )
+
+(defun mime-view-text/plain-exit ()
+  (interactive)
+  (kill-buffer (current-buffer))
+  )
+
 (defun mime-article/decode-caesar (beg end cal)
   (let* ((cnum (mime-article/point-content-number beg))
         (cur-buf (current-buffer))
         (mode major-mode)
         str)
     (setq str (buffer-substring beg end))
-    (switch-to-buffer new-name)
+    (let ((pwin (or (get-buffer-window mother)
+                   (get-largest-window)))
+         (buf (get-buffer-create new-name))
+         )
+      (set-window-buffer pwin buf)
+      (set-buffer buf)
+      (select-window pwin)
+      )
     (setq buffer-read-only nil)
     (erase-buffer)
     (insert str)
       (goto-char (point-max))
       (tm:caesar-region)
       )
-    (view-mode)
+    (set-buffer-modified-p nil)
+    (mime-view-text/plain-mode)
     ))