summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorKazuho Oku <[email protected]>2017-10-12 15:23:52 +0900
committerKazuho Oku <[email protected]>2017-10-12 15:23:52 +0900
commit0d92431061322e10cd118b895af8fd94675fd865 (patch)
tree6c28d0e0d24e938c0c46982c87270049f4f10f75 /src
parentf8121953e7970708cf8aa1c4075cf1926b0646ee (diff)
downloadmruby-0d92431061322e10cd118b895af8fd94675fd865.tar.gz
mruby-0d92431061322e10cd118b895af8fd94675fd865.zip
make the behavior consistent with MRI
Diffstat (limited to 'src')
-rw-r--r--src/file.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/file.c b/src/file.c
index 9a0bed5a6..0f7674d77 100644
--- a/src/file.c
+++ b/src/file.c
@@ -119,9 +119,11 @@ mrb_file_s_rename(mrb_state *mrb, mrb_value obj)
src = mrb_string_value_cstr(mrb, &from);
dst = mrb_string_value_cstr(mrb, &to);
if (rename(src, dst) < 0) {
+#if defined(_WIN32) || defined(_WIN64)
if (CHMOD(dst, 0666) == 0 && UNLINK(dst) == 0 && rename(src, dst) == 0) {
return mrb_fixnum_value(0);
}
+#endif
mrb_sys_fail(mrb, mrb_str_to_cstr(mrb, mrb_format(mrb, "(%S, %S)", from, to)));
}
return mrb_fixnum_value(0);