diff options
author | nagachika <nagachika@ruby-lang.org> | 2022-09-04 16:00:14 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2022-09-04 16:00:14 +0900 |
commit | 1cfc139f6d0cb80d6024b0c416976194929417cf (patch) | |
tree | 84f3ac6f7feb014ab1a5e7ec4d7f67f6f7a7bf12 | |
parent | 4d26cfb2fef809474c8e05bf46abea8f301b2f9a (diff) |
merge revision(s) d8189ed23f02dd197453279aeee9be1785337d4f: [Backport #18670]
Return only captured range in `MatchData` [Bug #18670]
---
re.c | 2 +-
test/ruby/test_regexp.rb | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
-rw-r--r-- | re.c | 2 | ||||
-rw-r--r-- | test/ruby/test_regexp.rb | 1 | ||||
-rw-r--r-- | version.h | 4 |
3 files changed, 4 insertions, 3 deletions
@@ -2120,7 +2120,7 @@ match_aref(int argc, VALUE *argv, VALUE match) else if (beg > num_regs) { return Qnil; } - else if (beg+len > num_regs) { + if (beg+len > num_regs) { len = num_regs - beg; } return match_ary_subseq(match, beg, len, Qnil); diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index b4e4f725b3..c183988303 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -467,6 +467,7 @@ class TestRegexp < Test::Unit::TestCase assert_nil(m[5]) assert_raise(IndexError) { m[:foo] } assert_raise(TypeError) { m[nil] } + assert_equal(["baz", nil], m[-2, 3]) end def test_match_values_at @@ -11,11 +11,11 @@ # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR #define RUBY_VERSION_TEENY 3 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR -#define RUBY_PATCHLEVEL 44 +#define RUBY_PATCHLEVEL 45 #define RUBY_RELEASE_YEAR 2022 #define RUBY_RELEASE_MONTH 9 -#define RUBY_RELEASE_DAY 3 +#define RUBY_RELEASE_DAY 4 #include "ruby/version.h" |