summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/io/console/console.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/io/console/console.c b/ext/io/console/console.c
index 77c5c695a1..4475953af0 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