[ruby/io-console] Relaxed min: option warning

When `min: 0` is given to `IO#getch` with `time:` option, it is
expected to return nil if timed out, and needed for source code
the compatibility with unixen platforms.

https://github.com/ruby/io-console/commit/a2afbe72bd
This commit is contained in:
Nobuyoshi Nakada 2020-10-10 21:58:07 +09:00
parent a79966743c
commit 37259e878f

View File

@ -537,7 +537,13 @@ console_getch(int argc, VALUE *argv, VALUE io)
timeout = rb_scheduler_timeout(&tv);
# endif
}
if (optp->vmin != 1) {
switch (optp->vmin) {
case 1: /* default */
break;
case 0: /* return nil when timed out */
if (optp->vtime) break;
/* fallthru */
default:
rb_warning("min option ignored");
}
if (optp->intr) {