[Mew-dist 11972] Re: im-133 y2k bugfix (Fw: [Kondara-devel:01032])
Hidetomo Hosono
h at example.com
2000年 1月 3日 (月) 00:01:20 JST
ほそのです。
To: mew-dist at example.com
From: Hideaki YOSHIFUJI (吉藤英明) <yoshfuji at example.com>
Subject: [Mew-dist 11971] Re: im-133 y2k bugfix (Fw: [Kondara-devel:01032])
Date: Sun, 2 Jan 2000 23:10:54 +0900
> 吉藤英明@東北大学情報科学です。
>
> In article <20000102210738J.saito at example.com> (at Sun, 2 Jan 2000 21:07:43 +0900), SAITO Tetsuya (さいとてつや) <saito at example.com> says:
>
> > $year += 2000;
> > } elsif ($year < 100) {
>
> broken な年(year-1900)(例:101=2001年)対策は不要でしょうか?
> つまり、100 でなく 150 のほうがよくはないでしょうか?
私も最初はそう思って、32ビット UNIX 系 OS の日付の限界を超えたあたりの
139 を入れておいたのですが、さいとさんのパッチで実際に日付をでっちあげた
ものを幾つか用意し、imls を試してみたら問題は収まっています。
さいとさんのパッチを当てた Scan.pm をよく見てみますと、以下に日本語で
書いたような解釈が出来ることが分かります。
----------------------------------------------------------------------
##
## Date
##
my $tz;
if ($href->{'date'}) {
$href->{'date:'} = $href->{'date'};
} else {
## この分岐は、Date: フィールドが存在しなかった場合に評価される。
(途中省略)
## Date: フィールドの代用ででっちあげる $href->{'date:'}
## には、予め $year + 1900 と入れておく。これで
## +draft などの表示がおかしくなる問題は解決。
$href->{'date:'} = sprintf "%s, %d %s %d %02d:%02d:%02d %s",
$WSTR[$wday], $mday, $MSTR[$mon], $year + 1900,
$hour, $min, $sec, $tz;
## Date: フィールドがあり、かつ RFC822 しか守っていない
## (年を2桁でごまかしている) MUA からのメッセージについては、
## $href->{'date'} の中の年は2桁のままになっている。
}
----------------------------------------------------------------------
当初問題にしていた部分は、
----------------------------------------------------------------------
## RFC822 しか守っていない MUA からのメッセージの Date: フィールドは
## 年を2桁で表すので、50未満なら2000を足したものと、
## 50以上で100以下であれば1900を足したものとみなす。
## Date: フィールドのないメッセージに関しては
## 処理が終わっているのでチェックにもはやひっかからない。
if ($year < 50) {
$year += 2000;
} elsif ($year < 100) {
$year += 1900;
}
## ここでいかなる場合でもメッセージの年の4桁化が終了。
----------------------------------------------------------------------
あまり正確ではないのですが、私はこう理解しています。
なお、Kondara MNU/Linux の ftp サイトには、さいとさんの修正を加えた
im を既に put しています。パッチの収録を快諾して下さったさいとさんに、こ
の場を借りて御礼申しあげます。
----
ほその "はこんだら" ひでとも @ Kondara Project GNOME 野郎 A ちーむ
http://www.kondara.org/~h/
Mew-dist メーリングリストの案内