Actions
Bug #14338
closedIO#write without args seems wrong
Bug #14338: IO#write without args seems wrong
Description
"ruby -e STDOUT.write" outputs "#<IO:0x583a2de0>" (without quotes)
"ruby -rstringio -e 'p StringIO.new.write'" shows zero bytes written
The following restores <= 2.4 behavior for IO#write, but other things (StringIO,
OpenSSL, ...) need to be modified, too:
diff --git a/io.c b/io.c index eeaf0c021c..0d95d12a9b 100644 --- a/io.c +++ b/io.c @@ -1675,7 +1675,10 @@ io_writev(int argc, VALUE *argv, VALUE io) static VALUE io_write_m(int argc, VALUE *argv, VALUE io) { - if (argc > 1) { + if (argc <= 0) { + rb_error_arity(argc, 1, UNLIMITED_ARGUMENTS); + } + else if (argc > 1) { return io_writev(argc, argv, io); } else { Opinions? Should we raise or just return 0 when no args are given?
Actions