From 3bc16f62c1fb6225b3f6cb96b62f78e44636aae4 Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 21 Apr 2009 14:56:59 +0000 Subject: * time.c: remove time_t restriction from Time class. * timev.h: new file to define struct vtm. * strftime.c: format struct vtm instead of struct tm. * ext/syck/rubyext.c (mktime_do): don't use time_t; [ruby-dev:38191] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/syck/rubyext.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'ext/syck/rubyext.c') diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c index a8f0eec978..3538deb5e3 100644 --- a/ext/syck/rubyext.c +++ b/ext/syck/rubyext.c @@ -291,7 +291,7 @@ mktime_do(struct mktime_arg *arg) if ( len > ptr - str && ( *ptr == '-' || *ptr == '+' ) ) { time_t tz_offset = strtol(ptr, NULL, 10) * 3600; - time_t tmp; + VALUE tmp; while ( *ptr != ':' && *ptr != '\0' ) ptr++; if ( *ptr == ':' ) @@ -309,8 +309,9 @@ mktime_do(struct mktime_arg *arg) /* Make TZ time*/ time = rb_funcall(rb_cTime, s_utc, 6, year, mon, day, hour, min, sec); - tmp = NUM2LONG(rb_funcall(time, s_to_i, 0)) - tz_offset; - return rb_funcall(rb_cTime, s_at, 2, LONG2NUM(tmp), LONG2NUM(usec)); + tmp = rb_funcall(time, s_to_i, 0); + tmp = rb_funcall(tmp, '-', 1, LONG2FIX(tz_offset)); + return rb_funcall(rb_cTime, s_at, 2, tmp, LONG2NUM(usec)); } else { -- cgit v1.2.3