diff options
-rw-r--r-- | re.c | 4 | ||||
-rw-r--r-- | test/ruby/test_regexp.rb | 3 |
2 files changed, 4 insertions, 3 deletions
@@ -3243,8 +3243,8 @@ rb_reg_match_m_p(int argc, VALUE *argv, VALUE re) if (pos < 0) return Qfalse; } if (pos > 0) { - long len = 0; - char *beg = rb_str_subpos(str, pos, &len); + long len = 1; + const char *beg = rb_str_subpos(str, pos, &len); if (!beg) return Qfalse; pos = beg - RSTRING_PTR(str); } diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index c93ed968d1..7eac2debbd 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -543,7 +543,8 @@ class TestRegexp < Test::Unit::TestCase assert_equal(true, /../.match?('abc', -2)) assert_equal(false, /../.match?("abc", -4)) assert_equal(false, /../.match?("abc", 4)) - assert_equal(true, /../n.match?("\u3042" + '\x', 1)) + assert_equal(true, /../.match?("\u3042xx", 1)) + assert_equal(false, /../.match?("\u3042x", 1)) assert_equal(true, /\z/.match?("")) assert_equal(true, /\z/.match?("abc")) assert_equal(true, /R.../.match?("Ruby")) |