[PREVIOUS CHAPTER] [NEXT CHAPTER]
6 Q&A


6.1	Subject: [test-ml:0010] ,0009,0005 Re: test


Q&A のML でこの機能を利用したいのですが、
メールソフトで Subject だけを見て、瞬時に何番のメールに対する
返事かを たどっていきたい という要望があがっているわけです。
ふたつ前ぐらいの番号まで残るというのがベストです。ひとつ前だけでも 残れば うれしいです。
#いや、むしろ ひとつ前だけの方が 簡潔 で分かりやすいかも。

とかする程度なら10行くらいのHOOKできっとできます。
#行数が少ないのは決め打ちだから:)

   $START_HOOK = q#
      if ($Envelope{'h:subject:'} =~ /($SUBJECT_FREE_FORM_REGEXP)/) {
   	$x = $1;
   	if ($x =~ /(\d+)/) { $x = $1;}
   	$Envelope{'h:Subject:'} = ",$x ".$Envelope{'h:Subject:'};
   	while ($Envelope{'h:Subject:'} =~ s/(Re: )(,\d+)/$2$1/i) {;}
   	while ($Envelope{'h:Subject:'} =~ s/\s+(,\d+)/$1/) {;}
      }
   #;

   # expire しなくていいのだろうか…つぅか > ,\d+ は2つまでとか

   ○ libtagdef.pl に新しいのを定義して patch は commit :)
      subject tag にHOOKがあれば解決する問題なんだろうか…
      いやそれだけじゃきっとしない


6.2	サマータイム (夏時間)

対象: 2001 年 5 月以降の 4.0 current

これは fml が返すさまざまなメッセージなどのメールヘッダにつく Date: の
話です。fml でするべき設定はただ一つです。$TZONE_DST に夏時間のタイム
ゾーンを設定して下さい。

タイムゾーンはこの2つです。

	$TZone		冬時間のタイムゾーン
	$TZONE_DST	夏時間のタイムゾーン

$TZone はインストール時に設定しているはずです。$TZONE_DST を指定しない
場合は $TZONE_DST と $TZone は同じ値になります。

理屈:

fml が動いているホストが夏時間かどうかは localtime() の返す isdst の値
を見ています。つまり、この値が 1 か 0 で判断します。夏時間を考慮したい
場合、この localtime() が正しい値を返すように各 OS で設定を頑張って下
さい。OS 固有の話なので僕はよくしりません :)

ノート: 最初(1993) TZone をユーザが変更しうる変数とは思ってなかったので
         TZONE ではなく TZone になっています。
	 でもサマータイム用のゾーンは TZoneDst ではなく
	 ユーザ定義変数として $TZONE_DST という名を使っています。


[PREVIOUS CHAPTER] [NEXT CHAPTER]