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 | 7e127d0212acd13749f146c798bc708b165d8665 (patch) | |
tree | 7861dbce5046671694894b080ca6d0e0d15c6175 /ext | |
parent | 7f115860db65b3f0a7f6a35c8bae53193f4de939 (diff) | |
download | ruby-7e127d0212acd13749f146c798bc708b165d8665.tar.gz ruby-7e127d0212acd13749f146c798bc708b165d8665.tar.xz ruby-7e127d0212acd13749f146c798bc708b165d8665.zip |
* 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: http://svn.ruby-lang.org/repos/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 a8f0eec97..3538deb5e 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 { |