ruby-changes:71575
From: Nobuyoshi <ko1@a...>
Date: Thu, 31 Mar 2022 18:01:39 +0900 (JST)
Subject: [ruby-changes:71575] d8189ed23f (master): Return only captured range in `MatchData` [Bug #18670]
https://git.ruby-lang.org/ruby.git/commit/?id=d8189ed23f From d8189ed23f02dd197453279aeee9be1785337d4f Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Thu, 31 Mar 2022 18:01:15 +0900 Subject: Return only captured range in `MatchData` [Bug #18670] --- re.c | 2 +- test/ruby/test_regexp.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/re.c b/re.c index a4cd2e39b9..e7c5487655 100644 --- a/re.c +++ b/re.c @@ -2159,7 +2159,7 @@ match_aref(int argc, VALUE *argv, VALUE match) https://github.com/ruby/ruby/blob/trunk/re.c#L2159 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 7f787f99f5..4e840f23ad 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -488,6 +488,7 @@ class TestRegexp < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_regexp.rb#L488 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 -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/