From: Tadayoshi Funaba Date: 1999-09-08T12:44:44+09:00 Subject: [ruby-dev:7821] Time.mktime ふなばです。 Time.mktime(900) などすると返ってこなくなることがあるようです。 とりあ えず、もうちょっと厳しくしてみました。いまひとつスッキリしないし、この あたり若干不安なものがあるけど。 --- time.c.orig Fri Aug 13 14:45:15 1999 +++ time.c Wed Sep 8 11:37:38 1999 @@ -263,7 +263,7 @@ struct tm *(*fn)(); { struct timeval tv; - time_t guess, t; + time_t oguess, guess, t; struct tm *tm; long diff; @@ -277,8 +277,9 @@ t = tptr->tm_year; if (t < 69) goto out_of_range; while (diff = t - (tm->tm_year)) { + oguess = guess; guess += diff * 364 * 24 * 3600; - if (diff > 0 && guess < 0) goto out_of_range; + if (diff > 0 && guess <= oguess) goto out_of_range; tm = (*fn)(&guess); if (!tm) goto error; } ふなば ただよし