diff options
| author | Tomoyuki Sahara <[email protected]> | 2017-10-18 13:22:22 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-10-18 13:22:22 +0900 |
| commit | 3c8e1f94c44252c836f79a48bb17726da28e2756 (patch) | |
| tree | 6c28d0e0d24e938c0c46982c87270049f4f10f75 /src | |
| parent | f8121953e7970708cf8aa1c4075cf1926b0646ee (diff) | |
| parent | 0d92431061322e10cd118b895af8fd94675fd865 (diff) | |
| download | mruby-3c8e1f94c44252c836f79a48bb17726da28e2756.tar.gz mruby-3c8e1f94c44252c836f79a48bb17726da28e2756.zip | |
Merge pull request #94 from kazuho/kazuho/rename-compatibility
make `rename` behavior consistent with MRI
Diffstat (limited to 'src')
| -rw-r--r-- | src/file.c | 2 |
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); |
