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