From: "nobu (Nobuyoshi Nakada)" Date: 2022-06-29T05:07:20+00:00 Subject: [ruby-core:109085] [Ruby master Bug#18881] IO#read_nonblock raises IOError when called following buffered character IO Issue #18881 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected It is an expected behavior. On Windows, text/binary conversion is used by default, and `ungetc` pushes back the character to the conversion buffer in that case. The error message means this situation. ---------------------------------------- Bug #18881: IO#read_nonblock raises IOError when called following buffered character IO https://bugs.ruby-lang.org/issues/18881#change-98230 * Author: javanthropus (Jeremy Bopp) * Status: Rejected * Priority: Normal * ruby -v: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- The following example code works as expected on Linux but raises an `IOError` on Windows: ``` ruby r, w = IO.pipe w.write("foobar") c = r.getc r.ungetc(c) r.read_nonblock(3) ``` The error message is: ``` IOError: byte oriented read for character buffered IO ``` -- https://bugs.ruby-lang.org/ Unsubscribe: