tm 7.80.
[elisp/tm.git] / tm-gnus3.el
index 8143b82..38ef4a4 100644 (file)
@@ -1,69 +1,51 @@
 ;;;
-;;; $Id: tm-gnus3.el,v 2.0 1994/07/24 08:33:00 morioka Exp morioka $
+;;; $Id: tm-gnus3.el,v 5.4 1994/10/25 08:29:17 morioka Exp $
 ;;;
 
 (provide 'tm-gnus3)
 
 (require 'tm-gnus)
-
-(if (and (null gnus-Startup-hook)
-        (boundp 'gnus-startup-hook))
-    (setq gnus-Startup-hook gnus-startup-hook)
-  )
-(if (and (null gnus-Select-group-hook)
-        (boundp 'gnus-select-group-hook))
-    (setq gnus-Select-group-hook gnus-select-group-hook)
-  )
-(if (and (null gnus-Subject-mode-hook)
-        (boundp 'gnus-summary-mode-hook))
-    (setq gnus-Subject-mode-hook gnus-summary-mode-hook)
-  )
-(if (and (null gnus-Article-mode-hook)
-        (boundp 'gnus-article-mode-hook))
-    (setq gnus-Article-mode-hook gnus-article-mode-hook)
-  )
-(if (and (null gnus-Article-prepare-hook)
-        (boundp 'gnus-article-prepare-hook))
-    (setq gnus-Article-prepare-hook gnus-article-prepare-hook)
-  )
-
-(defun tm-gnus/full-decode-message-old (arg)
-  "MIME full-decode this article."
+(require 'tm-view)
+(require 'tl-list)
+
+(setq mime/go-to-top-node-method-alist
+      (put-alist 'gnus-Article-mode
+                (if (string-match (regexp-quote "3.14.4") gnus-version)
+                    (function
+                     (lambda ()
+                       (mime/exit-view-mode)
+                       (delete-other-windows)
+                       (gnus-Article-show-summary)
+                       ))
+                  (function
+                   (lambda ()
+                     (mime/exit-view-mode)
+                     (delete-other-windows)
+                     (gnus-Article-show-subjects)
+                     )))
+                mime/go-to-top-node-method-alist))
+
+(defun tm-gnus/view-message (arg)
+  "MIME decode and play this message."
   (interactive "P")
-  (let ((gnus-Article-prepare-hook mime/body-decoding-method))
-    ;; The following is a trick
-    ;; to force to read the current article again.
-    (setq gnus-have-all-headers (not gnus-have-all-headers))
-    (gnus-summary-select-article (not gnus-have-all-headers) t)
-    ))
+  (let ((gnus-break-pages nil))
+    (gnus-Subject-select-article t t)
+    )
+  (pop-to-buffer gnus-Article-buffer t)
+  (mime/viewer-mode)
+  )
 
-(add-hook 'gnus-Select-group-hook
-         (function
-          (lambda ()
-            (mapcar (function
-                     (lambda (header)
-                       (nntp-set-header-subject
-                        header
-                        (mime/decode-string (gnus-header-subject header))
-                        )))
-                    gnus-newsgroup-headers)
-            )))
+(add-hook 'gnus-Select-group-hook (function tm-gnus/decode-summary-subjects))
 
 (define-key gnus-Subject-mode-map
   "\et" 'tm-gnus/toggle-mime-header-decoding-mode)
-(define-key gnus-Subject-mode-map "v" 'tm-gnus/play-message)
-(define-key gnus-Subject-mode-map "e" 'tm-gnus/extract-message)
-(define-key gnus-Subject-mode-map "\C-cp" 'tm-gnus/print-message)
+(define-key gnus-Subject-mode-map "v" 'tm-gnus/view-message)
 
 (fset 'gnus-summary-select-article 'gnus-Subject-select-article)
 
 (fset 'gnus-Article-set-mode-line 'tm-gnus/article-set-mode-line)
 (add-hook 'gnus-Article-prepare-hook
-         (function
-          (lambda ()
-            (if mime/header-decoding-mode
-                (mime/decode-message-header)
-              ))) t)
+         (function mime/decode-message-header-if-you-need) t)
 
 (if (not (string-match "^GNUS 3\.14\.4" gnus-version))
     (progn
                   (make-local-variable 'minor-mode-alist)
                   (mime/add-header-decoding-mode-to-mode-line)
                   )))
-      
-      (fset 'tm-gnus/full-decode-message 'tm-gnus/full-decode-message-old)
       )
   (progn
     (add-hook 'gnus-Article-mode-hook
              (function mime/add-header-decoding-mode-to-mode-line))
-    
-    (fset 'tm-gnus/full-decode-message 'tm-gnus/full-decode-message-new)
-    (setq gnus-show-mime-method mime/body-decoding-method)
     ))