From 4ab1577db3bb1358af5fd387a59c541621f5df1e Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 29 May 2002 05:20:39 +0000 Subject: * parse.y: yyparse #defines moved from intern.h * ruby.c (proc_options): access prefixed "ruby_yydebug". * applied modifies to pacify some of gcc -Wall warnings. * parse.y (arg): no more ugly hack for "**", so that "-2**2" to be parsed as "(-2)**2", whereas "- 2**2" or "-(2)**2" to be parsed as "-(2**2)". * parse.y (yylex): '-2' to be literal fixnum. [new] * time.c (time_succ): new method for Range support. * time.c (time_arg): nil test against v[6] (usec). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- time.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'time.c') diff --git a/time.c b/time.c index d152af2516..62865bf56a 100644 --- a/time.c +++ b/time.c @@ -254,7 +254,7 @@ time_arg(argc, argv, tm, usec) } else { rb_scan_args(argc, argv, "16", &v[0],&v[1],&v[2],&v[3],&v[4],&v[5],&v[6]); - *usec = (argc == 7) ? NUM2INT(v[6]) : 0; + *usec = NIL_P(v[6]) ? 0 : obj2long(v[6]); tm->tm_isdst = -1; } @@ -688,6 +688,16 @@ time_usec(time) return INT2NUM(tobj->tv.tv_usec); } +static VALUE +time_succ(time) + VALUE time; +{ + struct time_object *tobj; + + GetTimeval(time, tobj); + return rb_time_new(tobj->tv.tv_sec + 1, tobj->tv.tv_usec); +} + static VALUE time_cmp(time1, time2) VALUE time1, time2; @@ -1437,6 +1447,8 @@ Init_Time() rb_define_method(rb_cTime, "hash", time_hash, 0); rb_define_method(rb_cTime, "clone", time_clone, 0); rb_define_method(rb_cTime, "dup", time_dup, 0); + rb_define_method(rb_cTime, "succ", time_succ, 0); + rb_define_method(rb_cTime, "next", time_succ, 0); rb_define_method(rb_cTime, "localtime", time_localtime, 0); rb_define_method(rb_cTime, "gmtime", time_gmtime, 0); -- cgit v1.2.3