diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-04-18 18:05:11 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-04-18 18:05:11 +0000 |
commit | d85c44a7eaeb52d6903431efef004e2b3605a94f (patch) | |
tree | 79823d81475a9659b3c0e21988721c7d6b200d04 /range.c | |
parent | 6423b6642048a20f4660340efefa67baec4ec1c9 (diff) | |
download | ruby-d85c44a7eaeb52d6903431efef004e2b3605a94f.tar.gz ruby-d85c44a7eaeb52d6903431efef004e2b3605a94f.tar.xz ruby-d85c44a7eaeb52d6903431efef004e2b3605a94f.zip |
* struct.c (rb_struct_eql): should compare values with "eql?".
* range.c (range_check): <=> returns nil for invalid values;
should check.
* regex.c (re_compile_pattern): should not set RE_OPTIMIZE_ANCHOR,
if anychar_repeat is enclosed by parentheses.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r-- | range.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -19,19 +19,21 @@ static ID id_cmp, id_succ, id_beg, id_end, id_excl; #define SET_EXCL(r,v) rb_ivar_set((r), id_excl, (v) ? Qtrue : Qfalse) static VALUE -range_check(args) - VALUE *args; +range_failed() { - rb_funcall(args[0], id_cmp, 1, args[1]); - /* rb_funcall(args[0], id_succ, 0, 0); */ - return Qnil; + rb_raise(rb_eArgError, "bad value for range"); + return Qnil; /* dummy */ } static VALUE -range_failed() +range_check(args) + VALUE *args; { - rb_raise(rb_eArgError, "bad value for range"); - return Qnil; /* dummy */ + VALUE v; + + v = rb_funcall(args[0], id_cmp, 1, args[1]); + if (NIL_P(v)) range_failed(); + return Qnil; } static void |