Bug #12989 » 0001-Passing-binmode-true-to-IO.pipe-should-behave-like-b.patch
io.c | ||
---|---|---|
rb_io_synchronized(fptr2);
|
||
extract_binmode(opt, &fmode);
|
||
if (fmode & FMODE_BINMODE) {
|
||
rb_io_ascii8bit_binmode(r);
|
||
rb_io_ascii8bit_binmode(w);
|
||
}
|
||
#if DEFAULT_TEXTMODE
|
||
if ((fptr->mode & FMODE_TEXTMODE) && (fmode & FMODE_BINMODE)) {
|
||
fptr->mode &= ~FMODE_TEXTMODE;
|
test/ruby/test_io.rb | ||
---|---|---|
].each{|thr| thr.join}
|
||
end
|
||
def test_binmode_writer
|
||
EnvUtil.with_default_internal(Encoding::UTF_8) do
|
||
reader, writer = IO.pipe
|
||
reader.binmode
|
||
writer.binmode
|
||
reader2, writer2 = IO.pipe(binmode: true)
|
||
assert writer.binmode?
|
||
assert writer2.binmode?
|
||
assert_equal writer.binmode?, writer2.binmode?
|
||
assert_equal writer.external_encoding, writer2.external_encoding
|
||
assert_equal writer.internal_encoding, writer2.internal_encoding
|
||
end
|
||
end
|
||
def test_binmode_reader
|
||
EnvUtil.with_default_internal(Encoding::UTF_8) do
|
||
reader, writer = IO.pipe
|
||
reader.binmode
|
||
writer.binmode
|
||
reader2, writer2 = IO.pipe(binmode: true)
|
||
assert reader.binmode?
|
||
assert reader2.binmode?
|
||
assert_equal reader.binmode?, reader2.binmode?
|
||
assert_equal reader.external_encoding, reader2.external_encoding
|
||
assert_equal reader.internal_encoding, reader2.internal_encoding
|
||
end
|
||
end
|
||
def test_pipe_block
|
||
x = nil
|
||
ret = IO.pipe {|r, w|
|