summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-10-11 01:51:18 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-10-11 02:00:24 +0900
commita79966743c346bfc588022db29229b79bee51d45 (patch)
tree2e401b4de42898015f466c29fdac216609a52aa7 /ext
parente10d4dce1648147347a65f743acc325ab4753b10 (diff)
[ruby/io-console] Fix timeout type error (#18)
Fixed TypeError when IO#getch timed out `rb_io_wait` returns a bit-flags Integer representing available events, or Qfalse if timed out. Also the result of `NUM2INT` is not a `VALUE`. ``` $ ./bin/ruby -v -rio/console -e "p IO.console.getch(intr: true, time: 0.1)" ruby 3.0.0dev (2020-10-09T20:27:30Z master 5ea2ea74cc) [x64-mingw32] -e:1:in `getch': no implicit conversion of false into Integer (TypeError) from -e:1:in `<main>' ``` https://github.com/ruby/io-console/commit/3bdfaf62df
Diffstat (limited to 'ext')
-rw-r--r--ext/io/console/console.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/io/console/console.c b/ext/io/console/console.c
index 50baf4f591..11ce699971 100644
--- a/ext/io/console/console.c
+++ b/ext/io/console/console.c
@@ -546,7 +546,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_NUM2INT(rb_io_wait(io, RUBY_IO_READABLE, timeout));
+ VALUE result = rb_io_wait(io, RUBY_IO_READABLE, timeout);
if (result == Qfalse) return Qnil;
# endif
}