diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-01-25 11:51:41 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-01-25 11:51:41 -0500 |
| commit | 47be64af5add5c146541c16dbb043ddf97f97d34 (patch) | |
| tree | 3fabcb50c94b254a71cdbf009f29ad1ece6b1f67 /src/os.cpp | |
| parent | 4556f448060b19492d7b104ff01585241ba9c256 (diff) | |
| parent | f7670882aff5fb3a943057edd9da34d053b5fe59 (diff) | |
| download | zig-47be64af5add5c146541c16dbb043ddf97f97d34.tar.gz zig-47be64af5add5c146541c16dbb043ddf97f97d34.zip | |
Merge remote-tracking branch 'origin/master' into llvm6
Diffstat (limited to 'src/os.cpp')
| -rw-r--r-- | src/os.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/os.cpp b/src/os.cpp index ef12464c8c..e312854612 100644 --- a/src/os.cpp +++ b/src/os.cpp @@ -390,17 +390,15 @@ static int os_exec_process_posix(const char *exe, ZigList<const char *> &args, #if defined(ZIG_OS_WINDOWS) -/* -static void win32_panic(const char *str) { - DWORD err = GetLastError(); - LPSTR messageBuffer = nullptr; - FormatMessageA( - FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL); - zig_panic(str, messageBuffer); - LocalFree(messageBuffer); -} -*/ +//static void win32_panic(const char *str) { +// DWORD err = GetLastError(); +// LPSTR messageBuffer = nullptr; +// FormatMessageA( +// FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, +// NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL); +// zig_panic(str, messageBuffer); +// LocalFree(messageBuffer); +//} static int os_exec_process_windows(const char *exe, ZigList<const char *> &args, Termination *term, Buf *out_stderr, Buf *out_stdout) @@ -794,9 +792,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 defined(ZIG_OS_WINDOWS) + if (!MoveFileExA(buf_ptr(src_path), buf_ptr(dest_path), MOVEFILE_REPLACE_EXISTING)) { + return ErrorFileSystem; + } +#else if (rename(buf_ptr(src_path), buf_ptr(dest_path)) == -1) { return ErrorFileSystem; } +#endif return 0; } |
