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:
parent
38a3965dea
commit
f27eb8148f
2 changed files with 14 additions and 2 deletions
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue