summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io/src/file_test.c
diff options
context:
space:
mode:
authorYasuhiro Matsumoto <[email protected]>2017-12-13 10:09:16 +0900
committerYasuhiro Matsumoto <[email protected]>2017-12-13 10:12:59 +0900
commit16c2ac2588d698e18faf0e3311fbdbd4c3f21c31 (patch)
tree64e7426d6bff29ce43fcea6033d586afc4d5dd1b /mrbgems/mruby-io/src/file_test.c
parente14387440e61016f75d12f19bcb16107e4705f82 (diff)
downloadmruby-16c2ac2588d698e18faf0e3311fbdbd4c3f21c31.tar.gz
mruby-16c2ac2588d698e18faf0e3311fbdbd4c3f21c31.zip
fix path locales
Diffstat (limited to 'mrbgems/mruby-io/src/file_test.c')
-rw-r--r--mrbgems/mruby-io/src/file_test.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/mrbgems/mruby-io/src/file_test.c b/mrbgems/mruby-io/src/file_test.c
index da2ef77b0..e429b06b3 100644
--- a/mrbgems/mruby-io/src/file_test.c
+++ b/mrbgems/mruby-io/src/file_test.c
@@ -63,11 +63,15 @@ mrb_stat0(mrb_state *mrb, mrb_value obj, struct stat *st, int do_lstat)
tmp = mrb_funcall(mrb, obj, "is_a?", 1, str_klass);
if (mrb_test(tmp)) {
+ char *path = mrb_locale_from_utf8(mrb_str_to_cstr(mrb, obj), -1);
+ int ret;
if (do_lstat) {
- return LSTAT(mrb_str_to_cstr(mrb, obj), st);
+ ret = LSTAT(path, st);
} else {
- return stat(mrb_str_to_cstr(mrb, obj), st);
+ ret = stat(path, st);
}
+ mrb_locale_free(path);
+ return ret;
}
return -1;