summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io/src/file_test.c
diff options
context:
space:
mode:
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;