Version 0.6.4
diff --git a/diskio-windows.cc b/diskio-windows.cc
index d5cd84b..aaf5c64 100644
--- a/diskio-windows.cc
+++ b/diskio-windows.cc
@@ -19,7 +19,7 @@
#include <winioctl.h>
#define fstat64 fstat
#define stat64 stat
-//#define S_IRGRP 0
+#define S_IRGRP 0
#define S_IROTH 0
#include <stdio.h>
#include <string>
@@ -93,6 +93,14 @@
fd = CreateFile(realFilename.c_str(), GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
+ // Preceding call can fail when creating backup files; if so, try
+ // again with different option...
+ if (fd == INVALID_HANDLE_VALUE) {
+ CloseHandle(fd);
+ fd = CreateFile(realFilename.c_str(), GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS,
+ FILE_ATTRIBUTE_NORMAL, NULL);
+ } // if
if (fd == INVALID_HANDLE_VALUE) {
CloseHandle(fd);
isOpen = 0;