aboutsummaryrefslogtreecommitdiff
path: root/src/os.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-01-25 11:51:41 -0500
committerAndrew Kelley <superjoe30@gmail.com>2018-01-25 11:51:41 -0500
commit47be64af5add5c146541c16dbb043ddf97f97d34 (patch)
tree3fabcb50c94b254a71cdbf009f29ad1ece6b1f67 /src/os.cpp
parent4556f448060b19492d7b104ff01585241ba9c256 (diff)
parentf7670882aff5fb3a943057edd9da34d053b5fe59 (diff)
downloadzig-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.cpp29
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;
}