[Bug #20924] Fix reading with delimiter in wide character encodings

This commit is contained in:
Nobuyoshi Nakada 2024-12-10 23:57:57 +09:00
parent 3422bfcab6
commit e90b447655
No known key found for this signature in database
GPG key ID: 3582D74E1FEE4465
Notes: git 2024-12-10 16:14:28 +00:00
2 changed files with 75 additions and 10 deletions

View file

@ -2036,6 +2036,36 @@ class TestIO < Test::Unit::TestCase
}
end
def test_readline_limit_nonascii
mkcdtmpdir do
i = 0
File.open("text#{i+=1}", "w+:utf-8") do |f|
f.write("Test\nok\u{bf}ok\n")
f.rewind
assert_equal("Test\nok\u{bf}", f.readline("\u{bf}"))
assert_equal("ok\n", f.readline("\u{bf}"))
end
File.open("text#{i+=1}", "w+b:utf-32le") do |f|
f.write("0123456789")
f.rewind
assert_equal(4, f.readline(4).bytesize)
assert_equal(4, f.readline(3).bytesize)
end
File.open("text#{i+=1}", "w+:utf-8:utf-32le") do |f|
f.write("0123456789")
f.rewind
assert_equal(4, f.readline(4).bytesize)
assert_equal(4, f.readline(3).bytesize)
end
end
end
def test_set_lineno_readline
pipe(proc do |w|
w.puts "foo"