ruby-changes:8872
From: yugui <ko1@a...>
Date: Sun, 30 Nov 2008 18:24:17 +0900 (JST)
Subject: [ruby-changes:8872] Ruby:r20409 (ruby_1_9_1): merges r20348 from trunk into ruby_1_9_1.
yugui 2008-11-30 18:22:47 +0900 (Sun, 30 Nov 2008) New Revision: 20409 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20409 Log: merges r20348 from trunk into ruby_1_9_1. * numeric.c (num_step): treat infinite step specially. [ruby-dev:37157] fix: #781. Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/numeric.c Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 20408) +++ ruby_1_9_1/ChangeLog (revision 20409) @@ -1,3 +1,8 @@ +Tue Nov 25 03:26:04 2008 Yukihiro Matsumoto <matz@r...> + + * numeric.c (num_step): treat infinite step specially. + [ruby-dev:37157] fix: #781. + Tue Nov 25 01:23:25 2008 Tadayoshi Funaba <tadf@d...> * lib/date/format.rb (strftime): ignores '_' flag for %[LN]. Index: ruby_1_9_1/numeric.c =================================================================== --- ruby_1_9_1/numeric.c (revision 20408) +++ ruby_1_9_1/numeric.c (revision 20409) @@ -1503,11 +1503,16 @@ 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<n; i++) { - rb_yield(DBL2NUM(i*unit+beg)); + if (isinf(unit)) { + if (unit > 0) rb_yield(DBL2NUM(beg)); } + else { + if (err>0.5) err=0.5; + n = floor(n + err) + 1; + for (i=0; i<n; i++) { + rb_yield(DBL2NUM(i*unit+beg)); + } + } } else { VALUE i = from; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/