From 012fee947633cf88ebeb6158ee140d1e2d051db0 Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 24 Nov 2008 18:40:07 +0000 Subject: [PATCH] * numeric.c (num_step): treat infinite step specially. [ruby-dev:37157] fix: #781. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ numeric.c | 13 +++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index eec1322d3c..eb8c5cae46 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 25 03:26:04 2008 Yukihiro Matsumoto + + * numeric.c (num_step): treat infinite step specially. + [ruby-dev:37157] fix: #781. + Tue Nov 25 01:23:25 2008 Tadayoshi Funaba * lib/date/format.rb (strftime): ignores '_' flag for %[LN]. diff --git a/numeric.c b/numeric.c index 042e0c306f..c2f5e60c16 100644 --- a/numeric.c +++ b/numeric.c @@ -1503,10 +1503,15 @@ num_step(int argc, VALUE *argv, VALUE from) double err = (fabs(beg) + fabs(end) + fabs(end-beg)) / fabs(unit) * epsilon; long i; - if (err>0.5) err=0.5; - n = floor(n + err) + 1; - for (i=0; i 0) rb_yield(DBL2NUM(beg)); + } + else { + if (err>0.5) err=0.5; + n = floor(n + err) + 1; + for (i=0; i