MH-plus project のぺーじ

・ MH-6.8.4-JP-3.03 に関する新情報 [更新: 14Jan2000]
こちらで確認したもの/してないもの…色々混ざってます。
[04Jan2000] Y2K:-)問題
[解決] 日付が年号下2桁で書かれているメールが正しく認識されませんでした。 オリジナルの MH 自身の bug です。JP-3.03 だけでなく、JP の有無に関わらず、 全ての MH が該当します。 sendmail や sshd などと同様に、70〜99が 1900年代、00〜69が 2000年代と 認識するようにしました。(Thanks to 黒江@DNPさん・山崎@NESさん)
--- zotnet/tws/dtime.c.orig	Tue Feb  9 20:30:00 1999
+++ zotnet/tws/dtime.c	Tue Jan  4 20:46:46 2000
@@ -170,7 +170,7 @@
     tw.tw_hour = tm -> tm_hour;
     tw.tw_mday = tm -> tm_mday;
     tw.tw_mon = tm -> tm_mon;
-    tw.tw_year = tm -> tm_year + CENTURY;
+    tw.tw_year = tm -> tm_year + 1900;
     tw.tw_wday = tm -> tm_wday;
     tw.tw_yday = tm -> tm_yday;
     if (tm -> tm_isdst)
@@ -212,7 +212,7 @@
     tw.tw_hour = tm -> tm_hour;
     tw.tw_mday = tm -> tm_mday;
     tw.tw_mon = tm -> tm_mon;
-    tw.tw_year = tm -> tm_year + CENTURY;
+    tw.tw_year = tm -> tm_year + 1900;
     tw.tw_wday = tm -> tm_wday;
     tw.tw_yday = tm -> tm_yday;
     if (tm -> tm_isdst)
@@ -370,12 +370,14 @@
 	    || (min = tw -> tw_min) < 0 || min > 59
 	    || (hour = tw -> tw_hour) < 0 || hour > 23
 	    || (mday = tw -> tw_mday) < 1 || mday > 31
-	    || (mon = tw -> tw_mon + 1) < 1 || mon > 12)
+	    || (mon = tw -> tw_mon + 1) < 1 || mon > 12
+	    || (year = tw -> tw_year) < 0)
 	return (tw -> tw_clock = -1L);
-    year = tw -> tw_year;
 
     result = 0L;
-    if (year < 100)
+    if (year < 69)
+	year += CENTURY + 100;
+    else if (year < 100)
 	year += CENTURY;
     for (i = 1970; i < year; i++)
 	result += dysize (i);
--- zotnet/tws/dtimep.c-lexed.orig	Tue Feb  9 20:30:00 1999
+++ zotnet/tws/dtimep.c-lexed	Tue Jan  4 11:03:29 2000
@@ -151,6 +151,7 @@
 
 	/* Zero out the struct. */
 	bzero( (char *) &tw, sizeof tw);
+	tw.tw_year = -1;
 
 	/* Set default time zone. */
 #ifdef ZONEINFO
@@ -175,17 +176,19 @@
 		switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
 
 		case -1:
-			if (!gotdate || tw.tw_year == 0)
+			if (!gotdate || tw.tw_year == -1)
 				return (struct tws *)0;
 			/* fall through */
 		case 0:
-			if ( tw.tw_year == 0 ) {
+			if ( tw.tw_year == -1 ) {
 				/* Set default year. */
 				time (&tclock);
 				tw.tw_year = localtime(&tclock)->tm_year + 1900;
 			}
+			else if (tw.tw_year < 69) {
+				tw.tw_year += 2000;
+			}
 			else if (tw.tw_year < 100) {
-				/* assume no 2-digit years > 1999 */
 				tw.tw_year += 1900;
 			}
 			return &tw;
--- zotnet/tws/dtimep.lex.orig	Tue Feb  9 20:30:00 1999
+++ zotnet/tws/dtimep.lex	Tue Jan  4 11:32:43 2000
@@ -181,6 +181,7 @@
 
 	/* Zero out the struct. */
 	bzero( (char *) &tw, sizeof tw);
+	tw.tw_year = -1;
 
 	/* Set default time zone. */
 #ifdef ZONEINFO
@@ -205,17 +206,19 @@
 		switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
 
 		case -1:
-			if (!gotdate || tw.tw_year == 0)
+			if (!gotdate || tw.tw_year == -1)
 				return (struct tws *)0;
 			/* fall through */
 		case 0:
-			if ( tw.tw_year == 0 ) {
+			if ( tw.tw_year == -1 ) {
 				/* Set default year. */
 				time (&tclock);
 				tw.tw_year = localtime(&tclock)->tm_year + 1900;
 			}
+			else if (tw.tw_year < 69) {
+				tw.tw_year += 2000;
+			}
 			else if (tw.tw_year < 100) {
-				/* assume no 2-digit years > 1999 */
 				tw.tw_year += 1900;
 			}
 			return &tw;

パッチをget (841byte) (MD5 = a47af6e4ef62e8464e5ffba5845de39b)
[12Jan2000] JP-3.03 の repl が時々 core dump する。
[解決] すいません、NULL ポインタをアクセスしてました(汗)。 ヘッダ内容をハッシュ表で保存しているのですが、 ハッシュ値が同じになる二つのヘッダの、どちらか一方のみが存在する ような状態をチェックするような時に core dump します。 (Thanks to 黒江@DNPさん)
--- uip/replsbr.c.orig	Fri Sep 10 13:51:41 1999
+++ uip/replsbr.c	Wed Jan 12 12:04:01 2000
@@ -215,11 +215,9 @@
 finished:
     /* drop ending newline */
     for (i = 0; i < sizeof(wantcomp)/sizeof(wantcomp[0]); i++)
-	if ((cptr = wantcomp[i]) && cptr->c_text)
-	    do {
-		if ((cp = rindex(cptr->c_text, '\n')) && !cp[1])
-		    *cp = 0;
-	    } while (cptr = cptr->c_next);
+	for (cptr = wantcomp[i]; cptr; cptr = cptr->c_next)
+	    if (cptr->c_text && (cp = rindex(cptr->c_text, '\n')) && !cp[1])
+		*cp = 0;
 
     /* if there's a "subject" component, strip any "re:"s off it */
     FINDCOMP (cptr, "subject")

パッチをget (395byte) (MD5 = 67310dae652620e660074adba86b1e66)


はやし はるひさ hayashi あっとまーく laic.u-hyogo.学術.日本
=> Internet関連業績(笑)
=> MH-plus のぺーじ
=> MH のどうでもいいような趣味の講座

New


このページの最終更新日: 2000年 1月14日 金ようび 晴れ