summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-04-03 17:20:48 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-04-03 17:20:48 +0000
commit4d87d0778293cc672baaf9b91414176a75c85fb9 (patch)
tree7d6da896f12e7a2e2c00d362b8afc52c299041fa
parent9ee1ced6d95eaf139ea69364ee7b10e74b5afa04 (diff)
* range.c (range_step): should not round step into integer if
begin and end are numeric. [ruby-core:15990] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--range.c7
-rw-r--r--version.h6
3 files changed, 12 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 4c2cf4b04f..c990980c07 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Apr 4 02:17:06 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * 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@ruby-lang.org>
* configure.in: get rid of empty expansion.
diff --git a/range.c b/range.c
index b60cbcac91..e1909047d1 100644
--- a/range.c
+++ b/range.c
@@ -322,7 +322,6 @@ range_step(argc, argv, range)
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 @@ range_step(argc, argv, range)
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);
diff --git a/version.h b/version.h
index bcef2e524b..b5036234c4 100644
--- a/version.h
+++ b/version.h
@@ -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[];