From 977f79478fbadd9ed6d55c8bd7a6fc1deb5c78fc Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 12 Dec 2017 16:09:10 +0900 Subject: use filename in locale --- mrbgems/mruby-io/src/io.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'mrbgems/mruby-io/src') diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c index b3166b11b..c015018c9 100644 --- a/mrbgems/mruby-io/src/io.c +++ b/mrbgems/mruby-io/src/io.c @@ -557,6 +557,7 @@ mrb_cloexec_open(mrb_state *mrb, const char *pathname, mrb_int flags, mrb_int mo { mrb_value emsg; int fd, retry = FALSE; + char* utf8 = mrb_locale_from_utf8(pathname, -1); #ifdef O_CLOEXEC /* O_CLOEXEC is available since Linux 2.6.23. Linux 2.6.18 silently ignore it. */ @@ -565,7 +566,7 @@ mrb_cloexec_open(mrb_state *mrb, const char *pathname, mrb_int flags, mrb_int mo flags |= O_NOINHERIT; #endif reopen: - fd = open(pathname, (int)flags, mode); + fd = open(utf8, (int)flags, mode); if (fd == -1) { if (!retry) { switch (errno) { @@ -581,6 +582,7 @@ reopen: mrb_str_modify(mrb, mrb_str_ptr(emsg)); mrb_sys_fail(mrb, RSTRING_PTR(emsg)); } + mrb_utf8_free(utf8); if (fd <= 2) { mrb_fd_cloexec(mrb, fd); -- cgit v1.2.3 From 17cd7a65e7e91e4397dbbf0de0d77f78990aa6a2 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 12 Dec 2017 18:52:18 +0900 Subject: fix wrong variable name --- mrbgems/mruby-io/src/io.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mrbgems/mruby-io/src') diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c index c015018c9..99ddf4e39 100644 --- a/mrbgems/mruby-io/src/io.c +++ b/mrbgems/mruby-io/src/io.c @@ -557,7 +557,7 @@ mrb_cloexec_open(mrb_state *mrb, const char *pathname, mrb_int flags, mrb_int mo { mrb_value emsg; int fd, retry = FALSE; - char* utf8 = mrb_locale_from_utf8(pathname, -1); + char* fname = mrb_locale_from_utf8(pathname, -1); #ifdef O_CLOEXEC /* O_CLOEXEC is available since Linux 2.6.23. Linux 2.6.18 silently ignore it. */ @@ -566,7 +566,7 @@ mrb_cloexec_open(mrb_state *mrb, const char *pathname, mrb_int flags, mrb_int mo flags |= O_NOINHERIT; #endif reopen: - fd = open(utf8, (int)flags, mode); + fd = open(fname, (int)flags, mode); if (fd == -1) { if (!retry) { switch (errno) { @@ -582,7 +582,7 @@ reopen: mrb_str_modify(mrb, mrb_str_ptr(emsg)); mrb_sys_fail(mrb, RSTRING_PTR(emsg)); } - mrb_utf8_free(utf8); + mrb_utf8_free(fname); if (fd <= 2) { mrb_fd_cloexec(mrb, fd); -- cgit v1.2.3