1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Sync io-console gem.

This commit is contained in:
Samuel Williams 2021-12-29 13:27:40 +13:00
parent 38a3965dea
commit f27eb8148f
No known key found for this signature in database
GPG key ID: A0765423A44728FB
2 changed files with 14 additions and 2 deletions

View file

@ -90,6 +90,10 @@ extern VALUE rb_scheduler_timeout(struct timeval *timeout);
#define sys_fail_fptr(fptr) rb_sys_fail_str((fptr)->pathv)
#ifndef HAVE_RB_F_SEND
#ifndef RB_PASS_CALLED_KEYWORDS
# define rb_funcallv_kw(recv, mid, arg, argv, kw_splat) rb_funcallv(recv, mid, arg, argv)
#endif
static ID id___send__;
static VALUE
@ -104,7 +108,7 @@ rb_f_send(int argc, VALUE *argv, VALUE recv)
else {
vid = id___send__;
}
return rb_funcallv(recv, vid, argc, argv);
return rb_funcallv_kw(recv, vid, argc, argv, RB_PASS_CALLED_KEYWORDS);
}
#endif
@ -555,7 +559,7 @@ console_getch(int argc, VALUE *argv, VALUE io)
if (w < 0) rb_eof_error();
if (!(w & RB_WAITFD_IN)) return Qnil;
# else
VALUE result = rb_io_wait(io, RUBY_IO_READABLE, timeout);
VALUE result = rb_io_wait(io, RB_INT2NUM(RUBY_IO_READABLE), timeout);
if (!RTEST(result)) return Qnil;
# endif
}

View file

@ -407,6 +407,10 @@ defined?(PTY) and defined?(IO.console) and TestIO_Console.class_eval do
assert_equal(["true"], run_pty("IO.console(:close); p IO.console(:tty?)"))
end
def test_console_kw
assert_equal(["File"], run_pty("IO.console.close; p IO.console(:clone, freeze: true).class"))
end
def test_sync
assert_equal(["true"], run_pty("p IO.console.sync"))
end
@ -483,6 +487,10 @@ defined?(IO.console) and TestIO_Console.class_eval do
IO.console(:close)
end
def test_console_kw
assert_kind_of(IO, IO.console(:clone, freeze: true))
end
def test_sync
assert(IO.console.sync, "console should be unbuffered")
ensure