tm 6.80.
[elisp/tm.git] / tm-comp.el
index 1ae12f0..ef6b7cb 100644 (file)
@@ -11,7 +11,6 @@
 ;;;         and YAMAOKA Katsumi <yamaoka@ga.sony.co.jp>
 ;;;
 
-(require 'tm-misc)
 (require 'tm-view)
 (require 'tl-header)
 (require 'tl-list)
@@ -22,7 +21,7 @@
 ;;;
 
 (defconst mime/composer-RCS-ID
-  "$Id: tm-comp.el,v 6.8 1995/08/30 00:40:26 morioka Exp $")
+  "$Id: tm-comp.el,v 6.11 1995/09/04 00:47:37 morioka Exp $")
 
 (defconst mime/composer-version (get-version-string mime/composer-RCS-ID))
 
@@ -36,9 +35,8 @@
   '((news-reply-mode . 500)))
 
 (defconst mime/message-nuke-headers
-  "\\(^[Cc]ontent-\\|^[Ss]ubject:\\|^[Mm][Ii][Mm][Ee]-[Vv]ersion:\\)")
-(defvar mime/message-blind-headers
-  "\\(^[BDFbdf][Cc][Cc]:\\|^[Cc][Cc]:[ \t]*$\\)")
+  "\\(^Content-\\|^Subject:\\|^MIME-Version:\\)")
+(defvar mime/message-blind-headers "\\(^[BDFbdf]cc:\\|^cc:[ \t]*$\\)")
 
 (defvar mime/message-default-sender-alist
   '((mail-mode . mail-send-and-exit)
 ;;; @ edit
 ;;;
 
+(defun tm-comp::mime-insert-file (file)
+  "Insert a message from a file."
+  (interactive "fInsert file as MIME message: ")
+  (let*  ((guess (mime-find-file-type file))
+         (pritype (nth 0 guess))
+         (subtype (nth 1 guess))
+         (parameters (nth 2 guess))
+         (default (nth 3 guess))       ;Guess encoding from its file name.
+         (encoding
+          (if (not (interactive-p))
+              default
+            (completing-read
+             (concat "What transfer encoding"
+                     (if default
+                         (concat " (default "
+                                 (if (string-equal default "") "\"\"" default)
+                                 ")"
+                                 ))
+                     ": ")
+             mime-transfer-encoders nil t nil))))
+    (if (string-equal encoding "")
+       (setq encoding default))
+    (if (consp parameters)
+       (let ((rest parameters) cell attribute value)
+         (setq parameters "")
+         (while rest
+           (setq cell (car rest))
+           (setq attribute (car cell))
+           (setq value (cdr cell))
+           (if (eq value 'file)
+               (setq value (file-name-nondirectory file))
+             )
+           (setq parameters (concat parameters "; " attribute "=" value))
+           (setq rest (cdr rest))
+           )))
+    (mime-insert-tag pritype subtype parameters)
+    (mime-insert-binary-file file encoding)
+    ))
+
 ;; Insert the binary content after MIME tag.
 ;;     modified by MORITA Masahiro <hiro@isl.ntt.JP>
 ;;     for x-uue
@@ -304,6 +341,12 @@ Optional argument ENCODING specifies an encoding method such as base64."
 (add-hook 'mime-mode-hook
          (function
           (lambda ()
+            (if (not (fboundp 'original::mime-insert-file))
+                (progn
+                  (fset 'original::mime-insert-file
+                        (symbol-function 'mime-insert-file))
+                  (fset 'mime-insert-file 'tm-comp::mime-insert-file)
+                  ))
             (if (not (fboundp 'original::mime-insert-binary-file))
                 (progn
                   (fset 'original::mime-insert-binary-file
@@ -422,6 +465,6 @@ Optional argument ENCODING specifies an encoding method such as base64."
   )
 
 
-(run-hooks 'tm-comp-load-hook)
-
 (provide 'tm-comp)
+
+(run-hooks 'tm-comp-load-hook)