[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]