From bbf04edb3821897a843406dff552b7643d5a3218 Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 30 Mar 2004 11:41:39 +0000 Subject: * time.c (search_time_t): limit guess range by mktime if it is available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ time.c | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/ChangeLog b/ChangeLog index 20216f2e40..4f61bb398e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Mar 30 20:25:34 2004 Tanaka Akira + + * time.c (search_time_t): limit guess range by mktime if it is + available. + Sun Mar 28 14:16:59 2004 Minero Aoki * lib/net/pop.rb (auth): failed when account/password include "%". diff --git a/time.c b/time.c index d72d3a42b9..a81c3bb789 100644 --- a/time.c +++ b/time.c @@ -440,6 +440,15 @@ search_time_t(tptr, utc_p) (1UL << (8 * sizeof(time_t) - 1)) - 1 : ~(time_t)0; +#if defined(HAVE_MKTIME) + if ((guess = mktime(tptr)) != -1) { + if (guess_lo < guess - 24 * 60 * 60) + guess_lo = guess - 24 * 60 * 60; + if (guess + 24 * 60 * 60 < guess_hi) + guess_hi = guess + 24 * 60 * 60; + } +#endif + tm = (utc_p ? gmtime : localtime)(&guess_lo); if (!tm) goto error; d = tmcmp(tptr, tm); -- cgit v1.2.3