[Mew-dist 17876] thread patch (was: mew-use-thread-cursor doesn not work)

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2001年 6月 22日 (金) 16:33:26 JST


# コードフリーズの宣言が出ましたが、バグといえばバグだし、せっか
# く作っちゃったので提出しておきます。^^;;;

From: Tak Ota <Takaaki.Ota at example.com> さん曰く
Subject: [Mew-dist 17850] mew-use-thread-cursor doesn not work
Message-ID: <20010620.234504.91279258.Takaaki.Ota at example.com>
Date: Thu, 21 Jun 2001 15:45:29 +0900

太田>   (setq mew-fancy-thread-indent-strings [" ┣" " ┗" " ┃" "  "])

太田> になった(なぜこうしたのか記憶にありません)のが原因でした。特に禁止さ
太田> れている設定でもないので本来正常に動作するべきでしょう。以下に b126 へ
太田> のパッチを添えます。

この太田さんの話もそうですし、mew-thread-indent-regex,
mew-thread-indent-lregex を使っているコードはすべて

『index と from or subject の先頭文字が同じだったらどうなるの?』

という問題もあります。

たとえば(試していないんですが、想像で ^^;)、

(setq mew-use-fancy-thread nil)
(setq mew-thread-indent-string "-")
(setq mew-scan-form '(type (5 date) " " (14 from) " " (0 subj)))
(setq mew-thread-column 28)                          ↑

で、subject の頭に indent を入れているのだけど、subject の最初が
"-" からはじまっている、と thread 判定のコードが狂う、などです。
そのため、thread の indent の判定を regex でしているのは危ないの
ではないとか思います。

また、thread には従来から、

『message number の表示桁数を越えている summary の thread 表示が
すちゃらかになる』

という問題もあります。これ、個人的には -4 って設定したいのだけど、
5 桁いく folder が若干 あるので、-5 にしなくてはいけないので悲し
いのです。


というわけで、両方対応したので、(とりあえず)パッチを出しておきます。

(1) 田原さんの highlight の mew-vars.el を使って、
 (setq mew-scan-form '(type (5 date) " " (14 from) " " idt (0 subj)))
 と指定できるようにした。'idt を指定していないのに、thread を作ろ
 うとすると error にする。

=> 最初 '0' を返すようにしようと思ったのですが、スペース以外入れ
 られちゃうと大変なので error にした。

(2) thread を作る前に thread 対象の message number の桁数を調べ
 て、それが mew-scan-form-header などの設定を越えていたら、行頭
 に空白を入れて見た目をそろえる。
 
(3) (2) をすると、indent を挿入する colum がずれるので、
 mew-vinfo-set-column(), mew-vinfo-get-column() で、その thread
 folder の colum を扱うようにする。

(4) indent を挿入した場所に 'mew-thread-index という property
 (値は indent の深さ)をつけるようにした。

=> 実験したところ、indent を挿入するたびに put-text-property す
 るより、最後にまとめてつける方が速かったです(特に、XEmacs)。従
 来と比較してもほんのちょっと遅くなっただけです。

(5) 従来、thread の mark づけ等で mew-thread-indent-regex を使っ
 ていたコードは、すべて、(4) でつけた property を使うようにした。

(6) "C-u ma" と "C-u tt" での対象 message を一緒にした。
 region を指定するユーザ関数はこれだけしか無いと思う。


です。なお、こんな感じで property をつけています。'0' だけしょう
がないので特別扱い。 

7236  06/19/2001   2k Hideaki MORINAKA         [17821] How to change the timezone string
                      ~ '0'
7240  06/20/2001   2k ┣Tak Ota                  [17825] Re: How to change the timezone string
                      ~~ '1'
7239  06/20/2001   2k ┃┗Hideaki MORINAKA         [17824] Re: How to change the timezone string
                      ~~~~ '2'

-- 
白井秀行 (mailto:shirai at example.com)
-------------- next part --------------
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
Zi5VUIIkXIqcDAAAAP//AwA/d1U2+GQAAA==


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