6fe2699d21fda60b7ce4d45c69403add43cde1e6
[elisp/tm.git] / tm-gnus4.el
1 ;;;
2 ;;; $Id: tm-gnus4.el,v 5.0 1994/09/25 21:27:13 morioka Exp $
3 ;;;
4
5 (provide 'tm-gnus4)
6
7 (require 'tm-gnus)
8 (autoload 'mime/viewer-mode "tm-view" "View MIME message." t)
9
10 (if (and (null gnus-startup-hook)
11          (boundp 'gnus-Startup-hook))
12     (setq gnus-startup-hook gnus-Startup-hook)
13   )
14 (if (and (null gnus-select-group-hook)
15          (boundp 'gnus-Select-group-hook))
16     (setq gnus-select-group-hook gnus-Select-group-hook)
17   )
18 (if (and (null gnus-summary-mode-hook)
19          (boundp 'gnus-Subject-mode-hook))
20     (setq gnus-summary-mode-hook gnus-Subject-mode-hook)
21   )
22 (if (and (null gnus-article-mode-hook)
23          (boundp 'gnus-Article-mode-hook))
24     (setq gnus-article-mode-hook gnus-Article-mode-hook)
25   )
26 (if (and (null gnus-article-prepare-hook)
27          (boundp 'gnus-Article-prepare-hook))
28     (setq gnus-article-prepare-hook gnus-Article-prepare-hook)
29   )
30
31 (defun tm-gnus/view-message (arg)
32   "MIME decode and play this message."
33   (interactive "P")
34   (let ((gnus-break-pages nil))
35     (gnus-summary-select-article t t)
36     )
37   (pop-to-buffer gnus-article-buffer t)
38   (mime/viewer-mode)
39   )
40
41 (add-hook 'gnus-select-group-hook
42           (function
43            (lambda ()
44              (mapcar (function
45                       (lambda (header)
46                         (nntp-set-header-subject
47                          header
48                          (mime/decode-string (gnus-header-subject header))
49                          )))
50                      gnus-newsgroup-headers)
51              )))
52
53 (define-key gnus-summary-mode-map
54   "\et" 'tm-gnus/toggle-mime-header-decoding-mode)
55 (define-key gnus-summary-mode-map "v" 'tm-gnus/view-message)
56 (define-key gnus-summary-mode-map "\e\r"
57   (function (lambda ()
58               (interactive)
59               (gnus-summary-scroll-up -1)
60               )))
61
62 (fset 'gnus-article-set-mode-line 'tm-gnus/article-set-mode-line)
63 (add-hook 'gnus-article-mode-hook
64           (function mime/add-header-decoding-mode-to-mode-line))
65
66 (add-hook 'gnus-article-prepare-hook
67           (function
68            (lambda ()
69              (if mime/header-decoding-mode
70                  (mime/decode-message-header)
71                ))) t)