mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #3882 from mattn/fix-filename
use filename in locale
This commit is contained in:
+2
-2
@@ -999,8 +999,8 @@ char* mrb_locale_from_utf8(const char *p, int len);
|
||||
#define mrb_locale_free(p) free(p)
|
||||
#define mrb_utf8_free(p) free(p)
|
||||
#else
|
||||
#define mrb_utf8_from_locale(p, l) (p)
|
||||
#define mrb_locale_from_utf8(p, l) (p)
|
||||
#define mrb_utf8_from_locale(p, l) ((char*)p)
|
||||
#define mrb_locale_from_utf8(p, l) ((char*)p)
|
||||
#define mrb_locale_free(p)
|
||||
#define mrb_utf8_free(p)
|
||||
#endif
|
||||
|
||||
@@ -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* 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. */
|
||||
@@ -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(fname, (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(fname);
|
||||
|
||||
if (fd <= 2) {
|
||||
mrb_fd_cloexec(mrb, fd);
|
||||
|
||||
Reference in New Issue
Block a user