74de2bd5b0f9ef3859aec5aef31b8caf4a133f1f
[elisp/tm.git] / mime-setup.el
1 ;;;
2 ;;; $Id: mime-setup.el,v 1.17 1994/08/20 12:06:34 morioka Exp $
3 ;;;
4
5 (provide 'mime-setup)
6
7 (require 'tm-setup)
8
9
10 ;;; @ variables
11 ;;;
12 (defvar mime-setup-use-sc t)
13
14
15 ;;; @ for Edit MIME mode
16 ;;;
17 (autoload 'mime-mode "mime" "Edit MIME message." t)
18 (autoload 'mime-convert-buffer "mime" "convert to MIME." t)
19
20 (autoload 'mime/encode-message-header "tiny-mime"
21           "convert message header to MIME style." t)
22
23 (autoload 'insert-signature "signature" "Insert signature" t)
24
25 (add-hook 'mime-mode-hook
26           (function
27            (lambda ()
28              (define-key (current-local-map)
29                "\C-c\C-s" (function insert-signature))
30              )))
31 (setq mime-translate-hook (function mime/encode-message-header))
32
33 (if (boundp 'MULE)
34     (progn
35       (defun mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP (begin end)
36         (let ((lclist (find-charset-region begin end)))
37           (cond ((null lclist) nil)             ;US-ASCII requres no encoding.
38                 ((memq lc-ltn1 lclist)
39                  '("ISO-8859-1" . "Q"))
40                 ((memq lc-ltn2 lclist)
41                  '("ISO-8859-2" . "Q"))
42                 ((memq lc-ltn3 lclist)
43                  '("ISO-8859-3" . "Q"))
44                 ((memq lc-ltn4 lclist)
45                  '("ISO-8859-4" . "Q"))
46                 ((memq lc-crl lclist)
47                  '("ISO-8859-5" . "Q"))
48                 ;;((memq lc-arb lclist)
49                 ;; '("ISO-8859-6" . "Q"))
50                 ((memq lc-grk lclist)
51                  '("ISO-8859-7" . "Q"))
52                 ((memq lc-hbw lclist)
53                  '("ISO-8859-8" . "Q"))
54                 ((memq lc-ltn5 lclist)
55                  '("ISO-8859-9" . "Q"))
56                 ((memq lc-jp lclist) nil)
57                 (t                              ;Unknown charset.  It must be Mule!
58                  '("ISO-2022-JP-2" . "B"))
59                 )))
60       (setq mime-header-charset-chooser
61             'mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP)
62       )
63   (progn
64     (defun mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP (begin end))
65     (setq mime-header-charset-chooser
66           'mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP)
67     ))
68
69 (setq mime-content-types
70       '(("text"
71          ;; Charset parameter need not to be specified, since it is
72          ;; defined automatically while translation.
73          ("plain"
74           ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
75           )
76          ("richtext"
77           ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
78           )
79          ("x-latex"
80           ("x-name")
81           ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
82           ))
83         ("message"
84          ("external-body"
85           ("access-type"
86            ("anon-ftp"
87             ("site" "wnoc-fuk.wide.ad.jp" "nic.karrn.ad.jp")
88             ("directory")
89             ("name")
90             ("mode" "binary" "ascii"))
91            ("ftp"
92             ("site")
93             ("directory")
94             ("name")
95             ("mode" "binary" "ascii"))
96            ("tftp"
97             ("site")
98             ("name"))
99            ("afs"
100             ("site")
101             ("name"))
102            ("local-file"
103             ("site")
104             ("name"))
105            ("mail-server"
106             ("server"))))
107          ("rfc822"))
108         ("application"
109          ("octet-stream"
110           ("name")
111           ("type" "" "tar" "shar")
112           ("conversions"))
113          ("postscript")
114          ("x-kiss"
115           ("x-name")
116           ("x-cnf")))
117         ("image"
118          ("gif"  ("x-name"))
119          ("jpeg" ("x-name"))
120          ("x-pic"  ("x-name"))
121          ("x-xwd")
122          ("x-xbm"))
123         ("audio"
124          ("basic"))
125         ("video"
126          ("mpeg")))
127       )
128
129 (setq mime-file-types
130       '(("\\.rtf$"      "text"  "richtext"      nil     nil)
131         ("\\.ps$"       "application"   "postscript"    nil     "quoted-printable")
132         ("\\.gif$"      "image"         "gif"   nil     "base64")
133         ("\\.jpg$"      "image"         "jpeg"  nil     "base64")
134         ("\\.xwd$"      "image"         "x-xwd" nil     "base64")
135         ("\\.xbm$"      "image"         "x-xbm" nil     "base64")
136         ("\\.PIC$"      "image"         "x-pic" nil     "base64")
137         ("\\.pic$"      "image"         "x-pic" nil     "base64")
138         ("\\.tiff$"     "image"         "tiff"  nil     "base64")
139         ("\\.au$"       "audio"         "basic" nil     "base64")
140         ("\\.mpg$"      "video"         "mpeg"  nil     "base64")
141         ("\\.el$"       "application"   "octet-stream"  nil     "7bit")
142         ("\\.signature" "text"  "plain" nil     nil)
143         (".*"   nil             nil     nil     nil))
144       )
145
146
147 ;;; @ about SuperCite
148 ;;;
149 (if mime-setup-use-sc
150     (require 'sc-setup)
151   )
152
153
154 ;;; @ for mh-e
155 ;;;
156 (add-hook 'mh-letter-mode-hook
157           (function
158            (lambda ()
159              (mime/decode-message-header)
160              (mime-mode)
161              (make-local-variable 'mail-header-separator)
162              (setq mail-header-separator "--------"))
163            ))
164
165
166 ;;; @ for GNUS
167 ;;;
168 (add-hook 'news-reply-mode-hook
169           (function
170            (lambda ()
171              (mime/decode-message-header)
172              (mime-mode)
173              )))
174 (setq gnus-signature-file nil)
175
176
177 ;;; @ for RMAIL
178 ;;;
179 (autoload 'rmail-show-mime              "rmailmime" "Show MIME messages."  t)
180 (autoload 'rmail-convert-mime-header    "rmailmime" "Convert MIME header." nil)
181 (setq rmail-message-filter (function mime/decode-message-header))
182 (add-hook 'rmail-mode-hook
183           (function
184            (lambda ()
185              ;; Forward mail using MIME.
186              (require 'mime)
187              (substitute-key-definition 'rmail-forward
188                                         'mime-forward-from-rmail-using-mail
189                                         (current-local-map))
190              (local-set-key "v" 'rmail-show-mime)
191              )))
192
193
194 ;;; @ for Mail mode (includes VM mode)
195 ;;;
196 (add-hook 'mail-mode-hook (function mime-mode))
197 (add-hook 'mail-setup-hook (function mime/decode-message-header))
198
199 ;;; @@ In VM, the following definitions may be requried:
200 ;;; 
201 (if (boundp 'vm-visible-headers)
202     (progn
203       (setq vm-preview-lines nil)
204       (setq vm-invisible-header-regexp nil)
205       (setq vm-visible-headers
206             (append vm-visible-headers
207                     '("Mime-Version:"
208                       "Content-Type:"
209                       "Content-Transfer-Encoding:")))
210       ))
211
212 ;;; Local Variables:
213 ;;; mode: emacs-lisp
214 ;;; mode: outline-minor
215 ;;; outline-regexp: ";;; @+\\|(......"
216 ;;; End: