From 526ddb4bf4c4322f57c55a0d62b14138aca77e33 Mon Sep 17 00:00:00 2001 From: morioka Date: Mon, 9 Mar 1998 11:16:24 +0000 Subject: [PATCH] tm 7.19. --- Changes-7.19.en | 139 ++++++++++++++++++++ Changes-7.19.ja | 138 ++++++++++++++++++++ Makefile | 2 +- gnus/Makefile | 2 +- gnus/mk-tgnus | 1 + gnus/tm-gnus3.el | 25 +++- gnus/tm-gnus4.el | 25 +++- gnus/tm-gnus5.el | 25 +++- gnus/tm-sgnus.el | 43 ++++++- mh-e/Makefile | 2 +- mh-e/tm-mh-e.el | 30 ++++- mk-tm | 2 +- tm-partial.el | 257 ++++++++++--------------------------- tm-play.el | 4 +- tm-rmail.el | 32 ++++- tm-tar.el | 374 ++++++++++++++++++++++++++++-------------------------- tm-view.el | 4 +- tm-vm.el | 27 +++- 18 files changed, 744 insertions(+), 388 deletions(-) create mode 100644 Changes-7.19.en create mode 100644 Changes-7.19.ja diff --git a/Changes-7.19.en b/Changes-7.19.en new file mode 100644 index 0000000..5b86e6f --- /dev/null +++ b/Changes-7.19.en @@ -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 index 0000000..2928e36 --- /dev/null +++ b/Changes-7.19.ja @@ -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 +関数 mime/decode-message/partial-region を +`mime-article/decode-message/partial' に改名した。 +---------------------------- +revision 7.8 +date: 1995/10/22 14:28:50; author: morioka; state: Exp; lines: +12 -71 +番号等の check を行うのを止めた。 +---------------------------- +revision 7.7 +date: 1995/10/22 13:13:39; author: morioka; state: Exp; lines: +1 -19 +VM 用の設定を tm-vm.el に移した。 +---------------------------- +revision 7.6 +date: 1995/10/22 12:51:23; author: morioka; state: Exp; lines: +1 -22 +mh-e 用の設定を tm-mh-e.el に移した。 +---------------------------- +revision 7.5 +date: 1995/10/22 12:37:34; author: morioka; state: Exp; lines: +3 -19 +September Gnus および Gnus 5.0.* with September patch 用の設定を +tm-sgnus.el に移した。 +---------------------------- +revision 7.4 +date: 1995/10/22 12:08:45; author: morioka; state: Exp; lines: +1 -16 +GNUS 4 用の設定を tm-gnus4.el に移した。 +---------------------------- +revision 7.3 +date: 1995/10/22 12:01:35; author: morioka; state: Exp; lines: +1 -16 +GNUS 3.* 用の設定を tm-gnus3.el に移した。 +---------------------------- +revision 7.2 +date: 1995/10/22 11:56:28; author: morioka; state: Exp; lines: +17 -11 +変数 tm-partial/display-article-method-alist を +`tm-partial/preview-article-method-alist' に、関数 +tm-partial/display-article を `tm-partial/preview-article' に改名した。 +---------------------------- +revision 7.1 +date: 1995/10/22 10:22:30; author: morioka; state: Exp; lines: +117 -99 +実装を大幅に修正した。 +(1) Summary における Subject 検索の条件を緩めた。 +(2) tm-view の message/partial 用の method を利用するようにした。 +(3) 各 MUA 用の設定を関数本体から分離した。 +---------------------------- + +tm/tm-play.el +---------------------------- +revision 2.0 +date: 1995/10/23 09:26:41; author: morioka; state: Exp; lines: +2 -2 +関数 mime/decode-message/partial-region を +`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 +tm-partial 用の設定を追加した。 +---------------------------- +revision 7.2 +date: 1995/10/22 15:42:46; author: morioka; state: Exp; lines: +2 -2 +quitting method の設定における不具合を修正した。 +---------------------------- + +tm/tm-view.el +---------------------------- +revision 7.19 +date: 1995/10/23 09:27:13; author: morioka; state: Exp; lines: +2 -2 +関数 mime/decode-message/partial-region を +`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 +tm-partial 用の設定を行った。 +---------------------------- + + +* tm/mh-e + + 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 +tm-partial 用の設定を追加した。 +---------------------------- + + +* tm/gnus + + 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 +tm-partial 用の設定を行った。 +---------------------------- + +tm/gnus/tm-gnus4.el +---------------------------- +revision 7.0 +date: 1995/10/22 12:12:56; author: morioka; state: Exp; lines: +24 -1 +tm-partial 用の設定を行った。 +---------------------------- + +tm/gnus/tm-gnus5.el +---------------------------- +revision 7.4 +date: 1995/10/22 12:13:50; author: morioka; state: Exp; lines: +24 -1 +tm-partial 用の設定を行った。 +---------------------------- + +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 を設けた。 +---------------------------- +revision 7.8 +date: 1995/10/23 08:55:03; author: morioka; state: Exp; lines: +11 -1 +BBDB 対策用の code を入れた。 +---------------------------- +revision 7.7 +date: 1995/10/22 14:38:08; author: morioka; state: Exp; lines: +5 -6 +tm-partial での不具合を修正した。 +---------------------------- +revision 7.6 +date: 1995/10/22 12:37:59; author: morioka; state: Exp; lines: +23 -1 +tm-partial 用の設定を行った。 +---------------------------- diff --git a/Makefile b/Makefile index 67e501f..6d74d23 100644 --- 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: diff --git a/gnus/Makefile b/gnus/Makefile index 8da6199..cf062b7 100644 --- a/gnus/Makefile +++ b/gnus/Makefile @@ -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: diff --git a/gnus/mk-tgnus b/gnus/mk-tgnus index 7a95247..8adb000 100644 --- a/gnus/mk-tgnus +++ b/gnus/mk-tgnus @@ -1,6 +1,7 @@ ;;; -*-Emacs-Lisp-*- (require 'emu) +(require 'tm-partial) (defun compile-tm-gnus () (require 'gnus) diff --git a/gnus/tm-gnus3.el b/gnus/tm-gnus3.el index a822014..a33cd87 100644 --- a/gnus/tm-gnus3.el +++ b/gnus/tm-gnus3.el @@ -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")) @@ -56,6 +56,29 @@ ))) +;;; @ 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 ;;; diff --git a/gnus/tm-gnus4.el b/gnus/tm-gnus4.el index a01dcee..d7d41f1 100644 --- a/gnus/tm-gnus4.el +++ b/gnus/tm-gnus4.el @@ -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")) @@ -56,6 +56,29 @@ ))) +;;; @ 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 ;;; diff --git a/gnus/tm-gnus5.el b/gnus/tm-gnus5.el index 5b0cff0..b4cc192 100644 --- a/gnus/tm-gnus5.el +++ b/gnus/tm-gnus5.el @@ -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 ;;; diff --git a/gnus/tm-sgnus.el b/gnus/tm-sgnus.el index c096b72..038929f 100644 --- a/gnus/tm-sgnus.el +++ b/gnus/tm-sgnus.el @@ -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 ;;; diff --git a/mh-e/Makefile b/mh-e/Makefile index c3d8415..d0fff22 100644 --- a/mh-e/Makefile +++ b/mh-e/Makefile @@ -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: diff --git a/mh-e/tm-mh-e.el b/mh-e/tm-mh-e.el index 1f9c2c7..db58b37 100644 --- a/mh-e/tm-mh-e.el +++ b/mh-e/tm-mh-e.el @@ -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 --- 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" )) diff --git a/tm-partial.el b/tm-partial.el index 6b895b3..3cb2f87 100644 --- a/tm-partial.el +++ b/tm-partial.el @@ -4,213 +4,94 @@ ;;; Grabbing all MIME "message/partial"s. ;;; by Yasuo OKABE @ Kyoto University 1994 ;;; modified by MORIOKA Tomohiko -;;; and Shuhei KOBAYASHI ;;; ;;; 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) diff --git a/tm-play.el b/tm-play.el index d077b9d..4956b4f 100644 --- a/tm-play.el +++ b/tm-play.el @@ -6,7 +6,7 @@ ;;; ;;; Author: MORIOKA Tomohiko ;;; 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). @@ -176,7 +176,7 @@ ;;; @ 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)) diff --git a/tm-rmail.el b/tm-rmail.el index 24428b3..824ee3f 100644 --- a/tm-rmail.el +++ b/tm-rmail.el @@ -4,7 +4,7 @@ ;;; ;;; Author: MORIOKA Tomohiko ;;; 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). @@ -79,12 +79,40 @@ (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 ;;; diff --git a/tm-tar.el b/tm-tar.el index 7af896f..cddb11f 100644 --- 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 +;;; modified by Tomohiko Morioka ;;; ;;; @ required modules @@ -35,44 +36,36 @@ (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: diff --git a/tm-view.el b/tm-view.el index ed6a732..c50f8d6 100644 --- a/tm-view.el +++ b/tm-view.el @@ -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) diff --git a/tm-vm.el b/tm-vm.el index e561fb8..0c2479a 100644 --- a/tm-vm.el +++ b/tm-vm.el @@ -7,6 +7,7 @@ ;;; and Kenji Wakamiya ;;; modified by SHIONO , ;;; Steinar Bang , +;;; Shuhei KOBAYASHI , ;;; and MORIOKA Tomohiko ;;; 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 ;; ), 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 ;;; -- 1.7.10.4