File db-mingw-sparse-files.patch of Package mingw64-libdb

diff -urEbwB os_windows/os_open.c os_windows/os_open.c
--- os_windows/os_open.c	2010-04-12 22:25:34.000000000 +0200
+++ os_windows/os_open.c	2010-07-26 18:10:35.000000000 +0200
@@ -9,6 +9,7 @@
 #include "db_config.h"
 
 #include "db_int.h"
+#include <winioctl.h>
 
 /*
  * __os_open --
@@ -167,6 +168,7 @@
 	fhp->handle = fhp->trunc_handle = INVALID_HANDLE_VALUE;
 	for (nrepeat = 1;; ++nrepeat) {
 		if (fhp->handle == INVALID_HANDLE_VALUE) {
+			DWORD bytes_returned;
 #ifdef DB_WINCE
 			if (LF_ISSET(DB_OSO_REGION))
 				fhp->handle = CreateFileForMapping(tname,
@@ -175,6 +177,12 @@
 #endif
 				fhp->handle = CreateFile(tname,
 				    access, share, NULL, createflag, attr, 0);
+				if (fhp->handle != INVALID_HANDLE_VALUE)
+					DeviceIoControl(fhp->handle,
+					    FSCTL_SET_SPARSE,
+					    NULL, 0,
+					    NULL, 0,
+					    &bytes_returned, NULL);
 		}
 
 #ifdef HAVE_FTRUNCATE
openSUSE Build Service is sponsored by