[mew-dist 20951] Re: MS

Shun-ichi GOTO gotoh at example.com
2002年 5月 27日 (月) 16:51:22 JST


>>>>> at Mon, 27 May 2002 13:17:59 +0900 (JST)
>>>>> kazu == Kazu Yamamoto (山本和彦) <kazu at example.com> said,

kazu> しかしながら、6 の方が 1 より先に届いていると、6 の木に 1 が接ぎ木され
kazu> てしまうことになります。これは、意図に反しています。ですから、この方法
kazu> は諦めました。

ちうか、接ぎ木操作の対象とするのは Re: を持ち、References: や
In-Reply-To: も持たないもの、という条件を設ければ 6の木に1が接ぎ木される
ようなことは無くなりますよね。

あと、[mew-dist:01234] Test Mail
と、  [mew-dist:01235] Re: Test Mail
と、  [mew-dist:01236] Re: Test Mail
のSubject が同一であることはどうやって判定するつもりでしょうか?
つまり接ぎ木されるべき相手はどうやって知るのでしょうか?
## 説明が少ないだけで考えてはいることかとは思いますが。


kazu> 結局、それぞれの木の根の Subject: から Re: だけを除いた文字列でソート
kazu> するのがよさそうです。

(本来正解はないとはいえ)ちょっとad-hoc に思います。それはそれで、ほどほ
どにに機能するでしょうが、[mew-dist:01234] のようなモノがつかないMLにも
対応できて欲しいという欲が必ず出てくると思いますし。

なので Date: でsort (してから Subject: でsort)した方が良いのではないでしょ
うか?


Wanderlust やGnus がどういうやりかたしてるかは調べてませんが、
個人的に使ってる方法は例えば

1. Subject: [mew-dist:01234] Re: This is test
   を
     mew-dist
     1234
     Re:
     This is test
   ...に分解して、
2. "This is test" を持つメッセージを集め、
3. 時間(Date: から得る)でソートし、
4. Re: も 親Message-Id: を持たないものをtop message としてリストアップし、
5. Re: を持ち親Message-Id: を持たないものは、それより古く、かつ最近の
   top message にくっつける。

というものです

# これはこれで面倒だし決して完全ではないですが。

## ちなみにdb の中に、各メッセージの情報として Subject: から [xxx:0123]
## やRe: / Fw: を取り除いたbody 部分("This is test")をintern してhash に
## 保持しておくことで同一Subject を素早く見つけられるようにしています。

### ついでにいうと、空白が増えたりする問題もあるので、実際には空白も取り
### 除いた文字列でhash に突っ込んでます。

#### もひとつついでにいうと、mew-dist の部分(やX-Ml-Info:)から
#### ML name をguess してメッセージ情報として保持しておき、同一MLが
#### 違うものは接ぎ木しないなどといったこともやってたりします。

--- Regards,
 Shun-ichi Goto  <gotoh at example.com>
   R&D Group, TAIYO Corp., Tokyo, JAPAN



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