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

ruby-changes:14268

From: shyouhei <ko1@a...>
Date: Mon, 14 Dec 2009 13:12:23 +0900 (JST)
Subject: [ruby-changes:14268] Ruby:r26093 (ruby_1_8_7): merge revision(s) 26033:

shyouhei	2009-12-14 13:01:05 +0900 (Mon, 14 Dec 2009)

  New Revision: 26093

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26093

  Log:
    merge revision(s) 26033:
    * lib/bigdecimal.rb: fix comparison operators [ruby-core:26646]

  Modified files:
    branches/ruby_1_8_7/ChangeLog
    branches/ruby_1_8_7/ext/bigdecimal/bigdecimal.c
    branches/ruby_1_8_7/version.h

Index: ruby_1_8_7/ext/bigdecimal/bigdecimal.c
===================================================================
--- ruby_1_8_7/ext/bigdecimal/bigdecimal.c	(revision 26092)
+++ ruby_1_8_7/ext/bigdecimal/bigdecimal.c	(revision 26093)
@@ -734,15 +734,21 @@
     Real *a, *b;
     GUARD_OBJ(a,GetVpValue(self,1));
     b = GetVpValue(r,0);
-    if(!b) return rb_num_coerce_cmp(self,r);
+    if(!b) {
+	switch(op)
+	{
+	case '*': return rb_num_coerce_cmp(self,r); /* any op */
+	case '=': return RTEST(rb_num_coerce_cmp(self,r)) ? Qtrue : Qfalse;
+	default: return rb_num_coerce_relop(self,r);
+	}
+    }
     SAVE(b);
     e = VpComp(a, b);
-    if(e==999) return Qnil;
+    if(e==999) return (op == '*') ? Qnil : Qfalse;
     switch(op)
     {
     case '*': return   INT2FIX(e); /* any op */
     case '=': if(e==0) return Qtrue ; return Qfalse;
-    case '!': if(e!=0) return Qtrue ; return Qfalse;
     case 'G': if(e>=0) return Qtrue ; return Qfalse;
     case '>': if(e> 0) return Qtrue ; return Qfalse;
     case 'L': if(e<=0) return Qtrue ; return Qfalse;
Index: ruby_1_8_7/ChangeLog
===================================================================
--- ruby_1_8_7/ChangeLog	(revision 26092)
+++ ruby_1_8_7/ChangeLog	(revision 26093)
@@ -1,3 +1,7 @@
+Mon Dec 14 12:53:56 2009  Marc-Andre Lafortune  <ruby-core@m...>
+
+	* lib/bigdecimal.rb: fix comparison operators [ruby-core:26646]
+
 Mon Dec 14 12:40:10 2009  Marc-Andre Lafortune  <ruby-core@m...>
 
 	* object.c (rb_Float): Allow results of to_f to be NaN
Index: ruby_1_8_7/version.h
===================================================================
--- ruby_1_8_7/version.h	(revision 26092)
+++ ruby_1_8_7/version.h	(revision 26093)
@@ -2,7 +2,7 @@
 #define RUBY_RELEASE_DATE "2009-12-14"
 #define RUBY_VERSION_CODE 187
 #define RUBY_RELEASE_CODE 20091214
-#define RUBY_PATCHLEVEL 236
+#define RUBY_PATCHLEVEL 237
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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