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