diff --git a/ext/io/console/console.c b/ext/io/console/console.c index 98296c8..8a3f3b3 100644 --- a/ext/io/console/console.c +++ b/ext/io/console/console.c @@ -125,7 +125,10 @@ io_get_write_io_fallback(VALUE io) #define rb_io_get_write_io io_get_write_io_fallback #endif -#define sys_fail(io) rb_sys_fail_str(rb_io_path(io)) +#define sys_fail(io) do { \ + int err = errno; \ + rb_syserr_fail_str(err, rb_io_path(io)); \ +} while (0) #ifndef HAVE_RB_F_SEND #ifndef RB_PASS_CALLED_KEYWORDS