2 ;;; A MIME extender for mh-e
4 ;;; by Morioka Tomohiko, 1993/11/21
11 (defconst tm-mh-e/RCS-ID
12 "$Id: tm-mh-e.el,v 2.2 1994/07/25 16:13:03 morioka Exp $")
14 (defconst tm-mh-e/version
15 (and (string-match "[0-9][0-9.]*" tm-mh-e/RCS-ID)
16 (substring tm-mh-e/RCS-ID (match-beginning 0)(match-end 0))
24 (if (not (boundp 'mh-e-version))
29 ;;; @ MIME header decoding mode
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."
35 (setq mime/header-decoding-mode
37 (not mime/header-decoding-mode)
39 (mh-invalidate-show-buffer)
40 (mh-show-msg (mh-get-msg-num t))
44 ;;; @ MIME body players
46 (defun tm-mh-e/play-message (arg)
47 "MIME decode and play this message."
49 (mh-invalidate-show-buffer)
50 (let ((mime/body-decoding-mode "play"))
51 (mh-show-msg (mh-get-msg-num t))
53 (mime/show-body-decoded-result)
56 (defun tm-mh-e/extract-message (arg)
57 "MIME decode and extract files from this message."
59 (mh-invalidate-show-buffer)
60 (let ((mime/body-decoding-mode "extract"))
61 (mh-show-msg (mh-get-msg-num t))
63 (mime/show-body-decoded-result)
66 (defun tm-mh-e/print-message (arg)
67 "MIME decode and extract files from this message."
69 (mh-invalidate-show-buffer)
70 (let ((mime/body-decoding-mode "print"))
71 (mh-show-msg (mh-get-msg-num t))
73 (mime/show-body-decoded-result)
79 (add-hook 'mh-show-mode-hook
82 (make-local-variable 'minor-mode-alist)
83 (mime/add-header-decoding-mode-to-mode-line)
84 (let ((buffer-read-only nil))
85 (if mime/header-decoding-mode
86 (mime/decode-message-header)
88 (if mime/body-decoding-mode
89 (funcall mime/body-decoding-method)
91 (set-buffer-modified-p nil)
94 (define-key mh-folder-mode-map "\et" 'tm-mh-e/toggle-header-decoding-mode)
95 (define-key mh-folder-mode-map "v" 'tm-mh-e/play-message)
96 (define-key mh-folder-mode-map "e" 'tm-mh-e/extract-message)
97 (define-key mh-folder-mode-map "\C-cp" 'tm-mh-e/print-message)