diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | regexec.c | 5 | ||||
-rw-r--r-- | test/ruby/test_regexp.rb | 5 |
3 files changed, 12 insertions, 5 deletions
@@ -1,3 +1,10 @@ +Thu Jul 15 15:47:32 2010 NARUSE, Yui <[email protected]> + + * regexec.c (onig_search): don't skip non-ANYCHARs when + .* fails to match. This causes to fail matching + ANYCHAR_STAR with LOOK_BEHIND. This fix is workaround + and disable the optimization. [ruby-dev:41851] + Thu Jul 15 06:11:29 2010 Aaron Patterson <[email protected]> * lib/rdoc/markup/attribute_manager.rb: fixing ri output when special @@ -3636,11 +3636,6 @@ onig_search(regex_t* reg, const UChar* str, const UChar* end, MATCH_AND_RETURN_CHECK(orig_range); prev = s; s += enclen(reg->enc, s, end); - - while (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end) && s < range) { - prev = s; - s += enclen(reg->enc, s, end); - } } while (s < range); goto mismatch; } diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index 9fd948d6a1..9e850b902e 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -11,6 +11,11 @@ class TestRegexp < Test::Unit::TestCase $VERBOSE = @verbose end + def test_ruby_dev_999 + assert_match(/(?<=a).*b/, "aab") + assert_match(/(?<=\u3042).*b/, "\u3042ab") + end + def test_ruby_core_27247 assert_match(/(a){2}z/, "aaz") end |