ruby-changes:4408
From: ko1@a...
Date: Fri, 4 Apr 2008 02:21:04 +0900 (JST)
Subject: [ruby-changes:4408] matz - Ruby:r15899 (ruby_1_8): * range.c (range_step): should not round step into integer if
matz 2008-04-04 02:20:48 +0900 (Fri, 04 Apr 2008) New Revision: 15899 Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/range.c branches/ruby_1_8/version.h Log: * range.c (range_step): should not round step into integer if begin and end are numeric. [ruby-core:15990] http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/range.c?r1=15899&r2=15898&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=15899&r2=15898&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.h?r1=15899&r2=15898&diff_format=u Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 15898) +++ ruby_1_8/ChangeLog (revision 15899) @@ -1,3 +1,8 @@ +Fri Apr 4 02:17:06 2008 Yukihiro Matsumoto <matz@r...> + + * range.c (range_step): should not round step into integer if + begin and end are numeric. [ruby-core:15990] + Tue Apr 1 14:43:38 2008 Nobuyoshi Nakada <nobu@r...> * configure.in: get rid of empty expansion. Index: ruby_1_8/version.h =================================================================== --- ruby_1_8/version.h (revision 15898) +++ ruby_1_8/version.h (revision 15899) @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.8.6" -#define RUBY_RELEASE_DATE "2008-04-01" +#define RUBY_RELEASE_DATE "2008-04-03" #define RUBY_VERSION_CODE 186 -#define RUBY_RELEASE_CODE 20080401 +#define RUBY_RELEASE_CODE 20080403 #define RUBY_PATCHLEVEL 5000 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 6 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 4 -#define RUBY_RELEASE_DAY 1 +#define RUBY_RELEASE_DAY 3 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; Index: ruby_1_8/range.c =================================================================== --- ruby_1_8/range.c (revision 15898) +++ ruby_1_8/range.c (revision 15899) @@ -322,7 +322,6 @@ else { VALUE tmp = rb_to_int(step); unit = rb_cmpint(tmp, step, INT2FIX(0)); - step = tmp; } if (unit < 0) { rb_raise(rb_eArgError, "step can't be negative"); @@ -354,8 +353,10 @@ rb_iterate((VALUE(*)_((VALUE)))str_step, (VALUE)args, step_i, (VALUE)iter); } - else if (rb_obj_is_kind_of(b, rb_cNumeric)) { - ID c = rb_intern(EXCL(range) ? "<" : "<="); + else if (rb_obj_is_kind_of(b, rb_cNumeric) || + !NIL_P(rb_check_to_integer(b, "to_int")) || + !NIL_P(rb_check_to_integer(e, "to_int"))) { + ID c = EXCL(range) ? '<' : rb_intern("<="); while (RTEST(rb_funcall(b, c, 1, e))) { rb_yield(b); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/