[Mew-dist 11967] Re: im-133 y2k bugfix (Fw: [Kondara-devel:01032])

Hidetomo Hosono h at example.com
2000年 1月 2日 (日) 19:07:17 JST


ほその@Kondara プロジェクトです。

 そそっかしくて、申し訳ありません。

To: mew-dist at example.com, hidetomo at example.com
From: Hideaki YOSHIFUJI (吉藤英明) <yoshfuji at example.com>
Subject: [Mew-dist 11966] Re: im-133 y2k bugfix (Fw: [Kondara-devel:01032])
Date: Sun, 2 Jan 2000 18:30:12 +0900

> 2001年は大丈夫なのでしょうか?
> #101 になりそうですが、外していたらごめんなさい。

 試してみたら、ごめんなさい、なってました。直前に
----------------------------------------------------------------------
     if ($year < 70) {
 	$year += 2000;
----------------------------------------------------------------------
なんて行があったから大丈夫なんだろうと思っていたのですが…。

 というわけで、
----------------------------------------------------------------------
--- IM/Scan.pm.~	Sun Jan  2 17:26:19 2000
+++ IM/Scan.pm	Sun Jan  2 18:52:17 2000
@@ -450,7 +450,7 @@
 
     if ($year < 70) {
 	$year += 2000;
-    } elsif ($year < 100) {
+    } else {
 	$year += 1900;
     }
     $href->{'year:'} = $year;
----------------------------------------------------------------------
としてしまった上で試してみましたが、touch --date="日付" を使って2001年・
2010年・2038年と適当に試してみましたが、どれも正しくとれているようです。
 ところが、今度は 1970 年未満が 20?? 年扱いされてしまう上、Date: フィー
ルドのあるメールが 3900 年とかいったミレニアムを軽く越してしまう未来から
の手紙になってしまったので、とりあえず 139 未満とすべきかな、ということ
で、
----------------------------------------------------------------------
--- IM/Scan.pm~	Sun Jan  2 17:26:19 2000
+++ IM/Scan.pm	Sun Jan  2 18:52:17 2000
@@ -450,7 +450,7 @@
 
     if ($year < 70) {
 	$year += 2000;
-    } elsif ($year < 100) {
+    } elsif ($year < 139) {
 	$year += 1900;
     }
     $href->{'year:'} = $year;
----------------------------------------------------------------------
としてみるといいのではないか、と思っています。このようにした Scan.pm を
置いてみたところ、3900年のメールは2000年のメールに戻りました。

 IM のコードをそんなに読み込んでいませんし perl にも明るくはないので、
もっと根本的な解決方法をご存じの方からのご指摘を頂けると幸いです。

----
ほその "はこんだら" ひでとも @ Kondara Project GNOME 野郎 A ちーむ
http://www.kondara.org/~h/



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