summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2017-05-19 17:14:43 +0900
committerTomoyuki Sahara <[email protected]>2017-05-19 17:14:43 +0900
commit6836f424c5ff95d0114a426010b22254804bc9a3 (patch)
tree79c100142b32f2d3ca1843e7939786ffc5fa8d08
parent728d313b2c238ac0f41a4aa7e4a88e6a8fee8079 (diff)
downloadmruby-6836f424c5ff95d0114a426010b22254804bc9a3.tar.gz
mruby-6836f424c5ff95d0114a426010b22254804bc9a3.zip
"open" error message should include pathname. fixes #77.
-rw-r--r--src/io.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/io.c b/src/io.c
index dd030b87a..51a659f0e 100644
--- a/src/io.c
+++ b/src/io.c
@@ -556,6 +556,7 @@ mrb_io_s_sysclose(mrb_state *mrb, mrb_value klass)
int
mrb_cloexec_open(mrb_state *mrb, const char *pathname, mrb_int flags, mrb_int mode)
{
+ mrb_value emsg;
int fd, retry = FALSE;
#ifdef O_CLOEXEC
@@ -576,7 +577,10 @@ reopen:
goto reopen;
}
}
- mrb_sys_fail(mrb, "open");
+
+ emsg = mrb_format(mrb, "open %S", mrb_str_new_cstr(mrb, pathname));
+ mrb_str_modify(mrb, mrb_str_ptr(emsg));
+ mrb_sys_fail(mrb, RSTRING_PTR(emsg));
}
if (fd <= 2) {