This commit was generated by cvs2svn to compensate for changes in r434,
[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.3 1994/10/25 09:06: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
59 (defun tm-mh-e/decode-message-header ()
60   (make-local-variable 'minor-mode-alist)
61   (mime/add-header-decoding-mode-to-mode-line)
62   (let ((buffer-read-only nil))
63     (mime/decode-message-header-if-you-need)
64     (set-buffer-modified-p nil)
65     ))
66 (add-hook 'mh-show-mode-hook
67           (function tm-mh-e/decode-message-header))
68
69 (define-key mh-folder-mode-map "\et" 'tm-mh-e/toggle-header-decoding-mode)
70 (define-key mh-folder-mode-map "v" 'tm-mh-e/view-message)
71 (define-key mh-folder-mode-map "\r"
72   (function (lambda ()
73               (interactive)
74               (scroll-other-window 1)
75               )))
76 (define-key mh-folder-mode-map "\e\r"
77   (function (lambda ()
78               (interactive)
79               (scroll-other-window -1)
80               )))