This commit was generated by cvs2svn to compensate for changes in r26, which
[elisp/tm.git] / tm-gnus3.el
1 ;;;
2 ;;; $Id: tm-gnus3.el,v 5.1 1994/10/03 03:45:44 morioka Exp $
3 ;;;
4
5 (provide 'tm-gnus3)
6
7 (require 'tm-gnus)
8 (require 'tm-view)
9 (require 'tl-list)
10
11 (if (and (null gnus-Startup-hook)
12          (boundp 'gnus-startup-hook))
13     (setq gnus-Startup-hook gnus-startup-hook)
14   )
15 (if (and (null gnus-Select-group-hook)
16          (boundp 'gnus-select-group-hook))
17     (setq gnus-Select-group-hook gnus-select-group-hook)
18   )
19 (if (and (null gnus-Subject-mode-hook)
20          (boundp 'gnus-summary-mode-hook))
21     (setq gnus-Subject-mode-hook gnus-summary-mode-hook)
22   )
23 (if (and (null gnus-Article-mode-hook)
24          (boundp 'gnus-article-mode-hook))
25     (setq gnus-Article-mode-hook gnus-article-mode-hook)
26   )
27 (if (and (null gnus-Article-prepare-hook)
28          (boundp 'gnus-article-prepare-hook))
29     (setq gnus-Article-prepare-hook gnus-article-prepare-hook)
30   )
31
32 (setq mime/go-to-top-node-method-alist
33       (put-alist 'gnus-Article-mode
34                  (if (string-match (regexp-quote "3.14.4") gnus-version)
35                      (function
36                       (lambda ()
37                         (mime/exit-view-mode)
38                         (delete-other-windows)
39                         (gnus-Article-show-summary)
40                         ))
41                    (function
42                     (lambda ()
43                       (mime/exit-view-mode)
44                       (delete-other-windows)
45                       (gnus-Article-show-subjects)
46                       )))
47                  mime/go-to-top-node-method-alist))
48
49 (defun tm-gnus/view-message (arg)
50   "MIME decode and play this message."
51   (interactive "P")
52   (let ((gnus-break-pages nil))
53     (gnus-Subject-select-article t t)
54     )
55   (pop-to-buffer gnus-Article-buffer t)
56   (mime/viewer-mode)
57   )
58
59 (add-hook 'gnus-Select-group-hook
60           (function
61            (lambda ()
62              (mapcar (function
63                       (lambda (header)
64                         (nntp-set-header-subject
65                          header
66                          (mime/decode-string (gnus-header-subject header))
67                          )))
68                      gnus-newsgroup-headers)
69              )))
70
71 (define-key gnus-Subject-mode-map
72   "\et" 'tm-gnus/toggle-mime-header-decoding-mode)
73 (define-key gnus-Subject-mode-map "v" 'tm-gnus/view-message)
74
75 (fset 'gnus-summary-select-article 'gnus-Subject-select-article)
76
77 (fset 'gnus-Article-set-mode-line 'tm-gnus/article-set-mode-line)
78 (add-hook 'gnus-Article-prepare-hook
79           (function
80            (lambda ()
81              (if mime/header-decoding-mode
82                  (mime/decode-message-header)
83                ))) 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                    (mime/add-header-decoding-mode-to-mode-line)
92                    )))
93       )
94   (progn
95     (add-hook 'gnus-Article-mode-hook
96               (function mime/add-header-decoding-mode-to-mode-line))
97     ))