diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-12-19 09:20:20 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-12-19 09:20:20 +0000 |
commit | baa00aa2506745308a598ce91e65a727ba25f30f (patch) | |
tree | fc289dbd1d10586ba6537ab070a7f42bd7bc9cb6 /re.c | |
parent | a0a14ed14a86b7204ba3e9d557a296ca08a8bb8d (diff) |
* numeric.c (num_step): use DBL_EPSILON.
* array.c (rb_check_array_type): new function: return an array
(convert if possible), or nil.
* string.c (rb_check_string_type): new function: return a string
(convert if possible), or nil.
* numeric.c (rb_dbl_cmp): returns nil if values are not
comparable.
* numeric.c (fix_cmp,flo_cmp): use rb_num_coerce_cmp()
* bignum.c (rb_big_cmp): ditto.
* numeric.c (rb_num_coerce_cmp): new coercing function for "<=>",
which does not raise TypeError.
* numeric.c (do_coerce): can be supress exception now.
* object.c (rb_mod_cmp): should return nil for non class/module
objects.
* re.c (rb_reg_eqq): return false if the argument is not a
string. now returns boolean value.
* class.c (rb_include_module): argument should be T_MODULE, not
T_class, nor T_ICLASS.
* eval.c (is_defined): "defined?" should return "assignment" for
attribute assignment (e.g. a.foo=b) and indexed assignment
(e.g. a[2] = 44).
* parse.y (aryset): use NODE_ATTRASGN.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r-- | re.c | 23 |
1 files changed, 22 insertions, 1 deletions
@@ -1110,6 +1110,27 @@ rb_reg_match(re, str) } VALUE +rb_reg_eqq(re, str) + VALUE re, str; +{ + long start; + + if (TYPE(str) != T_STRING) { + str = rb_check_string_type(str); + if (NIL_P(str)) { + rb_backref_set(Qnil); + return Qfalse; + } + } + StringValue(str); + start = rb_reg_search(re, str, 0, 0); + if (start < 0) { + return Qfalse; + } + return Qtrue; +} + +VALUE rb_reg_match2(re) VALUE re; { @@ -1583,7 +1604,7 @@ Init_Regexp() rb_define_method(rb_cRegexp, "eql?", rb_reg_equal, 1); rb_define_method(rb_cRegexp, "==", rb_reg_equal, 1); rb_define_method(rb_cRegexp, "=~", rb_reg_match, 1); - rb_define_method(rb_cRegexp, "===", rb_reg_match, 1); + rb_define_method(rb_cRegexp, "===", rb_reg_eqq, 1); rb_define_method(rb_cRegexp, "~", rb_reg_match2, 0); rb_define_method(rb_cRegexp, "match", rb_reg_match_m, 1); rb_define_method(rb_cRegexp, "to_s", rb_reg_to_s, 0); |