From 0d684beafb4258da9606b1e3b4448511b709a2e2 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 29 Oct 1999 09:25:48 +0000 Subject: 19991029 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- time.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'time.c') diff --git a/time.c b/time.c index dd22c499dd..4d18827597 100644 --- a/time.c +++ b/time.c @@ -152,13 +152,21 @@ rb_time_timeval(time) } static VALUE -time_s_at(klass, time) - VALUE klass, time; +time_s_at(argc, argv, klass) + int argc; + VALUE *argv; + VALUE klass; { struct timeval tv; - VALUE t; + VALUE time, t; - tv = rb_time_timeval(time); + if (rb_scan_args(argc, argv, "11", &time, &t) == 2) { + tv.tv_sec = NUM2INT(time); + tv.tv_usec = NUM2INT(t); + } + else { + tv = rb_time_timeval(time); + } t = time_new_internal(klass, tv.tv_sec, tv.tv_usec); if (TYPE(time) == T_DATA) { struct time_object *tobj, *tobj2; @@ -978,7 +986,7 @@ Init_Time() rb_define_singleton_method(rb_cTime, "now", time_s_now, 0); rb_define_singleton_method(rb_cTime, "new", time_s_now, 0); - rb_define_singleton_method(rb_cTime, "at", time_s_at, 1); + rb_define_singleton_method(rb_cTime, "at", time_s_at, -1); rb_define_singleton_method(rb_cTime, "gm", time_s_timegm, -1); rb_define_singleton_method(rb_cTime, "local", time_s_timelocal, -1); rb_define_singleton_method(rb_cTime, "mktime", time_s_timelocal, -1); -- cgit v1.2.3