4
|
1 ;;; gnus-sum-mime.el --- MIME extension for summary mode of Gnus
|
|
2
|
98
|
3 ;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc.
|
4
|
4
|
|
5 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
|
|
6 ;; Created: 1996/8/6
|
|
7 ;; Version:
|
98
|
8 ;; $Id: gnus-sum-mime.el,v 1.3 1997/02/15 22:21:26 steve Exp $
|
4
|
9 ;; Keywords: news, MIME, multimedia, multilingual, encoded-word
|
|
10
|
|
11 ;; This file is not part of GNU Emacs yet.
|
|
12
|
|
13 ;; This program is free software; you can redistribute it and/or
|
|
14 ;; modify it under the terms of the GNU General Public License as
|
|
15 ;; published by the Free Software Foundation; either version 2, or (at
|
|
16 ;; your option) any later version.
|
|
17
|
|
18 ;; This program is distributed in the hope that it will be useful, but
|
|
19 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
21 ;; General Public License for more details.
|
|
22
|
|
23 ;; You should have received a copy of the GNU General Public License
|
98
|
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the
|
|
25 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
4
|
26 ;; Boston, MA 02111-1307, USA.
|
|
27
|
|
28 ;;; Code:
|
|
29
|
|
30 (require 'gnus-mime)
|
98
|
31 (require 'gnus-sum)
|
4
|
32
|
|
33
|
|
34 ;;; @ summary filter
|
|
35 ;;;
|
|
36
|
|
37 (defun gnus-set-summary-default-charset ()
|
|
38 (let ((charset
|
|
39 (if (buffer-live-p gnus-summary-buffer)
|
|
40 (save-excursion
|
|
41 (set-buffer gnus-summary-buffer)
|
|
42 (let ((ret (assoc-if (function
|
|
43 (lambda (key)
|
|
44 (string-match key gnus-newsgroup-name)
|
|
45 ))
|
|
46 gnus-newsgroup-default-charset-alist)
|
|
47 ))
|
|
48 (if ret
|
|
49 (progn
|
|
50 (make-local-variable 'default-mime-charset)
|
|
51 (setq default-mime-charset (cdr ret))
|
|
52 ))
|
|
53 )
|
|
54 default-mime-charset)
|
|
55 default-mime-charset)))
|
|
56 (goto-char (point-min))
|
|
57 (while (< (point)(point-max))
|
|
58 (decode-mime-charset-region (point)
|
|
59 (progn
|
|
60 (end-of-line)
|
|
61 (point))
|
|
62 charset)
|
|
63 (end-of-line)
|
|
64 (forward-char)
|
|
65 )))
|
|
66
|
|
67
|
|
68 ;;; @ command functions
|
|
69 ;;;
|
|
70
|
|
71 (defun gnus-summary-preview-mime-message (arg)
|
|
72 "MIME decode and play this message."
|
|
73 (interactive "P")
|
|
74 (let ((gnus-break-pages nil))
|
|
75 (gnus-summary-select-article t t)
|
|
76 )
|
|
77 (pop-to-buffer gnus-original-article-buffer t)
|
|
78 (let (buffer-read-only)
|
|
79 (if (text-property-any (point-min) (point-max) 'invisible t)
|
|
80 (remove-text-properties (point-min) (point-max)
|
|
81 gnus-hidden-properties)
|
|
82 ))
|
|
83 (mime/viewer-mode nil nil nil gnus-original-article-buffer
|
|
84 gnus-article-buffer)
|
|
85 )
|
|
86
|
|
87 (defun gnus-summary-scroll-down ()
|
|
88 "Scroll down one line current article."
|
|
89 (interactive)
|
|
90 (gnus-summary-scroll-up -1)
|
|
91 )
|
|
92
|
|
93 (define-key gnus-summary-mode-map "v"
|
|
94 (function gnus-summary-preview-mime-message))
|
|
95 (define-key gnus-summary-mode-map "\e\r"
|
|
96 (function gnus-summary-scroll-down))
|
|
97
|
|
98
|
|
99 ;;; @ end
|
|
100 ;;;
|
|
101
|
|
102 (provide 'gnus-sum-mime)
|
|
103
|
|
104 ;;; gnus-sum-mime.el ends here
|