From a64ce22997d6aa74d3b644a2c0fc0804101afb8e Mon Sep 17 00:00:00 2001 From: Klaas Freitag Date: Thu, 29 Mar 2012 13:43:39 +0200 Subject: [PATCH] Win32: Add win32 rename function that overwrites existing targets. --- src/vio/csync_vio_local.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/vio/csync_vio_local.c b/src/vio/csync_vio_local.c index 6976ca0097..e4dd4e9953 100644 --- a/src/vio/csync_vio_local.c +++ b/src/vio/csync_vio_local.c @@ -338,6 +338,18 @@ int csync_vio_local_stat(const char *uri, csync_vio_file_stat_t *buf) { } int csync_vio_local_rename(const char *olduri, const char *newuri) { +#ifdef _WIN32 + if(olduri && newuri) { + if (MoveFileEx(olduri, newuri, MOVEFILE_COPY_ALLOWED + MOVEFILE_REPLACE_EXISTING + MOVEFILE_WRITE_THROUGH )) { + return 0; + } + errno = GetLastError(); + } else { + errno = ENOENT; + } + return -1; +#endif + return rename(olduri, newuri); }