summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@ruby-lang.org>2022-09-04 16:00:14 +0900
committernagachika <nagachika@ruby-lang.org>2022-09-04 16:00:14 +0900
commit1cfc139f6d0cb80d6024b0c416976194929417cf (patch)
tree84f3ac6f7feb014ab1a5e7ec4d7f67f6f7a7bf12
parent4d26cfb2fef809474c8e05bf46abea8f301b2f9a (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.c2
-rw-r--r--test/ruby/test_regexp.rb1
-rw-r--r--version.h4
3 files changed, 4 insertions, 3 deletions
diff --git a/re.c b/re.c
index d91909a743..1ecb067399 100644
--- a/re.c
+++ b/re.c
@@ -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
diff --git a/version.h b/version.h
index 826c72a564..27440ec8ee 100644
--- a/version.h
+++ b/version.h
@@ -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"