tm 7.19.
authormorioka <morioka>
Mon, 9 Mar 1998 11:16:24 +0000 (11:16 +0000)
committermorioka <morioka>
Mon, 9 Mar 1998 11:16:24 +0000 (11:16 +0000)
18 files changed:
Changes-7.19.en [new file with mode: 0644]
Changes-7.19.ja [new file with mode: 0644]
Makefile
gnus/Makefile
gnus/mk-tgnus
gnus/tm-gnus3.el
gnus/tm-gnus4.el
gnus/tm-gnus5.el
gnus/tm-sgnus.el
mh-e/Makefile
mh-e/tm-mh-e.el
mk-tm
tm-partial.el
tm-play.el
tm-rmail.el
tm-tar.el
tm-view.el
tm-vm.el

diff --git a/Changes-7.19.en b/Changes-7.19.en
new file mode 100644 (file)
index 0000000..5b86e6f
--- /dev/null
@@ -0,0 +1,139 @@
+* tm
+
+tm/tm-partial.el
+----------------------------
+revision 7.9
+date: 1995/10/23 09:27:29;  author: morioka;  state: Exp;  lines: +6 -5
+Function `mime/decode-message/partial-region' was renamed to
+`mime-article/decode-message/partial'.
+----------------------------
+revision 7.8
+date: 1995/10/22 14:28:50;  author: morioka;  state: Exp;  lines: +12 -71
+Stop checking about number, etc.
+----------------------------
+revision 7.7
+date: 1995/10/22 13:13:39;  author: morioka;  state: Exp;  lines: +1 -19
+Setting for VM was moved to tm-vm.el.
+----------------------------
+revision 7.6
+date: 1995/10/22 12:51:23;  author: morioka;  state: Exp;  lines: +1 -22
+Setting for mh-e was moved to tm-mh-e.el.
+----------------------------
+revision 7.5
+date: 1995/10/22 12:37:34;  author: morioka;  state: Exp;  lines: +3 -19
+Setting for September Gnus and Gnus 5.0.* with September patch was
+moved to tm-sgnus.el.
+----------------------------
+revision 7.4
+date: 1995/10/22 12:08:45;  author: morioka;  state: Exp;  lines: +1 -16
+Setting for GNUS 4 was moved to tm-gnus4.el.
+----------------------------
+revision 7.3
+date: 1995/10/22 12:01:35;  author: morioka;  state: Exp;  lines: +1 -16
+Setting for GNUS 3.* was moved to tm-gnus3.el.
+----------------------------
+revision 7.2
+date: 1995/10/22 11:56:28;  author: morioka;  state: Exp;  lines: +17 -11
+Variable `tm-partial/display-article-method-alist' was renamed to
+`tm-partial/preview-article-method-alist', function
+`tm-partial/display-article' was renamed to
+`tm-partial/preview-article'.
+----------------------------
+revision 7.1
+date: 1995/10/22 10:22:30;  author: morioka;  state: Exp;  lines: +117 -99
+Implementation was changed:
+(1) Some check for Subject searching in Summary was cut.
+(2) Use message/partial method of tm-view.
+(3) Separate setting for each MUA from the function.
+----------------------------
+
+tm/tm-play.el
+----------------------------
+revision 2.0
+date: 1995/10/23 09:26:41;  author: morioka;  state: Exp;  lines: +2 -2
+Function `mime/decode-message/partial-region' was renamed to
+`mime-article/decode-message/partial'.
+----------------------------
+
+tm/tm-rmail.el
+----------------------------
+revision 7.3
+date: 1995/10/23 08:53:47;  author: morioka;  state: Exp;  lines: +29 -1
+Setting for tm-partial was added.
+----------------------------
+revision 7.2
+date: 1995/10/22 15:42:46;  author: morioka;  state: Exp;  lines: +2 -2
+Fixed a problem about quitting method setting.
+----------------------------
+
+tm/tm-view.el
+----------------------------
+revision 7.19
+date: 1995/10/23 09:27:13;  author: morioka;  state: Exp;  lines: +2 -2
+Function `mime/decode-message/partial-region' was renamed to
+`mime-article/decode-message/partial'.
+----------------------------
+
+tm/tm-vm.el
+----------------------------
+revision 7.2
+date: 1995/10/22 13:17:12;  author: morioka;  state: Exp;  lines: +25 -2
+Setting for tm-partial was added.
+----------------------------
+
+
+* tm/mh-e
+
+  Attached version 7.08.
+
+tm/mh-e/tm-mh-e.el
+----------------------------
+revision 7.8
+date: 1995/10/22 14:40:59;  author: morioka;  state: Exp;  lines: +29 -1
+Setting for tm-partial was added.
+----------------------------
+
+
+* tm/gnus
+
+  Attached version 7.09.
+
+tm/gnus/tm-gnus3.el
+----------------------------
+revision 7.0
+date: 1995/10/22 12:02:04;  author: morioka;  state: Exp;  lines: +24 -1
+Setting for tm-partial was added.
+----------------------------
+
+tm/gnus/tm-gnus4.el
+----------------------------
+revision 7.0
+date: 1995/10/22 12:12:56;  author: morioka;  state: Exp;  lines: +24 -1
+Setting for tm-partial was added.
+----------------------------
+
+tm/gnus/tm-gnus5.el
+----------------------------
+revision 7.4
+date: 1995/10/22 12:13:50;  author: morioka;  state: Exp;  lines: +24 -1
+Setting for tm-partial was added.
+----------------------------
+
+tm/gnus/tm-sgnus.el
+----------------------------
+revision 7.9
+date: 1995/10/23 10:18:13;  author: morioka;  state: Exp;  lines: +13 -7
+`tm-gnus/article-prepare-hook' was created.
+----------------------------
+revision 7.8
+date: 1995/10/23 08:55:03;  author: morioka;  state: Exp;  lines: +11 -1
+measure for BBDB.
+----------------------------
+revision 7.7
+date: 1995/10/22 14:38:08;  author: morioka;  state: Exp;  lines: +5 -6
+Fixed a problem for tm-partial.
+----------------------------
+revision 7.6
+date: 1995/10/22 12:37:59;  author: morioka;  state: Exp;  lines: +23 -1
+Setting for tm-partial was added.
+----------------------------
diff --git a/Changes-7.19.ja b/Changes-7.19.ja
new file mode 100644 (file)
index 0000000..2928e36
--- /dev/null
@@ -0,0 +1,138 @@
+* tm
+
+tm/tm-partial.el
+----------------------------
+revision 7.9
+date: 1995/10/23 09:27:29;  author: morioka;  state: Exp;  lines: +6 -5
+\e$B4X?t\e(B mime/decode-message/partial-region \e$B$r\e(B
+`mime-article/decode-message/partial' \e$B$K2~L>$7$?!#\e(B
+----------------------------
+revision 7.8
+date: 1995/10/22 14:28:50;  author: morioka;  state: Exp;  lines: +12 -71
+\e$BHV9fEy$N\e(B check \e$B$r9T$&$N$r;_$a$?!#\e(B
+----------------------------
+revision 7.7
+date: 1995/10/22 13:13:39;  author: morioka;  state: Exp;  lines: +1 -19
+VM \e$BMQ$N@_Dj$r\e(B tm-vm.el \e$B$K0\$7$?!#\e(B
+----------------------------
+revision 7.6
+date: 1995/10/22 12:51:23;  author: morioka;  state: Exp;  lines: +1 -22
+mh-e \e$BMQ$N@_Dj$r\e(B tm-mh-e.el \e$B$K0\$7$?!#\e(B
+----------------------------
+revision 7.5
+date: 1995/10/22 12:37:34;  author: morioka;  state: Exp;  lines: +3 -19
+September Gnus \e$B$*$h$S\e(B Gnus 5.0.* with September patch \e$BMQ$N@_Dj$r\e(B
+tm-sgnus.el \e$B$K0\$7$?!#\e(B
+----------------------------
+revision 7.4
+date: 1995/10/22 12:08:45;  author: morioka;  state: Exp;  lines: +1 -16
+GNUS 4 \e$BMQ$N@_Dj$r\e(B tm-gnus4.el \e$B$K0\$7$?!#\e(B
+----------------------------
+revision 7.3
+date: 1995/10/22 12:01:35;  author: morioka;  state: Exp;  lines: +1 -16
+GNUS 3.* \e$BMQ$N@_Dj$r\e(B tm-gnus3.el \e$B$K0\$7$?!#\e(B
+----------------------------
+revision 7.2
+date: 1995/10/22 11:56:28;  author: morioka;  state: Exp;  lines: +17 -11
+\e$BJQ?t\e(B tm-partial/display-article-method-alist \e$B$r\e(B
+`tm-partial/preview-article-method-alist' \e$B$K!"4X?t\e(B
+tm-partial/display-article \e$B$r\e(B `tm-partial/preview-article' \e$B$K2~L>$7$?!#\e(B
+----------------------------
+revision 7.1
+date: 1995/10/22 10:22:30;  author: morioka;  state: Exp;  lines: +117 -99
+\e$B<BAu$rBgI}$K=$@5$7$?!#\e(B
+(1) Summary \e$B$K$*$1$k\e(B Subject \e$B8!:w$N>r7o$r4K$a$?!#\e(B
+(2) tm-view \e$B$N\e(B message/partial \e$BMQ$N\e(B method \e$B$rMxMQ$9$k$h$&$K$7$?!#\e(B
+(3) \e$B3F\e(B MUA \e$BMQ$N@_Dj$r4X?tK\BN$+$iJ,N%$7$?!#\e(B
+----------------------------
+
+tm/tm-play.el
+----------------------------
+revision 2.0
+date: 1995/10/23 09:26:41;  author: morioka;  state: Exp;  lines: +2 -2
+\e$B4X?t\e(B mime/decode-message/partial-region \e$B$r\e(B
+`mime-article/decode-message/partial' \e$B$K2~L>$7$?!#\e(B
+----------------------------
+
+tm/tm-rmail.el
+----------------------------
+revision 7.3
+date: 1995/10/23 08:53:47;  author: morioka;  state: Exp;  lines: +29 -1
+tm-partial \e$BMQ$N@_Dj$rDI2C$7$?!#\e(B
+----------------------------
+revision 7.2
+date: 1995/10/22 15:42:46;  author: morioka;  state: Exp;  lines: +2 -2
+quitting method \e$B$N@_Dj$K$*$1$kIT6q9g$r=$@5$7$?!#\e(B
+----------------------------
+
+tm/tm-view.el
+----------------------------
+revision 7.19
+date: 1995/10/23 09:27:13;  author: morioka;  state: Exp;  lines: +2 -2
+\e$B4X?t\e(B mime/decode-message/partial-region \e$B$r\e(B
+`mime-article/decode-message/partial' \e$B$K2~L>$7$?!#\e(B
+----------------------------
+
+tm/tm-vm.el
+----------------------------
+revision 7.2
+date: 1995/10/22 13:17:12;  author: morioka;  state: Exp;  lines: +25 -2
+tm-partial \e$BMQ$N@_Dj$r9T$C$?!#\e(B
+----------------------------
+
+
+* tm/mh-e
+
+  Version 7.08 \e$B$rE:IU$7$?!#\e(B
+
+tm/mh-e/tm-mh-e.el
+----------------------------
+revision 7.8
+date: 1995/10/22 14:40:59;  author: morioka;  state: Exp;  lines: +29 -1
+tm-partial \e$BMQ$N@_Dj$rDI2C$7$?!#\e(B
+----------------------------
+
+
+* tm/gnus
+
+  Version 7.09 \e$B$rE:IU$7$?!#\e(B
+
+tm/gnus/tm-gnus3.el
+----------------------------
+revision 7.0
+date: 1995/10/22 12:02:04;  author: morioka;  state: Exp;  lines: +24 -1
+tm-partial \e$BMQ$N@_Dj$r9T$C$?!#\e(B
+----------------------------
+
+tm/gnus/tm-gnus4.el
+----------------------------
+revision 7.0
+date: 1995/10/22 12:12:56;  author: morioka;  state: Exp;  lines: +24 -1
+tm-partial \e$BMQ$N@_Dj$r9T$C$?!#\e(B
+----------------------------
+
+tm/gnus/tm-gnus5.el
+----------------------------
+revision 7.4
+date: 1995/10/22 12:13:50;  author: morioka;  state: Exp;  lines: +24 -1
+tm-partial \e$BMQ$N@_Dj$r9T$C$?!#\e(B
+----------------------------
+
+tm/gnus/tm-sgnus.el
+----------------------------
+revision 7.9
+date: 1995/10/23 10:18:13;  author: morioka;  state: Exp;  lines: +13 -7
+tm-gnus/article-prepare-hook \e$B$r@_$1$?!#\e(B
+----------------------------
+revision 7.8
+date: 1995/10/23 08:55:03;  author: morioka;  state: Exp;  lines: +11 -1
+BBDB \e$BBP:vMQ$N\e(B code \e$B$rF~$l$?!#\e(B
+----------------------------
+revision 7.7
+date: 1995/10/22 14:38:08;  author: morioka;  state: Exp;  lines: +5 -6
+tm-partial \e$B$G$NIT6q9g$r=$@5$7$?!#\e(B
+----------------------------
+revision 7.6
+date: 1995/10/22 12:37:59;  author: morioka;  state: Exp;  lines: +23 -1
+tm-partial \e$BMQ$N@_Dj$r9T$C$?!#\e(B
+----------------------------
index 67e501f..6d74d23 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -34,7 +34,7 @@ TL_FILES = tl/README.eng tl/Makefile tl/mk-tl tl/*.el tl/doc/*.texi
 
 FILES  = $(TM_FILES) $(TM_MUA_FILES) $(MEL_FILES) $(TL_FILES)
 
-TARFILE = tm7.18.tar
+TARFILE = tm7.19.tar
 
 
 nemacs:
index 8da6199..cf062b7 100644 (file)
@@ -17,7 +17,7 @@ TMDIR19 = $(HOME)/lib/emacs19/lisp
 
 FILES  = tm/gnus/*.el tm/doc/tm-gnus*.texi
 
-TARFILE = tm-gnus7.05.tar
+TARFILE = tm-gnus7.09.tar
 
 
 gnus3:
index 7a95247..8adb000 100644 (file)
@@ -1,6 +1,7 @@
 ;;; -*-Emacs-Lisp-*-
 
 (require 'emu)
+(require 'tm-partial)
 
 (defun compile-tm-gnus ()
   (require 'gnus)
index a822014..a33cd87 100644 (file)
@@ -12,7 +12,7 @@
 ;;;
 
 (defconst tm-gnus/RCS-ID
-  "$Id: tm-gnus3.el,v 6.10 1995/09/11 07:20:29 morioka Exp $")
+  "$Id: tm-gnus3.el,v 7.0 1995/10/22 12:02:04 morioka Exp $")
 
 (defconst tm-gnus/version
   (concat (get-version-string tm-gnus/RCS-ID) " for GNUS 3"))
     )))
 
 
+;;; @ for tm-partial
+;;;
+
+(call-after-loaded
+ 'tm-partial
+ (function
+  (lambda ()
+    (set-atype 'mime/content-decoding-condition
+              '((type . "message/partial")
+                (method . mime-article/grab-message/partials)
+                (major-mode . gnus-Article-mode)
+                (summary-buffer-exp . gnus-Subject-buffer)
+                ))
+    
+    (set-alist 'tm-partial/preview-article-method-alist
+              'gnus-Article-mode
+              (function
+               (lambda ()
+                 (tm-gnus/view-message (gnus-Subject-article-number))
+                 )))
+    )))
+
+
 ;;; @ Summary decoding
 ;;;
 
index a01dcee..d7d41f1 100644 (file)
@@ -11,7 +11,7 @@
 ;;;
 
 (defconst tm-gnus/RCS-ID
-  "$Id: tm-gnus4.el,v 6.9 1995/09/11 07:20:46 morioka Exp $")
+  "$Id: tm-gnus4.el,v 7.0 1995/10/22 12:12:56 morioka Exp $")
 
 (defconst tm-gnus/version
   (concat (get-version-string tm-gnus/RCS-ID) " for GNUS 4"))
     )))
 
 
+;;; @ for tm-partial
+;;;
+
+(call-after-loaded
+ 'tm-partial
+ (function
+  (lambda ()
+    (set-atype 'mime/content-decoding-condition
+              '((type . "message/partial")
+                (method . mime-article/grab-message/partials)
+                (major-mode . gnus-article-mode)
+                (summary-buffer-exp . gnus-summary-buffer)
+                ))
+    
+    (set-alist 'tm-partial/preview-article-method-alist
+              'gnus-article-mode
+              (function
+               (lambda ()
+                 (tm-gnus/view-message (gnus-summary-article-number))
+                 )))
+    )))
+
+
 ;;; @ Summary decoding
 ;;;
 
index 5b0cff0..b4cc192 100644 (file)
@@ -27,7 +27,7 @@
 ;;;
 
 (defconst tm-gnus/RCS-ID
-  "$Id: tm-gnus5.el,v 7.3 1995/10/17 16:52:54 morioka Exp $")
+  "$Id: tm-gnus5.el,v 7.4 1995/10/22 12:13:50 morioka Exp $")
 
 (defconst tm-gnus/version
   (concat (get-version-string tm-gnus/RCS-ID) " for GNUS 5"))
@@ -106,6 +106,29 @@ article is automatic MIME decoded.")
    ))
 
 
+;;; @ for tm-partial
+;;;
+
+(call-after-loaded
+ 'tm-partial
+ (function
+  (lambda ()
+    (set-atype 'mime/content-decoding-condition
+              '((type . "message/partial")
+                (method . mime-article/grab-message/partials)
+                (major-mode . gnus-article-mode)
+                (summary-buffer-exp . gnus-summary-buffer)
+                ))
+    
+    (set-alist 'tm-partial/preview-article-method-alist
+              'gnus-article-mode
+              (function
+               (lambda ()
+                 (tm-gnus/view-message (gnus-summary-article-number))
+                 )))
+    )))
+
+
 ;;; @ summary filter
 ;;;
 
index c096b72..038929f 100644 (file)
@@ -26,7 +26,7 @@
 ;;;
 
 (defconst tm-gnus/RCS-ID
-  "$Id: tm-sgnus.el,v 7.5 1995/10/19 14:22:47 morioka Exp $")
+  "$Id: tm-sgnus.el,v 7.9 1995/10/23 10:18:13 morioka Exp $")
 
 (defconst tm-gnus/version
   (concat (get-version-string tm-gnus/RCS-ID) " for September"))
@@ -56,7 +56,8 @@ article is automatic MIME decoded.")
        (remove-text-properties (point-min) (point-max)
                                gnus-hidden-properties)
       ))
-  (mime/viewer-mode)
+  (mime/viewer-mode nil nil nil gnus-original-article-buffer
+                   gnus-article-buffer)
   )
 
 (defun tm-gnus/summary-scroll-down ()
@@ -108,6 +109,26 @@ article is automatic MIME decoded.")
    ))
 
 
+;;; @ for tm-partial
+;;;
+
+(call-after-loaded
+ 'tm-partial
+ (lambda ()
+   (set-atype 'mime/content-decoding-condition
+             '((type . "message/partial")
+               (method . mime-article/grab-message/partials)
+               (major-mode . gnus-original-article-mode)
+               (summary-buffer-exp . gnus-summary-buffer)
+               ))
+   (set-alist 'tm-partial/preview-article-method-alist
+             'gnus-original-article-mode
+             '(lambda ()
+                (tm-gnus/view-message (gnus-summary-article-number))
+                ))
+   ))
+
+
 ;;; @ summary filter
 ;;;
 
@@ -144,13 +165,19 @@ article is automatic MIME decoded.")
        (function gnus-article-push-button))
   (mime/viewer-mode nil nil nil gnus-original-article-buffer
                    gnus-article-buffer)
+  (run-hooks 'tm-gnus/article-prepare-hook)
+  )
+
+(defun tm-gnus/decode-message-header ()
+  (mime/decode-message-header)
+  (run-hooks 'tm-gnus/article-prepare-hook)
   )
 
 (defun tm-gnus/set-mime-method (mode)
   (setq gnus-show-mime-method
        (if mode
            (function tm-gnus/preview-article)
-         (function mime/decode-message-header)
+         (function tm-gnus/decode-message-header)
          )))
 
 (tm-gnus/set-mime-method tm-gnus/decode-all)
@@ -180,6 +207,16 @@ article is automatic MIME decoded.")
    ))
 
 
+;;; @ for BBDB
+;;;
+
+(if (memq 'bbdb/gnus-update-record gnus-article-prepare-hook)
+    (progn
+      (remove-hook 'gnus-article-prepare-hook 'bbdb/gnus-update-record)
+      (add-hook 'tm-gnus/article-prepare-hook 'bbdb/gnus-update-record)
+      ))
+
+
 ;;; @ end
 ;;;
 
index c3d8415..d0fff22 100644 (file)
@@ -23,7 +23,7 @@ TMDIR19       = $(HOME)/lib/emacs19/lisp
 
 
 FILES  = tm/mh-e/*.el tm/mh-e/Makefile tm/mh-e/mk-tmh tm/mh-e/*.ol
-TARFILE = tm-mh-e7.07.tar
+TARFILE = tm-mh-e7.08.tar
 
 
 elc:
index 1f9c2c7..db58b37 100644 (file)
@@ -26,7 +26,7 @@
 ;;;
 
 (defconst tm-mh-e/RCS-ID
-  "$Id: tm-mh-e.el,v 7.7 1995/10/20 10:54:27 morioka Exp $")
+  "$Id: tm-mh-e.el,v 7.8 1995/10/22 14:40:59 morioka Exp $")
 
 (defconst tm-mh-e/version (get-version-string tm-mh-e/RCS-ID))
 
@@ -235,6 +235,34 @@ With arg, turn MIME processing on if arg is positive."
     ))
 
 
+;;; @ for tm-partial
+;;;
+
+(call-after-loaded
+ 'tm-partial
+ (function
+  (lambda ()
+    (set-atype 'mime/content-decoding-condition
+              '((type . "message/partial")
+                (method . mime-article/grab-message/partials)
+                (major-mode . mh-show-mode)
+                (summary-buffer-exp
+                 . (and (or (string-match "^article-\\(.+\\)$" article-buffer)
+                            (string-match "^show-\\(.+\\)$" article-buffer))
+                        (substring article-buffer
+                                   (match-beginning 1) (match-end 1))
+                        ))
+                ))
+    (set-alist 'tm-partial/preview-article-method-alist
+              'mh-show-mode
+              (function
+               (lambda ()
+                 (let ((tm-mh-e/decode-all t))
+                   (tm-mh-e/show)
+                   ))))
+    )))
+
+
 ;;; @ for tm-comp
 ;;;
 
diff --git a/mk-tm b/mk-tm
index 7a101fc..54db890 100644 (file)
--- a/mk-tm
+++ b/mk-tm
@@ -32,7 +32,7 @@
          "tm-def"
          "tm-ew-d" "tm-ew-e" "tm-eword"
          "tm-parse" "tm-view" "tm-play"
-         "tm-latex" "tm-w3" "tm-tar"
+         "tm-latex" "tm-w3" "tm-tar" "tm-partial"
          "tm-rmail" "tm-comp"
          "tm-setup" "mime-setup"
          ))
index 6b895b3..3cb2f87 100644 (file)
 ;;; Grabbing all MIME "message/partial"s.
 ;;; by Yasuo OKABE @ Kyoto University 1994
 ;;; modified by MORIOKA Tomohiko
-;;;         and Shuhei KOBAYASHI <shuhei@cmpt01.phys.tohoku.ac.jp>
 ;;;
 ;;; original file is 
 ;;;  gif.el written by Art Mellor @ Cayman Systems, Inc. 1991
 ;;;
 ;;; This file is a part of tm (Tools for MIME).
 ;;;
-;;; $Id: tm-partial.el,v 7.0 1995/10/18 08:19:27 morioka Exp $
+;;; $Id: tm-partial.el,v 7.9 1995/10/23 09:27:29 morioka Exp $
 ;;;
 
 (require 'tm-view)
 
-;; This regular expression controls what types of subject lines can be
-;; parsed. Currently handles lines like:
-;;     foo [1/3]
-;;     foo (1/3)
-;;     foo 1/3
-;;     foo [1 of 3]
-;;     foo (1 of 3)
-;;     foo 1 of 3
-;;     foo1 of 3
-
-(defvar mime/gp:subject-start-regexp "[ \t]*\\(v[0-9]+i[0-9]+:[ \t]+\\)?")
-
-(defvar mime/gp:subject-end-regexp
-  "\\([[(]?\\)\\([0-9]+\\)\\(/\\| [oO][fF] \\)\\([0-9]+\\)\\([])]?\\)[ \t]*$")
-
+(defvar tm-partial/preview-article-method-alist nil)
+   
 ;; display Article at the cursor in Subject buffer.
-(defun mime/gp:display-article ()
-  (save-excursion   
-    (cond
-     ((eq target 'gnus4)
-      (let ((gnus-show-all-headers t))
-       (gnus-summary-display-article (gnus-summary-article-number))
-       ))
-     ((eq target 'mh-e)
-      (mh-show)
-      )
-     ((eq target 'vm)
-      (let ((vm-follow-summary-cursor t))
-        (vm-follow-summary-cursor)
-        (vm-select-folder-buffer)
-        (vm-check-for-killed-summary)
-        (vm-error-if-folder-empty)
-        (vm-display (current-buffer) t '(tm-vm/view-message)
-                    '(tm-vm/view-mesage reading-message))
-        (vm-widen-page)
-        (goto-char (point-max))
-        (widen)
-        (narrow-to-region (point) (vm-start-of (car vm-message-pointer)))
-        (goto-char (point-min))
-       ))
-     (t (error "Fatal. Unsupported mode")))))
-
-(defun mime/decode-message/grab-partials (beg end cal)
+(defun tm-partial/preview-article (target)
+  (let ((f (assq target tm-partial/preview-article-method-alist)))
+    (if f
+       (funcall (cdr f))
+      (error "Fatal. Unsupported mode")
+      )))
+
+(defun mime-article/grab-message/partials (beg end cal)
   (interactive)
   (let* ((id (cdr (assoc "id" cal)))
-        (number (cdr (assoc "number" cal)))
-        (total (cdr (assoc "total" cal)))
         (buffer (generate-new-buffer id))
         (mother mime::article/preview-buffer)
-        target
-        subject-buf
-        (article-buf (buffer-name (current-buffer)))
-        (subject-id nil)
-        (part-num 1)
-        (part-missing nil))
-    (cond ((or (eq major-mode 'gnus-article-mode)
-              (eq major-mode 'gnus-original-article-mode)
-              )
-          (setq subject-buf gnus-summary-buffer)
-          (setq target 'gnus4)
-          )
-         ((eq major-mode 'mh-show-mode)
-          (string-match "^show-\\(.+\\)$" article-buf)
-          (setq subject-buf
-                (substring article-buf (match-beginning 1) (match-end 1)))
-          (setq target 'mh-e)
-          )
-          ((eq major-mode 'vm-mode)
-           (setq subject-buf vm-summary-buffer)
-           (setq target 'vm)
-          )
-          (t (error "%s is not supported. Sorry." major-mode)))
+        (target (cdr (assq 'major-mode cal)))
+        (article-buffer (buffer-name (current-buffer)))
+        (subject-buf (eval (cdr (assq 'summary-buffer-exp cal))))
+        subject-id
+        (root-dir (expand-file-name
+                   (concat "m-prts-" (user-login-name)) mime/tmp-dir))
+        full-file)
+    (setq root-dir (concat root-dir "/" (replace-as-filename id)))
+    (setq full-file (concat root-dir "/FULL"))
+    
+    (if (null target)
+       (error "%s is not supported. Sorry." target)
+      )
     
-    (if (and (eq beg (point-min)) (eq end (point-max)))
-       (save-excursion
-         (goto-char (point-min))
-         (re-search-forward "^$")
-         (let ((delim (match-beginning 0)))
-           (goto-char (point-min))
-           (if (re-search-forward "^[Ss]ubject:.*$" delim t)
-               (let ((tail (match-end 0)))
-                 (beginning-of-line)
-                 (re-search-forward (concat "^[Ss]ubject:" mime/gp:subject-start-regexp) tail t)
-                 (let ((start (point)))
-                   (if (and (re-search-forward mime/gp:subject-end-regexp tail t)
-                            (eq (string-to-int number)
-                                (string-to-int (buffer-substring (match-beginning 2) (match-end 2))))
-                            (eq (string-to-int total)
-                                (string-to-int (buffer-substring (match-beginning 4) (match-end 4)))))
-                       (setq subject-id (buffer-substring start (match-end 1)))
-                     (setq part-missing (string-to-int number)))))
-             (setq part-missing t))))
-      (setq part-missing t))
-
     ;; if you can't parse the subject line, try simple decoding method
-    (if (or part-missing
-           (not (y-or-n-p "Merge partials?")))
+    (if (or (file-exists-p full-file)
+           (not (y-or-n-p "Merge partials?"))
+           )
        (progn
          (kill-buffer buffer)
-         (mime/decode-message/partial-region beg end cal))
-      (progn 
-       (set-buffer subject-buf)
-       (setq part-missing (mime/gp:part-missing-p subject-id (string-to-int total)))
-       (if part-missing
-           (progn
-             (kill-buffer buffer)
-             (error "Couldn't find part %d" part-missing)))
-       (save-excursion
-         (while (<= part-num (string-to-int total))
-           (goto-char (point-min))
-           (message "Grabbing part %d of %d" part-num (string-to-int total))
-           (re-search-forward
-                     (concat (regexp-quote subject-id) "0*"
-                             (int-to-string part-num)) nil t)
-           (mime/gp:display-article)
-           (save-excursion
-             (set-buffer article-buf)
-             (goto-char (point-min))
-             (re-search-forward "^$")
-             (let ((delimit (1+ (point))))
-               (goto-char (point-min))
-               (if (not
-                    (let ((params (cdr (mime/Content-Type))))
-                      (and (equal (assoc-value "id" params) id)
-                           (= (string-to-int (assoc-value "number" params))
-                              part-num)
-                           )))
-                   (progn
-                     (kill-buffer buffer)
-                     (error "Couldn't find part %d" part-num)))
-               (if (< delimit (point-max))
-                   (append-to-buffer buffer delimit (point-max))
-                 )))
-           (setq part-num (+ part-num 1))))
-       (mime/gp:display-article)
-       (save-excursion
-         (set-buffer article-buf)
-         ;; (make-variable-buffer-local 'mime/content-list)
-         ;; (setq mime/content-list (mime/parse-contents))
-         (make-variable-buffer-local 'mime::article/content-info)
-         (setq mime::article/content-info (mime/parse-message))
-         )
-       (delete-other-windows)
-       (switch-to-buffer buffer)
-       (goto-char (point-min))
-       (setq major-mode 'mime/show-message-mode)
-       (mime/viewer-mode mother)
-       (pop-to-buffer (current-buffer))
-       ))))
-
-;; Check if all the parts are there
-(defun mime/gp:part-missing-p (subject-string num-parts)
-  (save-excursion
-    (let ((part-num 1)
-         (cant-find nil))
-
-      (while (and (<= part-num num-parts) (not cant-find))
-       (goto-char (point-min))
-       ;; If the parts are numbered 01/10, then chop off the leading 0
-       (if (not (re-search-forward
-                 (concat (regexp-quote subject-id) "0*" 
-                         (int-to-string part-num))
-                 nil t))
-           (setq cant-find part-num)
-         (progn
-           (message "Found part %d of %d." part-num num-parts)
-           (setq part-num (+ part-num 1)))))
-      cant-find)))
-
-
-;;; @ set up
+         (mime-article/decode-message/partial beg end cal)
+         )
+      (let (cinfo the-id parameters)
+       (setq subject-id (rfc822/get-field-body "Subject"))
+       (if (string-match "[0-9]+" subject-id)
+           (setq subject-id (substring subject-id 0 (match-beginning 0)))
+         )
+       (pop-to-buffer subject-buf)
+       (while (search-backward subject-id nil t)
+         )
+       (catch 'tag
+         (while t
+           (tm-partial/preview-article target)
+           (pop-to-buffer article-buffer)
+           (switch-to-buffer mime::article/preview-buffer)
+           (setq cinfo
+                 (mime::preview-content-info/content-info
+                  (car mime::preview/content-list)))
+           (setq parameters (mime::content-info/parameters cinfo))
+           (setq the-id (assoc-value "id" parameters))
+           (if (equal the-id id)
+               (progn
+                 (switch-to-buffer article-buffer)
+                 (mime-article/decode-message/partial
+                  (point-min)(point-max) parameters)
+                 (if (file-exists-p full-file)
+                     (throw 'tag nil)
+                   )
+                 ))
+           (if (not (progn
+                      (pop-to-buffer subject-buf)
+                      (end-of-line)
+                      (search-forward subject-id nil t)
+                      ))
+               (error "not found")
+             )
+           ))))))
+
+
+;;; @ end
 ;;;
 
-(set-atype 'mime/content-decoding-condition
-          '((type . "message/partial")
-            (method . mime/decode-message/grab-partials)
-            (major-mode . gnus-article-mode)
-            ))
-
-(set-atype 'mime/content-decoding-condition
-          '((type . "message/partial")
-            (method . mime/decode-message/grab-partials)
-            (major-mode . gnus-original-article-mode)
-            ))
-
-(set-atype 'mime/content-decoding-condition
-          '((type . "message/partial")
-            (method . mime/decode-message/grab-partials)
-            (major-mode . mh-show-mode)
-            ))
-
-(set-atype 'mime/content-decoding-condition
-          '((type . "message/partial")
-            (method . mime/decode-message/grab-partials)
-            (major-mode . vm-mode)
-            ))
-
 (provide 'tm-partial)
+
+(run-hooks 'tm-partial-load-hook)
index d077b9d..4956b4f 100644 (file)
@@ -6,7 +6,7 @@
 ;;;
 ;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Version:
-;;;    $Id: tm-play.el,v 1.2 1995/09/26 11:54:38 morioka Exp $
+;;;    $Id: tm-play.el,v 2.0 1995/10/23 09:26:41 morioka Exp $
 ;;; Keywords: mail, news, MIME, multimedia
 ;;;
 ;;; This file is part of tm (Tools for MIME).
 ;;; @ message/partial
 ;;;
 
-(defun mime/decode-message/partial-region (beg end cal)
+(defun mime-article/decode-message/partial (beg end cal)
   (goto-char beg)
   (let* ((root-dir (expand-file-name
                    (concat "m-prts-" (user-login-name)) mime/tmp-dir))
index 24428b3..824ee3f 100644 (file)
@@ -4,7 +4,7 @@
 ;;;
 ;;; Author:   MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Version:
-;;;    $Id: tm-rmail.el,v 7.1 1995/10/05 13:04:10 morioka Exp $
+;;;    $Id: tm-rmail.el,v 7.3 1995/10/23 08:53:47 morioka Exp $
 ;;; Keywords: mail, MIME, multimedia, multilingual, encoded-word
 ;;;
 ;;; This file is part of tm (Tools for MIME).
 (call-after-loaded 'tm-view
                   (function
                    (lambda ()
-                     (set-alist 'mime-viewer/quitting-method
+                     (set-alist 'mime-viewer/quitting-method-alist
                                 'rmail-mode
                                 (function tm-rmail/quitting-method))
                      )))
 
 
+;;; @ for tm-partial
+;;;
+
+(call-after-loaded
+ 'tm-partial
+ (function
+  (lambda ()
+    (set-atype 'mime/content-decoding-condition
+              '((type . "message/partial")
+                (method . mime-article/grab-message/partials)
+                (major-mode . rmail-mode)
+                (summary-buffer-exp
+                 . (progn
+                     (rmail-summary)
+                     (pop-to-buffer rmail-buffer)
+                     rmail-summary-buffer))
+                ))
+    (set-alist 'tm-partial/preview-article-method-alist
+              'rmail-mode
+              (function
+               (lambda ()
+                 (rmail-summary-goto-msg (count-lines 1 (point)))
+                 (pop-to-buffer rmail-buffer)
+                 (tm-rmail/view-message)
+                 )))
+    )))
+
+
 ;;; @ end
 ;;;
 
index 7af896f..cddb11f 100644 (file)
--- a/tm-tar.el
+++ b/tm-tar.el
@@ -1,5 +1,5 @@
 ;;;
-;;; $Id: tm-tar.el,v 1.2 1995/10/07 21:47:24 H.Ueno Exp $
+;;; $Id: tm-tar.el,v 1.22 1995/10/21 15:34:33 H.Ueno Exp $
 ;;;
 ;;; tm-tar.el
 ;;;
@@ -10,6 +10,7 @@
 ;;;    - aplication/octet-stream, type="tar+gzip"
 ;;;
 ;;; by Hiroshi Ueno <zodiac@ibm.net>
+;;;    modified by Tomohiko Morioka <morioka@jaist.ac.jp>
 ;;;
 
 ;;; @ required modules
 (defvar tm-tar/mmencode-program "mmencode")
 (defvar tm-tar/uudecode-program "uudecode")
 
-(defvar tm-tar/show-popup-menu (>= emacs-major-version 19)
-  "*if non nil, TAR Mode popup menu will be shown to select an action.
-if nil, a selected file will be shown in a buffer")
-
 (defvar tm-tar/popup-menu-items
-  '(("View File"      . tm-tar/view-file)
-    ("Key Help"       . tm-tar/helpful-message)
-    ("Quit TAR Mode"  . exit-recursive-edit)
+  '(("View File"         . tm-tar/view-file)
+    ("Key Help"          . tm-tar/helpful-message)
+    ("Quit tm-tar Mode"  . exit-recursive-edit)
     ))
 
 (cond ((string-match "XEmacs\\|Lucid" emacs-version)
        (defvar tm-tar/popup-menu
         (cons tm-tar/popup-menu-title
-              (mapcar (function
+               (mapcar (function
                        (lambda (item)
                          (vector (car item)(cdr item) t)
                          ))
-                      tm-tar/popup-menu-items)))
-       
-       (defun tm-tar/mouse-button-2 ()
-        (if tm-tar/show-popup-menu
-            (popup-menu tm-tar/popup-menu)
-          (tm-tar/view-file)
-          ))
+                        tm-tar/popup-menu-items)))
+
+       (defun tm-tar/mouse-button-2 (event)
+          (popup-menu tm-tar/popup-menu)
+          )
        )
       ((>= emacs-major-version 19)
-       (defun tm-tar/mouse-button-2 ()
+       (defun tm-tar/mouse-button-2 (event)
         (let ((menu
                (cons tm-tar/popup-menu-title
-                     (list (cons "Menu Items" tm-tar/popup-menu-items))
-                     )))
-          (if tm-tar/show-popup-menu
-              (let ((func (x-popup-menu last-input-event menu)))
+                       (list (cons "Menu Items" tm-tar/popup-menu-items))
+                       )))
+          (let ((func (x-popup-menu event menu)))
                 (if func
                     (funcall func)
                   ))
-            (tm-tar/view-file)
-            )))
+            ))
        ))
 
 (defvar tm-tar/tar-mode-map nil)
@@ -92,9 +85,9 @@ if nil, a selected file will be shown in a buffer")
     (define-key tm-tar/tar-mode-map "\C-h"    'Helper-help)
     (define-key tm-tar/tar-mode-map "?"       'tm-tar/helpful-message)
     (if mouse-button-2
-        (define-key tm-tar/tar-mode-map
-                               mouse-button-2 'tm:button-dispatcher)
-        )
+       (define-key tm-tar/tar-mode-map
+                                 mouse-button-2 'tm:button-dispatcher)
+       )
   )
 
 ;;; @@ tm-tar mode functions
@@ -103,31 +96,31 @@ if nil, a selected file will be shown in a buffer")
 (defun tm-tar/tar-mode (&optional prev-buf)
   "Major mode for listing the contents of a tar archive file."
     (unwind-protect
-        (let ((buffer-read-only t)
-              (mode-name "tm-tar")
-              (mode-line-buffer-identification '("%17b"))
-              )
-            (goto-char (point-min))
-            (tm-tar/move-to-filename)
-            (catch 'tm-tar/tar-mode (tm-tar/command-loop))
-         )
-        (if prev-buf
-            (switch-to-buffer prev-buf)
-         )
+       (let ((buffer-read-only t)
+             (mode-name "tm-tar")
+             (mode-line-buffer-identification '("%17b"))
+             )
+           (goto-char (point-min))
+           (tm-tar/move-to-filename)
+           (catch 'tm-tar/tar-mode (tm-tar/command-loop))
+        )
+       (if prev-buf
+           (switch-to-buffer prev-buf)
+        )
      ))
 
 (defun tm-tar/command-loop ()
     (let ((old-local-map (current-local-map))
-          )
-        (unwind-protect
-            (progn
-                (use-local-map tm-tar/tar-mode-map)
-                (tm-tar/helpful-message)
-                (recursive-edit)
-             )
-            (save-excursion
-                (use-local-map old-local-map)
-             ))
+         )
+       (unwind-protect
+           (progn
+               (use-local-map tm-tar/tar-mode-map)
+               (tm-tar/helpful-message)
+               (recursive-edit)
+            )
+           (save-excursion
+               (use-local-map old-local-map)
+            ))
      ))
 
 (defun tm-tar/next-line ()
@@ -145,148 +138,161 @@ if nil, a selected file will be shown in a buffer")
 (defun tm-tar/view-file ()
     (interactive)
     (let ((name (tm-tar/get-filename))
-          )
+         )
       (save-excursion
-          (switch-to-buffer tm-tar/view-buffer)
-          (setq buffer-read-only nil)
-          (erase-buffer)
-          (message "Reading a file from an archive. Please wait...")
-          (apply 'call-process tm-tar/tar-program
-                       nil t nil (append tm-tar/view-args (list name)))
-          (goto-char (point-min))
+         (switch-to-buffer tm-tar/view-buffer)
+         (setq buffer-read-only nil)
+         (erase-buffer)
+         (message "Reading a file from an archive. Please wait...")
+         (apply 'call-process tm-tar/tar-program
+                        nil t nil (append tm-tar/view-args (list name)))
+         (goto-char (point-min))
        )
-        (view-buffer tm-tar/view-buffer)
+       (view-buffer tm-tar/view-buffer)
      ))
 
 (defun tm-tar/get-filename ()
     (let (eol)
-        (save-excursion
-            (end-of-line)
-            (setq eol (point))
-            (beginning-of-line)
-            (save-excursion
-                (if (re-search-forward "^d" eol t)
-                       (error "Cannot view a directory"))
-             )
-            (if (re-search-forward tm-tar/file-search-regexp eol t)
-                     (progn (let ((beg (point))
-                                  )
-                                (skip-chars-forward "^ \n")
-                                (buffer-substring beg (point))
-                             ))
-                     (error "No file on this line")
-             ))
+       (save-excursion
+           (end-of-line)
+           (setq eol (point))
+           (beginning-of-line)
+           (save-excursion
+               (if (re-search-forward "^d" eol t)
+                        (error "Cannot view a directory"))
+            )
+           (if (re-search-forward tm-tar/file-search-regexp eol t)
+                    (progn (let ((beg (point))
+                                 )
+                               (skip-chars-forward "^ \n")
+                               (buffer-substring beg (point))
+                               ))
+                    (error "No file on this line")
+            ))
      ))
 
 (defun tm-tar/move-to-filename ()
     (let ((eol (progn (end-of-line) (point)))
-          )
-        (beginning-of-line)
-        (re-search-forward tm-tar/file-search-regexp eol t)
+         )
+       (beginning-of-line)
+       (re-search-forward tm-tar/file-search-regexp eol t)
      ))
 
 (defun tm-tar/set-properties ()
     (if mouse-button-2
-        (let ((beg (point-min))
-              (end (point-max))
-              )
-            (goto-char beg)
-            (save-excursion
-                (while (re-search-forward tm-tar/file-search-regexp end t)
-                    (tm:add-button (point)
-                                       (progn
-                                           (end-of-line)
-                                           (point))
-                                       'tm-tar/mouse-button-2)
-                 ))
-         )))
+       (let ((beg (point-min))
+             (end (point-max))
+             )
+           (goto-char beg)
+           (save-excursion
+               (while (re-search-forward tm-tar/file-search-regexp end t)
+                   (tm:add-button (point)
+                                          (progn
+                                               (end-of-line)
+                                               (point))
+                                          'tm-tar/view-file)
+                ))
+        )))
 
 (defun tm-tar/helpful-message ()
     (interactive)
     (message "Type %s, %s, %s, %s, %s, %s."
-        (substitute-command-keys "\\[Helper-help] for help")
-        (substitute-command-keys "\\[tm-tar/helpful-message] for keys")
-        (substitute-command-keys "\\[tm-tar/next-line] to next")
-        (substitute-command-keys "\\[tm-tar/previous-line] to prev")
-        (substitute-command-keys "\\[tm-tar/view-file] to view")
-        (substitute-command-keys "\\[exit-recursive-edit] to quit")
+       (substitute-command-keys "\\[Helper-help] for help")
+       (substitute-command-keys "\\[tm-tar/helpful-message] for keys")
+       (substitute-command-keys "\\[tm-tar/next-line] to next")
+       (substitute-command-keys "\\[tm-tar/previous-line] to prev")
+       (substitute-command-keys "\\[tm-tar/view-file] to view")
+       (substitute-command-keys "\\[exit-recursive-edit] to quit")
+     ))
+
+(defun tm-tar/y-or-n-p (prompt)
+    (prog1
+       (y-or-n-p prompt)
+       (message "")
      ))
 
 ;;; @@ tar message decoder
 ;;
 
 (defun mime/decode-message/tar (beg end cal)
-    (let ((coding (cdr (assoc 'encoding cal)))
-          (cur-buf (current-buffer))
-          (tm-tar/tar-file-name (expand-file-name (concat (make-temp-name
-                      (expand-file-name "tm" mime/tmp-dir)) ".tar")))
-          (tm-tar/tmp-file-name (expand-file-name (make-temp-name
-                      (expand-file-name "tm" mime/tmp-dir))))
-          new-buf
-          )
-        (find-file tm-tar/tmp-file-name)
-        (setq new-buf (current-buffer))
-        (setq buffer-read-only nil)
-        (erase-buffer)
-        (save-excursion
-            (set-buffer cur-buf)
-            (goto-char beg)
-            (re-search-forward "^$")
-            (append-to-buffer new-buf (+ (match-end 0) 1) end)
-         )
-        (if (member coding mime-viewer/uuencode-encoding-name-list)
-            (progn
-                (goto-char (point-min))
-                (if (re-search-forward "^begin [0-9]+ " nil t)
-                    (progn
-                        (kill-line)
-                        (insert tm-tar/tar-file-name)
-                     )
-                    (progn
-                        (set-buffer-modified-p nil)
-                        (kill-buffer new-buf)
-                        (error "uuencode file signature was not found")
-                     ))))
-        (save-buffer)
-        (kill-buffer new-buf)
-        (message "Listing the contents of an archive.  Please wait...")
-        (cond ((string-equal coding "base64")
-                 (call-process tm-tar/mmencode-program nil nil nil "-u"
-                             "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
-                )
-              ((string-equal coding "quoted-printable")
-                 (call-process tm-tar/mmencode-program nil nil nil "-u" "-q"
-                             "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
-                )
-              ((member coding mime-viewer/uuencode-encoding-name-list)
-                 (call-process tm-tar/uudecode-program nil nil nil
-                             tm-tar/tmp-file-name)
-                )
-              (t
-                 (copy-file tm-tar/tmp-file-name tm-tar/tar-file-name t)
-                ))
-        (delete-file tm-tar/tmp-file-name)
-        (setq tm-tar/list-args (list "-tvf" tm-tar/tar-file-name))
-        (setq tm-tar/view-args (list "-xOf" tm-tar/tar-file-name))
-        (if (eq 0 (call-process tm-tar/gzip-program
-                            nil nil nil "-t" tm-tar/tar-file-name))
-            (progn
-                (setq tm-tar/list-args
-                      (append tm-tar/tar-decompress-arg tm-tar/list-args))
-                (setq tm-tar/view-args
-                      (append tm-tar/tar-decompress-arg tm-tar/view-args))
-             ))
-        (switch-to-buffer tm-tar/view-buffer)
-        (switch-to-buffer tm-tar/list-buffer)
-        (setq buffer-read-only nil)
-        (erase-buffer)
-        (apply 'call-process tm-tar/tar-program
-                             nil t nil tm-tar/list-args)
-        (tm-tar/set-properties)
-        (tm-tar/tar-mode mime::article/preview-buffer)
-        (kill-buffer tm-tar/view-buffer)
-        (kill-buffer tm-tar/list-buffer)
-        (delete-file tm-tar/tar-file-name)
+    (if (tm-tar/y-or-n-p "Do you want to enter tm-tar mode? ")
+       (let ((coding (cdr (assoc 'encoding cal)))
+             (cur-buf (current-buffer))
+             (tm-tar/tar-file-name (expand-file-name (concat (make-temp-name
+                       (expand-file-name "tm" mime/tmp-dir)) ".tar")))
+             (tm-tar/tmp-file-name (expand-file-name (make-temp-name
+                       (expand-file-name "tm" mime/tmp-dir))))
+             new-buf
+             )
+           (find-file tm-tar/tmp-file-name)
+           (setq new-buf (current-buffer))
+           (setq buffer-read-only nil)
+           (erase-buffer)
+           (save-excursion
+                (set-buffer cur-buf)
+               (goto-char beg)
+               (re-search-forward "^$")
+               (append-to-buffer new-buf (+ (match-end 0) 1) end)
+            )
+           (if (member coding mime-viewer/uuencode-encoding-name-list)
+               (progn
+                   (goto-char (point-min))
+                   (if (re-search-forward "^begin [0-9]+ " nil t)
+                       (progn
+                           (kill-line)
+                           (insert tm-tar/tar-file-name)
+                        )
+                       (progn
+                           (set-buffer-modified-p nil)
+                           (kill-buffer new-buf)
+                           (error "uuencode file signature was not found")
+                        ))))
+           (save-buffer)
+           (kill-buffer new-buf)
+           (message "Listing the contents of an archive.  Please wait...")
+           (cond ((string-equal coding "base64")
+                  (call-process tm-tar/mmencode-program nil nil nil "-u"
+                               "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
+                  )
+                 ((string-equal coding "quoted-printable")
+                  (call-process tm-tar/mmencode-program nil nil nil "-u" "-q"
+                               "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
+                  )
+                 ((member coding mime-viewer/uuencode-encoding-name-list)
+                  (call-process tm-tar/uudecode-program nil nil nil
+                               tm-tar/tmp-file-name)
+                  )
+                 (t
+                  (copy-file tm-tar/tmp-file-name tm-tar/tar-file-name t)
+                  ))
+           (delete-file tm-tar/tmp-file-name)
+           (setq tm-tar/list-args (list "-tvf" tm-tar/tar-file-name))
+           (setq tm-tar/view-args (list "-xOf" tm-tar/tar-file-name))
+           (if (eq 0 (call-process tm-tar/gzip-program
+                           nil nil nil "-t" tm-tar/tar-file-name))
+               (progn
+                   (setq tm-tar/list-args
+                         (append tm-tar/tar-decompress-arg tm-tar/list-args))
+                   (setq tm-tar/view-args
+                         (append tm-tar/tar-decompress-arg tm-tar/view-args))
+                ))
+           (switch-to-buffer tm-tar/view-buffer)
+           (switch-to-buffer tm-tar/list-buffer)
+           (setq buffer-read-only nil)
+           (erase-buffer)
+           (apply 'call-process tm-tar/tar-program
+                  nil t nil tm-tar/list-args)
+           (if mouse-button-2
+                (progn
+                   (make-local-variable 'tm:mother-button-dispatcher)
+                   (setq tm:mother-button-dispatcher 'tm-tar/mouse-button-2)
+                ))
+           (tm-tar/set-properties)
+           (tm-tar/tar-mode mime::article/preview-buffer)
+           (kill-buffer tm-tar/view-buffer)
+           (kill-buffer tm-tar/list-buffer)
+           (delete-file tm-tar/tar-file-name)
+        )
      ))
 
 ;;; @@ program/buffer coding system
@@ -303,30 +309,36 @@ if nil, a selected file will be shown in a buffer")
 ;;;
 
 (set-atype 'mime/content-decoding-condition
-           '((type . "application/octet-stream")
-             (method . mime/decode-message/tar)
-             (mode . "play") ("type" . "tar")
-             ))
+          '((type . "application/octet-stream")
+            (method . mime/decode-message/tar)
+            (mode . "play") ("type" . "tar")
+            ))
 
 (set-atype 'mime/content-decoding-condition
-           '((type . "application/octet-stream")
-             (method . mime/decode-message/tar)
-             (mode . "play") ("type" . "tar+gzip")
-             ))
+          '((type . "application/octet-stream")
+            (method . mime/decode-message/tar)
+            (mode . "play") ("type" . "tar+gzip")
+            ))
 
 (set-atype 'mime/content-decoding-condition
-           '((type . "application/x-gzip")
-             (method . mime/decode-message/tar)
-             (mode . "play") ("type" . "tar")
-             ))
+          '((type . "application/x-gzip")
+            (method . mime/decode-message/tar)
+            (mode . "play") ("type" . "tar")
+            ))
 
 (set-atype 'mime/content-decoding-condition
-           '((type . "application/x-tar")
-             (method . mime/decode-message/tar)
-             (mode . "play")
-             ))
+          '((type . "application/x-tar")
+            (method . mime/decode-message/tar)
+            (mode . "play")
+            ))
 
 ;;; @ end
 ;;;
 
 (provide 'tm-tar)
+
+;;; Local Variables:
+;;; mode: emacs-lisp
+;;; mode: outline-minor
+;;; outline-regexp: ";;; @+\\|(......"
+;;; End:
index ed6a732..c50f8d6 100644 (file)
@@ -25,7 +25,7 @@
 ;;;
 
 (defconst mime-viewer/RCS-ID
-  "$Id: tm-view.el,v 7.18 1995/10/20 10:41:59 morioka Exp $")
+  "$Id: tm-view.el,v 7.19 1995/10/23 09:27:13 morioka Exp $")
 
 (defconst mime-viewer/version (get-version-string mime-viewer/RCS-ID))
 (defconst mime/viewer-version mime-viewer/version)
@@ -62,7 +62,7 @@
     ;;        "-e" "showexternal"
     ;;         'file '"access-type" '"name" '"site" '"directory"))
     ((type . "message/partial")
-     (method . mime/decode-message/partial-region))
+     (method . mime-article/decode-message/partial))
     ((method "metamail" t
             "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
     ((method "tm-file"  nil 'file 'type 'encoding 'mode 'name)
index e561fb8..0c2479a 100644 (file)
--- a/tm-vm.el
+++ b/tm-vm.el
@@ -7,6 +7,7 @@
 ;;;          and Kenji Wakamiya <wkenji@flab.fujitsu.co.jp>
 ;;;          modified by SHIONO <jun@p5.nm.fujitsu.co.jp>,
 ;;;                Steinar Bang <steinarb@falch.no>,
+;;;            Shuhei KOBAYASHI <shuhei@cmpt01.phys.tohoku.ac.jp>,
 ;;;        and MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Keywords: news, MIME, multimedia, multilingual, encoded-word
 ;;;
@@ -21,7 +22,7 @@
 (require 'vm)
 
 (defconst tm-vm/RCS-ID
-  "$Id: tm-vm.el,v 7.1 1995/10/17 16:49:51 morioka Exp $")
+  "$Id: tm-vm.el,v 7.2 1995/10/22 13:17:12 morioka Exp $")
 (defconst tm-vm/version (get-version-string tm-vm/RCS-ID))
 
 (define-key vm-mode-map "Z" 'tm-vm/view-message)
@@ -36,7 +37,7 @@
           'tm-vm/quit-view-message)
 
 
-;;; @ for MIME header
+;;; @ for MIME encoded-words
 ;;;
 ;; If you don't use tiny-mime patch for VM (by RIKITAKE Kenji
 ;; <kenji@reseau.toyonaka.osaka.jp>), please use following definition:
@@ -137,6 +138,28 @@ all marked messages are affected, other messages are ignored."
        (setq vbufs (cdr vbufs))))))
 
 
+;;; @ for tm-partial
+;;;
+
+(call-after-loaded
+ 'tm-partial
+ (function
+  (lambda ()
+    (set-atype 'mime/content-decoding-condition
+              '((type . "message/partial")
+                (method . mime-article/grab-message/partials)
+                (major-mode . vm-mode)
+                (summary-buffer-exp . vm-summary-buffer)
+                ))
+    (set-alist 'tm-partial/preview-article-method-alist
+              'vm-mode
+              (function
+               (lambda ()
+                 (tm-vm/view-message)
+                 )))
+    )))
+
+
 ;;; @ end
 ;;;