[Mew-dist 1335] thread

MATSUI N. chousan chousan at example.com
1997年 7月 29日 (火) 09:31:14 JST


  松井@東大です。mew-1.87 & im-48 を使っています。

# mew-dist のシステム変更に紛れて消え去ってしまったようなので、しつこ
# いかもしれませんが、修整して再投稿します。同内容のメールを既に受けとっ
# ていたら、すいません。

  メールの一覧で thread 表示ができるようになったのは嬉しいのですが、
  summary mode で thread の on/off を切り換えたいことが結構あります。
  で、't' キーで切り換えを行なうパッチを適当に作成して、とりあえず使っ
  てみています。すごく簡単なパッチなので添付してみます。

  が、かなりダサダサで、もう少しちゃんと考えないと実用にはならない感じ
  です。多数のメールがあるフォルダーで実行すると遅いのは、
  .mew-cache-thread を作って cache するということも考えましたが、そも
  そも thread の処理は imls でやるのが良いか、imsort --mode reference
  的に処理するのが良いのか、仕様が固まらないので改良できない状態です。

  というわけで、何か良いアイディアはないでしょうか。まあ、thread の 
  on/off を動的に切り換えたいと思う人が他にいないなら、しょうがないで
  すが。

(|-|<>(_)
松井長隆@東京大学                mailto:chousan at example.com
PGP Key fingerprint = 91 5D CE 3A 5C B4 F5 2F  48 5E 20 58 59 1C F6 6D


--- mew-scan.el.orig	Mon Jul 28 11:53:32 1997
+++ mew-scan.el	Mon Jul 28 15:10:38 1997
@@ -104,7 +104,10 @@
 			   (cond
 			    ((equal mode 'mew-summary-mode)
 			     (append
-			      (list (concat "--src=" folder))
+			      (list (concat "--src=" folder)
+				    (concat "--thread="
+					    (if mew-summary-buffer-disp-thread
+						"on" "off")))
 			      mew-prog-imls-arg-list
 			      (if (listp (car range))
 				  (car range)
--- mew-summary.el.orig	Mon Jul 28 12:21:53 1997
+++ mew-summary.el	Mon Jul 28 15:10:03 1997
@@ -137,6 +137,7 @@
   (define-key mew-summary-mode-map "\es"  'mew-summary-unshar)
   (define-key mew-summary-mode-map "v"    'mew-summary-toggle-disp-msg)
   (define-key mew-summary-mode-map "\ea"  'mew-summary-toggle-analysis)
+  (define-key mew-summary-mode-map "t"    'mew-summary-toggle-disp-thread)
   (define-key mew-summary-mode-map "\C-c\C-x" 'mew-summary-x-face)
   (define-key mew-summary-mode-map "\C-c\C-q" 'mew-kill-buffer)
   ;;
@@ -695,6 +696,26 @@
 	(mew-summary-display)
       (mew-decode-syntax-delete) ;; xxx 
       (mew-window-configure (current-buffer) 'summary)))))
+
+(defun mew-summary-toggle-disp-thread (&optional arg)
+  (interactive)
+  (let ((folder (buffer-name)))
+    (mew-mark-clean-up)
+    (cond 
+     ((equal arg 'on)
+      (setq mew-summary-buffer-disp-thread t))
+     ((equal arg 'off)
+      (setq mew-summary-buffer-disp-thread nil))
+     (t
+      (setq mew-summary-buffer-disp-thread
+	    (not mew-summary-buffer-disp-thread))
+      (let ((buffer-read-only nil)) (erase-buffer))
+      (mew-summary-scan-body mew-prog-imls
+			     'mew-summary-mode
+			     folder
+			     mew-cs-scan
+			     )
+      ))))
 
 (defun mew-summary-display (&optional notforce)
   (interactive)
--- mew.el.orig	Mon Jul 28 12:22:45 1997
+++ mew.el	Mon Jul 28 15:08:18 1997
@@ -361,6 +361,7 @@
 (defvar mew-summary-buffer-folder-cache-time nil)
 (defvar mew-summary-buffer-refile nil)
 (defvar mew-summary-buffer-disp-msg t)
+(defvar mew-summary-buffer-disp-thread nil)
 (defvar mew-summary-buffer-left-msgs "-")
 (defvar mew-watch-buffer-process nil)
 (defvar mew-draft-buffer-header nil)




Mew-dist メーリングリストの案内