[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]