This commit was generated by cvs2svn to compensate for changes in r434,
[elisp/tm.git] / mime-setup.el
index 3fbf941..816c708 100644 (file)
@@ -1,19 +1,57 @@
 ;;;
-;;; mime-setup.el --- setup file to use tm and mime.el.
+;;; mime-setup.el --- setup file for tm viewer and composer.
 ;;;
 ;;; Copyright (C) 1995 Free Software Foundation, Inc.
-;;; Copyright (C) 1994,1995 MORIOKA Tomohiko
+;;; Copyright (C) 1994 .. 1996 MORIOKA Tomohiko
 ;;;
 ;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Version:
-;;;    $Id: mime-setup.el,v 7.3 1995/10/06 07:17:22 morioka Exp $
+;;;    $Id: mime-setup.el,v 7.14 1996/02/14 09:15:36 morioka Exp $
 ;;; Keywords: mail, news, MIME, multimedia, multilingual, encoded-word
 ;;;
 ;;; This file is part of tm (Tools for MIME).
 ;;;
+;;; This program is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 2, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with This program.  If not, write to the Free Software
+;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;;;
+;;; Code:
 
 (require 'tm-setup)
 
+(autoload 'mime/editor-mode "tm-edit"
+  "Minor mode for editing MIME message." t)
+(autoload 'mime/decode-message-header "tm-ew-d"
+  "Decode MIME encoded-words in message header." t)
+
+(defun mime-setup-decode-message-header ()
+  (save-excursion
+    (save-restriction
+      (goto-char (point-min))
+      (narrow-to-region
+       (point-min)
+       (if (re-search-forward
+           (concat "^" (regexp-quote mail-header-separator) "$")
+           nil t)
+          (match-beginning 0)
+        (point-max)
+        ))
+      (mime/decode-message-header)
+      (set-buffer-modified-p nil)
+      )))
+
+(add-hook 'mime/editor-mode-hook 'mime-setup-decode-message-header)
+
 
 ;;; @ variables
 ;;;
 (defvar mime-setup-use-sc nil)
 (defvar mime-setup-use-signature t)
 (defvar mime-setup-default-signature-key "\C-c\C-s")
-(defvar mime-setup-signature-key-alist
-  '((mail-mode . "\C-c\C-w")))
-
-
-;;; @ for Edit MIME mode
-;;;
-
-(autoload 'mime-mode "mime" "Edit MIME message." t)
-(autoload 'mime-convert-buffer "mime" "convert to MIME." t)
-
-(setq mime-content-types
-      '(("text"
-        ;; Charset parameter need not to be specified, since it is
-        ;; defined automatically while translation.
-        ("plain"
-         ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
-         )
-        ("richtext"
-         ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
-         )
-        ("enriched"
-         ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
-         )
-        ("x-latex"
-         ("x-name")
-         ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
-         )
-        ("html"
-         ("x-name")
-         ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
-         ))
-       ("message"
-        ("external-body"
-         ("access-type"
-          ("anon-ftp"
-           ("site" "ftp.jaist.ac.jp" "wnoc-fuk.wide.ad.jp" "nic.karrn.ad.jp")
-           ("directory" "/pub/GNU/elisp/mime")
-           ("name")
-           ("mode" "binary" "ascii"))
-          ("ftp"
-           ("site")
-           ("directory")
-           ("name")
-           ("mode" "binary" "ascii"))
-          ("tftp"
-           ("site")
-           ("name"))
-          ("afs"
-           ("site")
-           ("name"))
-          ("local-file"
-           ("site")
-           ("name"))
-          ("mail-server"
-           ("server"))))
-        ("rfc822"))
-       ("application"
-        ("octet-stream"
-         ("name")
-         ("type" "" "tar" "shar")
-         ("conversions"))
-        ("postscript")
-        ("x-kiss"
-         ("x-name")
-         ("x-cnf")))
-       ("image"
-        ("gif"  ("x-name"))
-        ("jpeg" ("x-name"))
-        ("x-pic"  ("x-name"))
-        ("x-xwd")
-        ("x-xbm"))
-       ("audio"
-        ("basic"))
-       ("video"
-        ("mpeg")))
-      )
+(defvar mime-setup-signature-key-alist '((mail-mode . "\C-c\C-w")))
 
 
 ;;; @ for signature
 ;;;
 
+(defun mime-setup-set-signature-key ()
+  (let ((key (or (cdr (assq major-mode mime-setup-signature-key-alist))
+                mime-setup-default-signature-key)))
+    (define-key (current-local-map) key (function insert-signature))
+    ))
+
 (if mime-setup-use-signature
     (progn
       (autoload 'insert-signature "signature" "Insert signature" t)
-      
-      (add-hook 'mime-mode-hook
-               (function
-                (lambda ()
-                  (let ((key (or (cdr
-                                  (assq major-mode
-                                        mime-setup-signature-key-alist)
-                                  )
-                                 mime-setup-default-signature-key)))
-                    (define-key (current-local-map)
-                      key (function insert-signature))
-                    ))))
-      
+      (add-hook 'mime/editor-mode-hook 'mime-setup-set-signature-key)
       (setq gnus-signature-file nil)
+      (setq mail-signature nil)
       ))
 
 
-;;; @ for encoded-word
-;;;
-
-(autoload 'mime/encode-message-header "tm-eword"
-  "convert message header to MIME style." t)
-
-(add-hook 'mime-translate-hook (function mime/encode-message-header))
-
-(setq mime-header-charset-chooser
-      (function
-       (lambda (begin end)
-        )))
-
-
-;;; @ for tm-comp
-;;;
-
-(call-after-loaded
- 'tm-comp
- (function
-  (lambda ()
-    (setq mime-transfer-encoders
-         '(("base64"           "mmencode")
-           ("quoted-printable" "mmencode" "-q")
-           ("7bit"             nil)    ;Default
-           ("8bit"             nil)
-           ("binary"           nil)
-           ("x-uue"            "uuencode" "-")
-           ))
-    
-    (setq mime-file-types
-         '(("\\.rtf$"
-            "text"     "richtext"      nil     nil)
-           ("\\.html$"
-            "text"     "html"          nil     nil)
-           ("\\.ps$"
-            "application" "postscript" nil     "quoted-printable")
-           ("\\.gif$"
-            "image"    "gif"           nil     "base64")
-           ("\\.jpg$"
-            "image"    "jpeg"          nil     "base64")
-           ("\\.xwd$"
-            "image"    "x-xwd"         nil     "base64")
-           ("\\.xbm$"
-            "image"    "x-xbm"         nil     "base64")
-           ("\\.pic$"
-            "image"    "x-pic"         nil     "base64")
-           ("\\.tiff$"
-            "image"    "tiff"          nil     "base64")
-           ("\\.au$"
-            "audio"    "basic"         nil     "base64")
-           ("\\.mpg$"
-            "video"    "mpeg"          nil     "base64")
-           ("\\.el$"
-            "application" "octet-stream" (("name" . file)
-                                          ("type" . "emacs-lisp")) "7bit")
-           ("\\.tar.gz$"
-            "application" "octet-stream" (("name" . file)
-                                          ("type" . "tar")
-                                          ("conversions" . "gzip")) nil)
-           ("\\.signature"
-            "text"     "plain"         nil     nil)
-           (".*"       nil             nil     nil     nil))
-         )
-    )))
-
-
 ;;; @ about SuperCite
 ;;;
 
   )
 
 
-;;; @ for mh-e
+;;; @ for RMAIL and VM
 ;;;
 
-(add-hook 'mh-letter-mode-hook
-         (function
-          (lambda ()
-            (mime/decode-message-header)
-            (mime-mode)
-            (make-local-variable 'mail-header-separator)
-            (setq mail-header-separator "--------")
-            (save-excursion
-              (goto-char (point-min))
-              (if (re-search-forward "^-*$" nil t)
-                  (progn
-                    (replace-match mail-header-separator)
-                    (set-buffer-modified-p (buffer-modified-p))
-                    ))
-              )
-            )))
+(add-hook 'mail-setup-hook 'mime/decode-message-header)
+(add-hook 'mail-setup-hook 'mime/editor-mode 'append)
+(add-hook 'mail-send-hook  'mime-editor/maybe-translate)
 
 
-;;; @ for GNUS
+;;; @ for mh-e
 ;;;
 
-(add-hook 'news-reply-mode-hook
-         (function
-          (lambda ()
-            (mime/decode-message-header)
-            (set-buffer-modified-p nil)
-            (mime-mode)
-            )))
+(defun mime-setup-mh-draft-setting ()
+  (mime/editor-mode)
+  (make-local-variable 'mail-header-separator)
+  (setq mail-header-separator "--------")
+  (save-excursion
+    (goto-char (point-min))
+    (setq buffer-read-only nil)
+    (if (re-search-forward "^-*$" nil t)
+       (progn
+         (replace-match mail-header-separator)
+         (set-buffer-modified-p (buffer-modified-p))
+         ))
+    ))
 
-;;; for Gnus 5.* and September Gnus
-;;;
-(add-hook 'news-inews-hook
-         (function
-          (lambda ()
-            (if mime-mode-flag
-                (mime-mode-exit)
-              ))))
-(add-hook 'mail-send-hook
-         (function
-          (lambda ()
-            (if mime-mode-flag
-                (mime-mode-exit)
-              ))))
+(add-hook 'mh-letter-mode-hook 'mime-setup-mh-draft-setting t)
+(add-hook 'mh-before-send-letter-hook 'mime-editor/maybe-translate)
 
 
-;;; @ for Mail mode (includes VM mode)
+;;; @ for GNUS
 ;;;
 
-(add-hook 'mail-mode-hook (function mime-mode))
-(add-hook 'mail-setup-hook (function mime/decode-message-header))
-
-;;; @@ In VM, the following definitions may be requried:
-;;; 
-
-(if (boundp 'vm-visible-headers)
-    (progn
-      (setq vm-preview-lines nil)
-      (setq vm-invisible-header-regexp nil)
-      (setq vm-visible-headers
-           (append vm-visible-headers
-                   '("Mime-Version:"
-                     "Content-Type:"
-                     "Content-Transfer-Encoding:")))
-      ))
+(add-hook 'news-reply-mode-hook 'mime/editor-mode)
+(add-hook 'news-inews-hook      'mime-editor/maybe-translate)
 
 
 ;;; @ end
 
 (provide 'mime-setup)
 
-;;; Local Variables:
-;;; mode: emacs-lisp
-;;; mode: outline-minor
-;;; outline-regexp: ";;; @+\\|(......"
-;;; End:
+(run-hooks 'mime-setup-load-hook)
+
+;;; mime-setup.el ends here