--- /dev/null
+* 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.
+----------------------------
--- /dev/null
+* 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
+----------------------------
FILES = $(TM_FILES) $(TM_MUA_FILES) $(MEL_FILES) $(TL_FILES)
-TARFILE = tm7.18.tar
+TARFILE = tm7.19.tar
nemacs:
FILES = tm/gnus/*.el tm/doc/tm-gnus*.texi
-TARFILE = tm-gnus7.05.tar
+TARFILE = tm-gnus7.09.tar
gnus3:
;;; -*-Emacs-Lisp-*-
(require 'emu)
+(require 'tm-partial)
(defun compile-tm-gnus ()
(require 'gnus)
;;;
(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
;;;
;;;
(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
;;;
;;;
(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"))
))
+;;; @ 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
;;;
;;;
(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"))
(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 ()
))
+;;; @ 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
;;;
(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)
))
+;;; @ 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
;;;
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:
;;;
(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))
))
+;;; @ 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
;;;
"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"
))
;;; 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)
;;;
;;; 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))
;;;
;;; 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
;;;
;;;
-;;; $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
;;;
;;; - 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)
(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
(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 ()
(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
;;;
(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:
;;;
(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)
;; "-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)
;;; 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
;;;
(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)
'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:
(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
;;;