diff options
| author | fukachan <fukachan> | 2003-06-14 12:20:05 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2003-06-14 12:20:05 +0000 |
| commit | cbbbda92a7c39b12efecc137061baf4ab499e435 (patch) | |
| tree | 366723afb20ecb937dd3002975d68bb2f04f2406 /fml/lib | |
| parent | 2e04f6115b0409fe4beddb0ebd2a818ed9730cfd (diff) | |
| download | fml8-cbbbda92a7c39b12efecc137061baf4ab499e435.tar.gz fml8-cbbbda92a7c39b12efecc137061baf4ab499e435.tar.bz2 fml8-cbbbda92a7c39b12efecc137061baf4ab499e435.zip | |
describe _print_thread()
Diffstat (limited to 'fml/lib')
| -rw-r--r-- | fml/lib/Mail/Message/THREAD.euc-jp | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/fml/lib/Mail/Message/THREAD.euc-jp b/fml/lib/Mail/Message/THREAD.euc-jp index a4d478e7..9fde8432 100644 --- a/fml/lib/Mail/Message/THREAD.euc-jp +++ b/fml/lib/Mail/Message/THREAD.euc-jp @@ -1,4 +1,7 @@ -○ _analyze_thread() + スレッドについて + + +○ Mail::Message::DB::_analyze_thread() スレッドの依存関係を調べる処理は _thread_analyze() が真髄の一つです。 この関数は @@ -14,6 +17,8 @@ さて、HASH_REF(ref_key_list) は、次のように更新されます。 +ref_key_list に自分の ID を設定する( { id => id } )。 + for $message_id (In-Reply-To と References にふくまれるID) { inv_message_id hash @@ -65,3 +70,33 @@ ref_key_list = { for $message_id (In-Reply-To と References にふくまれるID) { の処理の順番はどうでもいいはずです。 + + + + +○ Mail::Message::ToTHML::_print_thread() + +これが実際にスレッドの依存関係を HTML 化する関数です。 + +概念的には + + _print_thread() { + + for (ref_key_list id のリスト) { + if (リストの中身が複数) { + # あとで使うためにキャッシュしておく + $self->{ _thread_list }->{ $id } = $buf; + } + + print_ul() + print_li() + _print_thread() (recursive call) + } + + print_ul_end() # recursive の回数だけ </UL> を出力する + } + + + [TODO] + $self->{ _thread_list } はオンメモリだけど、 + 次回の処理のために db に書いておくべきじゃないのか? |
