tm 6.80.1.
[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 'tl-misc)
8 (require 'tm-ognus)
9
10
11 ;;; @ version
12 ;;;
13
14 (defconst tm-gnus/RCS-ID
15   "$Id: tm-gnus3.el,v 6.10 1995/09/11 07:20:29 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 (autoload 'mime/viewer-mode "tm-view" "View MIME message." t)
25
26 (defun tm-gnus/view-message (arg)
27   "MIME decode and play this message."
28   (interactive "P")
29   (let ((gnus-break-pages nil))
30     (gnus-Subject-select-article t t)
31     )
32   (pop-to-buffer gnus-Article-buffer t)
33   (mime/viewer-mode)
34   )
35
36 (call-after-loaded
37  'tm-view
38  (function
39   (lambda ()
40     (set-alist 'mime-viewer/quitting-method-alist
41                'gnus-Article-mode
42                (if (string-match (regexp-quote "3.14.4") gnus-version)
43                    (function
44                     (lambda ()
45                       (mime-viewer/kill-buffer)
46                       (delete-other-windows)
47                       (gnus-Article-show-summary)
48                       ))
49                  (function
50                   (lambda ()
51                     (mime-viewer/kill-buffer)
52                     (delete-other-windows)
53                     (gnus-Article-show-subjects)
54                     ))
55                  ))
56     )))
57
58
59 ;;; @ Summary decoding
60 ;;;
61
62 (add-hook 'gnus-Select-group-hook (function tm-gnus/decode-summary-subjects))
63
64
65 ;;; @ set up
66 ;;;
67
68 (define-key gnus-Subject-mode-map "\et" 'tm-gnus/toggle-decoding-mode)
69 (define-key gnus-Subject-mode-map "v" 'tm-gnus/view-message)
70
71 (fset 'gnus-summary-select-article 'gnus-Subject-select-article)
72
73 (fset 'gnus-Article-set-mode-line 'tm-gnus/article-set-mode-line)
74
75 (defun tm-gnus/decode-encoded-word-if-you-need ()
76   (if (and tm-gnus/decoding-mode
77            (cond ((boundp 'all-headers) (not all-headers))
78                  (t                     t))
79            )
80       (mime/decode-message-header)
81     ))
82
83 (add-hook 'gnus-Article-prepare-hook
84           (function tm-gnus/decode-encoded-word-if-you-need) t)
85
86 (if (not (string-match "^GNUS 3\.14\.4" gnus-version))
87     (progn
88       (add-hook 'gnus-Article-mode-hook
89                 (function
90                  (lambda ()
91                    (make-local-variable 'minor-mode-alist)
92                    (tm-gnus/add-decoding-mode-to-mode-line)
93                    )))
94       )
95   (progn
96     (add-hook 'gnus-Article-mode-hook
97               (function tm-gnus/add-decoding-mode-to-mode-line))
98     ))
99
100
101 ;;; @ end
102 ;;;
103
104 (provide 'tm-gnus3)