2fd500c4851ea7295c4e7d154c564c335daca9a0
[elisp/tm.git] / gnus / tm-gnus3.el
1 ;;;
2 ;;; tm-gnus3.el --- tm-gnus module for GNUS 3.*
3 ;;;
4
5 (require 'tl-list)
6 (require 'tl-str)
7 (require 'tm-view)
8 (require 'tm-ognus)
9
10
11 ;;; @ version
12 ;;;
13
14 (defconst tm-gnus/RCS-ID
15   "$Id: tm-gnus3.el,v 6.1 1995/08/31 20:12:49 morioka Exp $")
16
17 (defconst tm-gnus/version
18   (concat (get-version-string tm-gnus/RCS-ID) " for GNUS 3"))
19
20
21 ;;; @ for tm-view
22 ;;;
23
24 (set-alist 'mime-viewer/quitting-method-alist
25            'gnus-Article-mode
26            (if (string-match (regexp-quote "3.14.4") gnus-version)
27                (function
28                 (lambda ()
29                   (mime-viewer/kill-buffer)
30                   (delete-other-windows)
31                   (gnus-Article-show-summary)
32                   ))
33              (function
34               (lambda ()
35                 (mime-viewer/kill-buffer)
36                 (delete-other-windows)
37                 (gnus-Article-show-subjects)
38                 ))))
39
40 (defun tm-gnus/view-message (arg)
41   "MIME decode and play this message."
42   (interactive "P")
43   (let ((gnus-break-pages nil))
44     (gnus-Subject-select-article t t)
45     )
46   (pop-to-buffer gnus-Article-buffer t)
47   (mime/viewer-mode)
48   )
49
50
51 ;;; @ Summary decoding
52 ;;;
53
54 (add-hook 'gnus-Select-group-hook (function tm-gnus/decode-summary-subjects))
55
56
57 ;;; @ set up
58 ;;;
59
60 (define-key gnus-Subject-mode-map
61   "\et" 'tm-gnus/toggle-mime-header-decoding-mode)
62 (define-key gnus-Subject-mode-map "v" 'tm-gnus/view-message)
63
64 (fset 'gnus-summary-select-article 'gnus-Subject-select-article)
65
66 (fset 'gnus-Article-set-mode-line 'tm-gnus/article-set-mode-line)
67 (add-hook 'gnus-Article-prepare-hook
68           (function mime/decode-message-header-if-you-need) t)
69
70 (if (not (string-match "^GNUS 3\.14\.4" gnus-version))
71     (progn
72       (add-hook 'gnus-Article-mode-hook
73                 (function
74                  (lambda ()
75                    (make-local-variable 'minor-mode-alist)
76                    (mime/add-header-decoding-mode-to-mode-line)
77                    )))
78       )
79   (progn
80     (add-hook 'gnus-Article-mode-hook
81               (function mime/add-header-decoding-mode-to-mode-line))
82     ))
83
84
85 ;;; @ end
86 ;;;
87
88 (provide 'tm-gnus3)