[mew-dist 18564] Re: fancy-thread and scan-form
Takashi P.KATOH
p-katoh at example.com
2001年 8月 21日 (火) 10:30:18 JST
From: SUGIMORI (杉森 隆行) <taro at example.com>
Subject: [mew-dist 18561] Re: fancy-thread and scan-form
Date: Mon, 20 Aug 2001 20:16:57 +0900 (JST)
>>> :::Thread 表示の時
>>> 4 08/07 1k "Momoko Ono" < プレゼン&のみかい
>>> 5 08/07 1k Hideo Sato┗/佐 Re: プレゼン&のみかい
>>>
...
> (setq mew-thread-column 34) ← 数字は自分の環境に合わせて
これって、人間が計算して設定すべきものと違うような気がします。
ということで、場所を指示できるようにするためのパッチです。
(setq mew-scan-form
'(type (5 date) " " (18 from) " " col (0 subj)))
のようにスレッドで段付けしたい位置に `col' を入れると、その
場所を計算してそれを mew-thread-column のかわりに使います。
優先順位は
(1) mew-scan-form-list の中で明示的に指定されていればそれ
(2) mew-scan-form-list or mew-scan-form に col があればその
場所
(3) mew-thread-column の値
になります。
--
かとぺ / 加藤 貴司
不許全文引用
-------------- next part --------------
--- mew-cvs/mew-scan.el Mon Aug 20 13:32:18 2001
+++ mew-scan.el Tue Aug 21 10:18:55 2001
@@ -313,7 +313,11 @@
(throw 'loop (setq ret values))))))))
(cond
(column
- (if (and ret (numberp (nth 1 ret))) (nth 1 ret) mew-thread-column))
+ ;; mew-scan-form-list-list > sep > mew-thread-column
+ (if (and ret (numberp (nth 1 ret))) (nth 1 ret)
+ (or
+ (mew-scan-thread-column (if ret (nth 0 ret) mew-scan-form))
+ mew-thread-column)))
(t
(if ret
(setq form (nth 0 ret))
@@ -328,6 +332,25 @@
(if (integerp (car form))
(cons (list (car form) 'num) (cons 'mark (cdr form)))
(append mew-scan-form-header form)))
+
+(defun mew-scan-thread-column (scan-form)
+ "Return the position of `col' in SCAN-FORM, or nil if not found."
+ (let ((form (mew-summary-final-scan-form scan-form))
+ col (thread-col 0) found)
+ (while (and form (not found))
+ (setq col (car form))
+ (setq form (cdr form))
+ (if (eq col 'col)
+ (setq found t)
+ (setq thread-col
+ (+ thread-col
+ (cond
+ ((listp col) (abs (car col)))
+ ((stringp col) (length col))
+ ;; assume the length of solely specified
+ ;; symbol (type, mark etc.) is 1.
+ (t 1))))))
+ (if found thread-col nil)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
Mew-dist メーリングリストの案内