tm 5.12
[elisp/tm.git] / tm-mh-e.el
1 ;;;
2 ;;; A MIME extender for mh-e
3 ;;;
4 ;;; by Morioka Tomohiko, 1993/11/21
5 ;;;
6
7 (provide 'tm-mh-e)
8
9
10 ;;; @ require modules
11 ;;;
12 (require 'tl-str)
13 (require 'tm-misc)
14 (require 'mh-e)
15 (if (not (boundp 'mh-e-version))
16     (require 'tm-mh-e3)
17   )
18 (autoload 'mime/viewer-mode "tm-view" "View MIME message." t)
19
20
21 ;;; @ version
22 ;;;
23 (defconst tm-mh-e/RCS-ID
24   "$Id: tm-mh-e.el,v 5.1 1994/10/17 07:26:36 morioka Exp $")
25
26 (defconst tm-mh-e/version (get-version-string tm-mh-e/RCS-ID))
27
28
29 ;;; @ MIME header decoding mode
30 ;;;
31 (defun tm-mh-e/toggle-header-decoding-mode (arg)
32   "Toggle MIME header processing.
33 With arg, turn MIME processing on if arg is positive."
34   (interactive "P")
35   (setq mime/header-decoding-mode
36         (if (null arg)
37             (not mime/header-decoding-mode)
38           arg))
39   (mh-invalidate-show-buffer)
40   (mh-show-msg (mh-get-msg-num t))
41   )
42
43
44 ;;; @ MIME body players
45 ;;;
46 (defun tm-mh-e/view-message (arg)
47   "MIME decode and play this message."
48   (interactive "P")
49   (mh-invalidate-show-buffer)
50   (mh-show-msg (mh-get-msg-num t))
51   (pop-to-buffer mh-show-buffer t)
52   (mime/viewer-mode)
53   )
54
55
56 ;;; @ set up
57 ;;;
58 (add-hook 'mh-show-mode-hook
59           (function
60            (lambda ()
61              (make-local-variable 'minor-mode-alist)
62              (mime/add-header-decoding-mode-to-mode-line)
63              (let ((buffer-read-only nil))
64                (if mime/header-decoding-mode
65                    (mime/decode-message-header)
66                  )
67                (set-buffer-modified-p nil)
68                ))))
69
70 (define-key mh-folder-mode-map "\et" 'tm-mh-e/toggle-header-decoding-mode)
71 (define-key mh-folder-mode-map "v" 'tm-mh-e/view-message)
72 (define-key mh-folder-mode-map "\r"
73   (function (lambda ()
74               (interactive)
75               (scroll-other-window 1)
76               )))
77 (define-key mh-folder-mode-map "\e\r"
78   (function (lambda ()
79               (interactive)
80               (scroll-other-window -1)
81               )))