summaryrefslogtreecommitdiff
path: root/fml/lib
diff options
context:
space:
mode:
authorfukachan <fukachan>2003-06-14 12:20:05 +0000
committerfukachan <fukachan>2003-06-14 12:20:05 +0000
commitcbbbda92a7c39b12efecc137061baf4ab499e435 (patch)
tree366723afb20ecb937dd3002975d68bb2f04f2406 /fml/lib
parent2e04f6115b0409fe4beddb0ebd2a818ed9730cfd (diff)
downloadfml8-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-jp37
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 に書いておくべきじゃないのか?