This commit was generated by cvs2svn to compensate for changes in r296,
[elisp/tm.git] / tm-play.el
index 49016a2..175a66b 100644 (file)
@@ -8,7 +8,7 @@
 ;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Created: 1995/9/26 (separated from tm-view.el)
 ;;; Version:
-;;;    $Id: tm-play.el,v 7.5 1995/12/07 08:01:31 morioka Exp $
+;;;    $Id: tm-play.el,v 7.11 1995/12/21 18:11:03 morioka Exp $
 ;;; Keywords: mail, news, MIME, multimedia
 ;;;
 ;;; This file is part of tm (Tools for MIME).
@@ -39,7 +39,7 @@
 
 (defun mime-preview/decode-content ()
   (interactive)
-  (let ((pc (mime::point-preview-content (point))))
+  (let ((pc (mime-preview/point-pcinfo (point))))
     (if pc
        (let ((the-buf (current-buffer)))
          (setq mime-preview/after-decoded-position (point))
       (narrow-to-region beg end)
       (goto-char beg)
       (let ((method (cdr (assoc 'method cal)))
-           (name (mime-article/get-name cal))
+           (name (mime-article/get-filename cal))
            )
        (if method
            (let ((file (make-temp-name
          format))
 
 (defun mime-article/show-output-buffer (&rest forms)
+  (get-buffer-create mime/output-buffer-name)
   (let ((the-win (selected-window))
        (win (get-buffer-window mime/output-buffer-name))
        )
   (concat (regexp-* mime-viewer/file-name-char-regexp)
          "\\(\\." mime-viewer/file-name-char-regexp "+\\)*"))
 
-(defun mime-article/get-name (param)
-  (let ((str (mime-viewer/get-subject param)))
-    (if (string-match " " str)
-       (if (or (string-match mime-viewer/file-name-regexp-1 str)
-               (string-match mime-viewer/file-name-regexp-2 str))
-           (substring str (match-beginning 0)(match-end 0))
-         )
-      (replace-as-filename str)
-      )))
+(defun mime-article/get-original-filename (param &optional encoding)
+  (or (mime-article/get-uu-filename param encoding)
+      (let (ret)
+       (or (if (or (and (setq ret (mime/Content-Disposition))
+                        (setq ret (assoc "filename" (cdr ret)))
+                        )
+                   (setq ret (assoc "name" param))
+                   (setq ret (assoc "x-name" param))
+                   )
+               (rfc822/strip-quoted-string (cdr ret))
+             )
+           (if (setq ret
+                     (or (rfc822/get-field-body "Content-Description")
+                         (rfc822/get-field-body "Subject")
+                         ))
+               (if (or (string-match mime-viewer/file-name-regexp-1 ret)
+                       (string-match mime-viewer/file-name-regexp-2 ret))
+                   (substring ret (match-beginning 0)(match-end 0))
+                 ))
+           ))
+      ""))
+
+(defun mime-article/get-filename (param)
+  (replace-as-filename (mime-article/get-original-filename param))
+  )
 
 
 ;;; @ mail/news message
                )
            (write-region (point) (point-max) file)
            )
-         (if (get-buffer "*MIME-temp*")
-             (kill-buffer "*MIME-temp*")
+         (if (get-buffer mime/temp-buffer-name)
+             (kill-buffer mime/temp-buffer-name)
            )
-         (switch-to-buffer "*MIME-temp*")
+         (switch-to-buffer mime/temp-buffer-name)
          (let ((i 1)
                (max (string-to-int total))
                (file-coding-system-for-read (if (boundp 'MULE)
        (let ((file-coding-system-for-read
               (if (boundp 'MULE) *noconv*))
              kanji-fileio-code)
-         (find-file file)
+         (set-buffer (get-buffer-create "FULL"))
+         (insert-file-contents file)
          )
        (setq major-mode 'mime/show-message-mode)
        (mime/viewer-mode mother)
         (new-name (format "%s-%s" (buffer-name) cnum))
         (mother mime::article/preview-buffer)
         (charset (cdr (assoc "charset" cal)))
-        (encoding (cdr (assoc "encoding" cal)))
+        (encoding (cdr (assq 'encoding cal)))
         (mode major-mode)
         str)
     (setq str (buffer-substring beg end))