From 4eca4cadff0ff6ee1931ab8d7653cdad65e2cac6 Mon Sep 17 00:00:00 2001 From: akr Date: Thu, 24 Jan 2008 06:10:49 +0000 Subject: * time.c (make_time_t): revert round trip test. [ruby-dev:33058] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- time.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'time.c') diff --git a/time.c b/time.c index 59d36088a3..2b00a538be 100644 --- a/time.c +++ b/time.c @@ -825,37 +825,40 @@ make_time_t(struct tm *tptr, int utc_p) buf = *tptr; if (utc_p) { #if defined(HAVE_TIMEGM) - t = timegm(&buf); - if (t == (time_t)-1) -#endif - t = search_time_t(&buf, utc_p); + if ((t = timegm(&buf)) != -1) + return t; +#ifdef NEGATIVE_TIME_T if ((tmp = gmtime(&t)) && tptr->tm_year == tmp->tm_year && tptr->tm_mon == tmp->tm_mon && tptr->tm_mday == tmp->tm_mday && tptr->tm_hour == tmp->tm_hour && tptr->tm_min == tmp->tm_min && - tptr->tm_sec == tmp->tm_sec) { + tptr->tm_sec == tmp->tm_sec + ) return t; - } +#endif +#endif + return search_time_t(&buf, utc_p); } else { #if defined(HAVE_MKTIME) - t = mktime(&buf); - if (t == (time_t)-1) -#endif - t = search_time_t(&buf, utc_p); + if ((t = mktime(&buf)) != -1) + return t; +#ifdef NEGATIVE_TIME_T if ((tmp = localtime(&t)) && tptr->tm_year == tmp->tm_year && tptr->tm_mon == tmp->tm_mon && tptr->tm_mday == tmp->tm_mday && tptr->tm_hour == tmp->tm_hour && tptr->tm_min == tmp->tm_min && - tptr->tm_sec == tmp->tm_sec) { + tptr->tm_sec == tmp->tm_sec + ) return t; - } +#endif +#endif + return search_time_t(&buf, utc_p); } - rb_raise(rb_eArgError, "couldn't generate a time"); } static VALUE -- cgit v1.2.3