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