From 909cfc647f8b4c0540aaa72a925e22c5e452ef05 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 20 Feb 2003 20:40:20 +0000 Subject: * string.c (rb_str_cmp_m): return nil if str2 does not respond to both "to_str" and "<=>". * compar.c (cmp_gt): return nil if "<=>" returns nil (means incomparable). * compar.c (cmp_ge): ditto. * compar.c (cmp_lt): ditto. * compar.c (cmp_between): use RTEST(), since cmp_lt and cmp_gt may return nil. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- compar.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'compar.c') diff --git a/compar.c b/compar.c index 3b6622cce..42258d59c 100644 --- a/compar.c +++ b/compar.c @@ -50,7 +50,7 @@ cmp_gt(x, y) { VALUE c = rb_funcall(x, cmp, 1, y); - if (NIL_P(c)) return Qfalse; + if (NIL_P(c)) return Qnil; if (rb_cmpint(c) > 0) return Qtrue; return Qfalse; } @@ -61,7 +61,7 @@ cmp_ge(x, y) { VALUE c = rb_funcall(x, cmp, 1, y); - if (NIL_P(c)) return Qfalse; + if (NIL_P(c)) return Qnil; if (rb_cmpint(c) >= 0) return Qtrue; return Qfalse; } @@ -72,7 +72,7 @@ cmp_lt(x, y) { VALUE c = rb_funcall(x, cmp, 1, y); - if (NIL_P(c)) return Qfalse; + if (NIL_P(c)) return Qnil; if (rb_cmpint(c) < 0) return Qtrue; return Qfalse; } @@ -83,7 +83,7 @@ cmp_le(x, y) { VALUE c = rb_funcall(x, cmp, 1, y); - if (NIL_P(c)) return Qfalse; + if (NIL_P(c)) return Qnil; if (rb_cmpint(c) <= 0) return Qtrue; return Qfalse; } @@ -92,8 +92,8 @@ static VALUE cmp_between(x, min, max) VALUE x, min, max; { - if (cmp_lt(x, min)) return Qfalse; - if (cmp_gt(x, max)) return Qfalse; + if (RTEST(cmp_lt(x, min))) return Qfalse; + if (RTEST(cmp_gt(x, max))) return Qfalse; return Qtrue; } -- cgit