Skip to content

Commit

Permalink
os_rename uses MoveFileEx on windows
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewrk committed Jan 19, 2018
1 parent 9f5c0b6 commit 890bf00
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions src/os.cpp
Expand Up @@ -797,17 +797,15 @@ int os_rename(Buf *src_path, Buf *dest_path) {
if (buf_eql_buf(src_path, dest_path)) {
return 0;
}
#if defined(ZIG_OS_WINDOWS)
if (!MoveFileEx(buf_ptr(dest_path), buf_ptr(src_path), MOVEFILE_REPLACE_EXISTING)) {
return ErrorFileSystem;
}
#else
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;
}
#endif
return 0;
}

Expand Down

0 comments on commit 890bf00

Please sign in to comment.