diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-21 14:56:59 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-21 14:56:59 +0000 |
commit | 3bc16f62c1fb6225b3f6cb96b62f78e44636aae4 (patch) | |
tree | 7861dbce5046671694894b080ca6d0e0d15c6175 /ext | |
parent | 143846ad369eba2324e13743ff03bcf50d56c942 (diff) | |
download | ruby-3bc16f62c1fb6225b3f6cb96b62f78e44636aae4.tar.gz |
* 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
Diffstat (limited to 'ext')
-rw-r--r-- | ext/syck/rubyext.c | 7 |
1 files changed, 4 insertions, 3 deletions
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 { |