[Bug #19763] Raise same message exception for regexp
This commit is contained in:
parent
4e2f98be39
commit
e2257831ab
Notes:
git
2023-07-09 08:09:49 +00:00
5
string.c
5
string.c
@ -3861,6 +3861,7 @@ rb_str_index_m(int argc, VALUE *argv, VALUE str)
|
||||
{
|
||||
VALUE sub;
|
||||
VALUE initpos;
|
||||
rb_encoding *enc = STR_ENC_GET(str);
|
||||
long pos;
|
||||
|
||||
if (rb_scan_args(argc, argv, "11", &sub, &initpos) == 2) {
|
||||
@ -3885,7 +3886,7 @@ rb_str_index_m(int argc, VALUE *argv, VALUE str)
|
||||
return Qnil;
|
||||
}
|
||||
pos = str_offset(RSTRING_PTR(str), RSTRING_END(str), pos,
|
||||
rb_enc_check(str, sub), single_byte_optimizable(str));
|
||||
enc, single_byte_optimizable(str));
|
||||
|
||||
if (rb_reg_search(sub, str, pos, 0) < 0) {
|
||||
return Qnil;
|
||||
@ -4182,7 +4183,7 @@ rb_str_rindex_m(int argc, VALUE *argv, VALUE str)
|
||||
}
|
||||
|
||||
if (RB_TYPE_P(sub, T_REGEXP)) {
|
||||
/* enc = rb_get_check(str, sub); */
|
||||
/* enc = rb_enc_check(str, sub); */
|
||||
pos = str_offset(RSTRING_PTR(str), RSTRING_END(str), pos,
|
||||
enc, single_byte_optimizable(str));
|
||||
|
||||
|
@ -1090,7 +1090,23 @@ class TestM17N < Test::Unit::TestCase
|
||||
assert_nil(e("\xa1\xa2\xa3\xa4").index(e("\xa3")))
|
||||
assert_nil(e("\xa1\xa2\xa3\xa4").rindex(e("\xa3")))
|
||||
s = e("\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4")
|
||||
assert_raise(Encoding::CompatibilityError){s.rindex(a("\xb1\xa3"))}
|
||||
|
||||
a_with_e = /EUC-JP and ASCII-8BIT/
|
||||
assert_raise_with_message(Encoding::CompatibilityError, a_with_e) do
|
||||
s.index(a("\xb1\xa3"))
|
||||
end
|
||||
assert_raise_with_message(Encoding::CompatibilityError, a_with_e) do
|
||||
s.rindex(a("\xb1\xa3"))
|
||||
end
|
||||
|
||||
a_with_e = /ASCII-8BIT regexp with EUC-JP string/
|
||||
assert_raise_with_message(Encoding::CompatibilityError, a_with_e) do
|
||||
s.index(Regexp.new(a("\xb1\xa3")))
|
||||
end
|
||||
assert_raise_with_message(Encoding::CompatibilityError, a_with_e) do
|
||||
s.rindex(Regexp.new(a("\xb1\xa3")))
|
||||
end
|
||||
|
||||
bug11488 = '[ruby-core:70592] [Bug #11488]'
|
||||
each_encoding("abcdef", "def") do |str, substr|
|
||||
assert_equal(3, str.index(substr), bug11488)
|
||||
|
Loading…
x
Reference in New Issue
Block a user