tm 5.18
[elisp/tm.git] / tm-vm.el
1 ;;;
2 ;;; tm-vm.el : tm-MUA for vm
3 ;;;
4 ;;; by MASUTANI Yasuhiro <masutani@me.es.osaka-u.ac.jp>
5 ;;; modified by SHIONO <jun@p5.nm.fujitsu.co.jp>
6 ;;;
7 ;;; Plese insert (load "tm-vm") in .vm or .emacs.
8 ;;;
9
10 (provide 'tm-vm)
11
12 (require 'tl-list)
13 (require 'tm-view)
14
15 (defconst tm-vm/RCS-ID
16   "$Id: tm-vm.el,v 1.5 1994/11/01 16:30:12 morioka Exp $")
17 (defconst tm-vm/version (get-version-string tm-vm/RCS-ID))
18
19 (define-key vm-mode-map "Z" 'tm-vm/view-message)
20
21 (set-alist 'mime/go-to-top-node-method-alist
22            'vm-mode
23            'tm-vm/quit-view-message)
24
25 (set-alist 'mime/go-to-top-node-method-alist
26            'vm-virtual-mode
27            'tm-vm/quit-view-message)
28
29 (defun tm-vm/quit-view-message()
30   (mime/exit-view-mode)
31   (let ((w (get-buffer-window mime/output-buffer-name)))
32     (if w (delete-window w)))
33   (vm-display vm-summary-buffer t
34               '(mime/exit-view-mode)
35               '(this-command))
36   (vm-widen-page)
37   (goto-char (point-max))
38   (widen)
39   (narrow-to-region (point)
40                     (vm-vheaders-of
41                      (car vm-message-pointer)))
42   (goto-char (point-min))
43   (if vm-honor-page-delimiters
44       (vm-narrow-to-page))
45   (select-window (get-buffer-window vm-summary-buffer)))
46
47 (defun tm-vm/view-message ()
48   "Decode and view MIME message for VM"
49   (interactive)
50   (vm-follow-summary-cursor)
51   (vm-select-folder-buffer)
52   (vm-check-for-killed-summary)
53   (vm-error-if-folder-empty)
54   (vm-display (current-buffer) t '(tm-vm/view-message)
55               '(tm-vm/view-mesage reading-message))
56   (vm-widen-page)
57   (goto-char (point-max))
58   (widen)
59   (narrow-to-region (point) (vm-start-of (car vm-message-pointer)))
60   (goto-char (point-min))
61   (select-window (vm-get-buffer-window (current-buffer)))
62   (mime/viewer-mode))