2 * Mingw Compatibility functions
5 * Licensed under the Open Software License version 1.1
19 void *blob_alloc(unsigned long size
)
28 void blob_free(void *addr
, unsigned long size
)
33 long double string_to_ld(const char *nptr
, char **endptr
)
35 return strtod(nptr
, endptr
);
38 int identical_files(struct stream
* s
, struct stat
*st
, const char * name
)
40 HANDLE file1
=CreateFile(s
->name
,GENERIC_READ
,FILE_SHARE_READ
,NULL
,OPEN_EXISTING
,FILE_ATTRIBUTE_NORMAL
,NULL
);
41 if(file1
==INVALID_HANDLE_VALUE
)
43 HANDLE file2
=CreateFile(name
,GENERIC_READ
,FILE_SHARE_READ
,NULL
,OPEN_EXISTING
,FILE_ATTRIBUTE_NORMAL
,NULL
);
44 if(file2
==INVALID_HANDLE_VALUE
) {
48 BY_HANDLE_FILE_INFORMATION info1
;
49 BY_HANDLE_FILE_INFORMATION info2
;
51 if(GetFileInformationByHandle(file1
,&info1
) && GetFileInformationByHandle(file2
,&info2
)){
52 if(info1
.nFileIndexLow
==info2
.nFileIndexLow
&&
53 info1
.nFileIndexHigh
==info2
.nFileIndexHigh
&&
54 info1
.dwVolumeSerialNumber
==info2
.dwVolumeSerialNumber
)