Commit 9f5c0b6e60
Changed files (1)
src
src/os.cpp
@@ -794,7 +794,18 @@ int os_delete_file(Buf *path) {
}
int os_rename(Buf *src_path, Buf *dest_path) {
+ if (buf_eql_buf(src_path, dest_path)) {
+ return 0;
+ }
if (rename(buf_ptr(src_path), buf_ptr(dest_path)) == -1) {
+ // Windows requires the dest path to be missing
+ if (errno == EACCES) {
+ remove(buf_ptr(dest_path));
+ if (rename(buf_ptr(src_path), buf_ptr(dest_path)) == -1) {
+ return ErrorFileSystem;
+ }
+ return 0;
+ }
return ErrorFileSystem;
}
return 0;