tm 7.106.
[elisp/tm.git] / gnus / tm-dgnus.el
index e42a3e6..690a39c 100644 (file)
 ;;; tm-dgnus.el --- tm-gnus module for (ding) GNUS
 ;;;
 
+(require 'tm-gnus5)
+
+
 ;;; @ version
 ;;;
+
 (defconst tm-gnus/RCS-ID
-  "$Id: tm-dgnus.el,v 6.4 1995/06/18 16:12:05 morioka Exp $")
+  "$Id: tm-dgnus.el,v 6.18 1995/08/31 20:15:50 morioka Exp $")
 
 (defconst tm-gnus/version
   (concat (get-version-string tm-gnus/RCS-ID) " (ding)"))
 
-
-;;; @ autoload
-;;;
-
-(autoload 'mime/viewer-mode "tm-view" "View MIME message." t)
-(autoload 'mime/decode-message-header
-  "tiny-mime" "Decode MIME encoded-word." t)
-(autoload 'mime/decode-string "tiny-mime" "Decode MIME encoded-word." t)
-
-
-;;; @ variables
-;;;
-
-(defvar tm-gnus/original-article-display-hook gnus-article-display-hook)
-
-(defvar tm-gnus/decode-all t)
-
-(defvar tm-gnus/preview-buffer (concat "*Preview-" gnus-article-buffer "*"))
-
-
-;;; @ command functions
-;;;
-
-(defun tm-gnus/view-message (arg)
-  "MIME decode and play this message."
-  (interactive "P")
-  (let ((gnus-break-pages nil))
-    (gnus-summary-select-article t t)
-    )
-  (pop-to-buffer gnus-article-buffer t)
-  (mime/viewer-mode)
-  )
-
-(defun tm-gnus/summary-scroll-down ()
-  "Scroll down one line current article."
-  (interactive)
-  (gnus-summary-scroll-up -1)
-  )
-
-(define-key gnus-summary-mode-map "v" (function tm-gnus/view-message))
-(define-key gnus-summary-mode-map
-  "\e\r" (function tm-gnus/summary-scroll-down))
-(define-key gnus-summary-mode-map "\et" (function tm-gnus/toggle-mime))
-
-
-(defun gnus-summary-next-page (lines)
-  "Show next page of selected article.
-If end of article, select next article.
-Argument LINES specifies lines to be scrolled up."
-  (interactive "P")
-  (let ((article (gnus-summary-article-number))
-       (endp nil))
-    (if (or (null gnus-current-article)
-           (/= article gnus-current-article))
-       ;; Selected subject is different from current article's.
-       (gnus-summary-display-article article)
-      (gnus-configure-windows 'article)
-      (pop-to-buffer gnus-summary-buffer)
-      (gnus-eval-in-buffer-window (cdr (assq 'article gnus-window-to-buffer))
-       (setq endp (gnus-article-next-page lines)))
-      (cond ((and endp lines)
-            (message "End of message"))
-           ((and endp (null lines))
-            (gnus-summary-next-unread-article)))
-      )))
-
-(defun gnus-summary-scroll-up (lines)
-  "Scroll up (or down) one line current article.
-Argument LINES specifies lines to be scrolled up (or down if negative)."
-  (interactive "p")
-  (gnus-set-global-variables)
-  (gnus-configure-windows 'article)
-  (or (gnus-summary-select-article nil nil 'pseudo)
-      (gnus-eval-in-buffer-window
-         (cdr (assq 'article gnus-window-to-buffer))
-       (cond ((> lines 0)
-              (if (gnus-article-next-page lines)
-                  (gnus-message 3 "End of message")))
-             ((< lines 0)
-              (gnus-article-prev-page (- lines))))))
-  (gnus-summary-recenter)
-  (gnus-summary-position-cursor))
-
-(defun gnus-summary-prev-page (lines)
-  "Show previous page of selected article.
-Argument LINES specifies lines to be scrolled down."
-  (interactive "P")
-  (gnus-set-global-variables)
-  (let ((article (gnus-summary-article-number)))
-    (gnus-configure-windows 'article)
-    (if (or (null gnus-current-article)
-           (null gnus-article-current)
-           (/= article (cdr gnus-article-current))
-           (not (equal (car gnus-article-current) gnus-newsgroup-name)))
-       ;; Selected subject is different from current article's.
-       (gnus-summary-display-article article)
-      (gnus-summary-recenter)
-      (gnus-eval-in-buffer-window
-       (cdr (assq 'article gnus-window-to-buffer))
-       (gnus-article-prev-page lines))))
-  (gnus-summary-position-cursor))
-
-(defun gnus-summary-toggle-header (arg)
-  "Show the headers if they are hidden, or hide them if they are shown.
-If ARG is a positive number, show the entire header.
-If ARG is a negative number, hide the unwanted header lines."
-  (interactive "P")
-  (gnus-set-global-variables)
-  (save-excursion
-    (set-buffer (cdr (assq 'article gnus-window-to-buffer)))
-    (let ((buffer-read-only nil))
-      (if (numberp arg) 
-         (if (> arg 0) (remove-text-properties (point-min) (point-max) 
-                                               gnus-hidden-properties)
-           (if (< arg 0) (run-hooks 'gnus-article-display-hook)))
-       (if (text-property-any (point-min) (point-max) 'invisible t)
-           (if tm-gnus/decode-all
-               (let (mime-viewer/ignored-field-list)
-                 (run-hooks 'gnus-article-display-hook)
-                 )
-             (remove-text-properties (point-min) (point-max)
-                                     gnus-hidden-properties)
-             )
-         (let (gnus-have-all-headers)
-           (run-hooks 'gnus-article-display-hook)
-           ))
-       )
-      (pop-to-buffer gnus-summary-buffer)
-      (set-window-point (get-buffer-window (current-buffer)) (point-min)))))
-
-
-;; Set article window start at LINE, where LINE is the number of lines
-;; from the head of the article.
-(defun gnus-article-set-window-start (&optional line)
-  (let ((article-buffer (cdr (assq 'article gnus-window-to-buffer))))
-    (set-window-start
-     (get-buffer-window article-buffer)
-     (save-excursion
-       (set-buffer article-buffer)
-       (goto-char (point-min))
-       (if (not line)
-          (point-min)
-        (gnus-message 6 "Moved to bookmark")
-        (search-forward "\n\n" nil t)
-        (forward-line line)
-        (point))))))
-
-
-;;; @ summary filter
-;;;
-
-(defun tm-gnus/decode-summary-from-and-subjects ()
-  (mapcar (function
-          (lambda (header)
-            (header-set-from
-             header
-             (mime/decode-string (or (header-from header) ""))
-             )
-            (header-set-subject
-             header
-             (mime/decode-string (or (header-subject header) ""))
-             )
-            ))
-         gnus-newsgroup-headers)
-  )
-
-(add-hook 'gnus-select-group-hook
-         (function tm-gnus/decode-summary-from-and-subjects))
-
-
-;;; @ article filter
-;;;
-
-(setq gnus-show-mime-method
-         (function
-          (lambda ()
-            (let (buffer-read-only)
-              (mime/decode-message-header)
-              ))))
-
-(defun tm-gnus/set-mime-method (mode)
-  (if mode
-      (progn
-       (setq gnus-show-mime nil)
-       (setq gnus-article-display-hook
-             (list (function (lambda ()
-                               (mime/viewer-mode)
-                               (gnus-set-mode-line 'article)
-                               (set-buffer-modified-p nil)
-                               (pop-to-buffer mime::preview/article-buffer)
-                               ))))
-       (set-alist 'gnus-window-to-buffer 'article tm-gnus/preview-buffer)
-       )
-    (setq gnus-show-mime t)
-    (setq gnus-article-display-hook tm-gnus/original-article-display-hook)
-    (set-alist 'gnus-window-to-buffer 'article gnus-article-buffer)
-    ))
-
-(tm-gnus/set-mime-method tm-gnus/decode-all)
-
-(defun tm-gnus/toggle-mime (arg)
-  "Toggle MIME processing mode.
-With arg, turn MIME processing on if arg is positive."
-  (interactive "P")
-  (setq tm-gnus/decode-all
-       (if (null arg)
-           (not tm-gnus/decode-all)
-         arg))
-  (gnus-set-global-variables)
-  (tm-gnus/set-mime-method tm-gnus/decode-all)
-  (gnus-summary-select-article gnus-show-all-headers 'force)
-  )
+(if (not (fboundp 'mail-header-from))
+    (progn
+      (defalias 'mail-header-from        'header-from)
+      (defalias 'mail-header-set-from    'header-set-from)
+      (defalias 'mail-header-subject     'header-subject)
+      (defalias 'mail-header-set-subject 'header-set-subject)
+      ))
 
 
 ;;; @ end