Index: third_party/zlib/contrib/minizip/iowin32.c |
diff --git a/third_party/zlib/contrib/minizip/iowin32.c b/third_party/zlib/contrib/minizip/iowin32.c |
index 0467c313407ae8f8438347265bfe671925369acf..6a2a883be7225417ac14d9496e5604a51bf650f1 100644 |
--- a/third_party/zlib/contrib/minizip/iowin32.c |
+++ b/third_party/zlib/contrib/minizip/iowin32.c |
@@ -23,20 +23,6 @@ |
#ifndef INVALID_SET_FILE_POINTER |
#define INVALID_SET_FILE_POINTER ((DWORD)-1) |
-#endif |
- |
- |
-#ifdef _WIN32_WINNT |
-#undef _WIN32_WINNT |
-#define _WIN32_WINNT 0x601 |
-#endif |
- |
-#if _WIN32_WINNT >= _WIN32_WINNT_WIN8 |
-#if defined(WINAPI_FAMILY_PARTITION) && (!(defined(IOWIN32_USING_WINRT_API))) |
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
-#define IOWIN32_USING_WINRT_API 1 |
-#endif |
-#endif |
#endif |
voidpf ZCALLBACK win32_open_file_func OF((voidpf opaque, const char* filename, int mode)); |
@@ -107,22 +93,8 @@ |
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); |
-#ifdef IOWIN32_USING_WINRT_API |
-#ifdef UNICODE |
- if ((filename!=NULL) && (dwDesiredAccess != 0)) |
- hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL); |
-#else |
- if ((filename!=NULL) && (dwDesiredAccess != 0)) |
- { |
- WCHAR filenameW[FILENAME_MAX + 0x200 + 1]; |
- MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200); |
- hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL); |
- } |
-#endif |
-#else |
if ((filename!=NULL) && (dwDesiredAccess != 0)) |
hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
-#endif |
return win32_build_iowin(hFile); |
} |
@@ -136,17 +108,8 @@ |
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); |
-#ifdef IOWIN32_USING_WINRT_API |
- if ((filename!=NULL) && (dwDesiredAccess != 0)) |
- { |
- WCHAR filenameW[FILENAME_MAX + 0x200 + 1]; |
- MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200); |
- hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL); |
- } |
-#else |
if ((filename!=NULL) && (dwDesiredAccess != 0)) |
hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
-#endif |
return win32_build_iowin(hFile); |
} |
@@ -160,13 +123,8 @@ |
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); |
-#ifdef IOWIN32_USING_WINRT_API |
- if ((filename!=NULL) && (dwDesiredAccess != 0)) |
- hFile = CreateFile2((LPCWSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition,NULL); |
-#else |
if ((filename!=NULL) && (dwDesiredAccess != 0)) |
hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
-#endif |
return win32_build_iowin(hFile); |
} |
@@ -180,22 +138,8 @@ |
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes); |
-#ifdef IOWIN32_USING_WINRT_API |
-#ifdef UNICODE |
- if ((filename!=NULL) && (dwDesiredAccess != 0)) |
- hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL); |
-#else |
- if ((filename!=NULL) && (dwDesiredAccess != 0)) |
- { |
- WCHAR filenameW[FILENAME_MAX + 0x200 + 1]; |
- MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200); |
- hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL); |
- } |
-#endif |
-#else |
if ((filename!=NULL) && (dwDesiredAccess != 0)) |
hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
-#endif |
return win32_build_iowin(hFile); |
} |
@@ -244,26 +188,6 @@ |
return ret; |
} |
-static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *newPos, DWORD dwMoveMethod) |
-{ |
-#ifdef IOWIN32_USING_WINRT_API |
- return SetFilePointerEx(hFile, pos, newPos, dwMoveMethod); |
-#else |
- LONG lHigh = pos.HighPart; |
- DWORD dwNewPos = SetFilePointer(hFile, pos.LowPart, &lHigh, dwMoveMethod); |
- BOOL fOk = TRUE; |
- if (dwNewPos == 0xFFFFFFFF) |
- if (GetLastError() != NO_ERROR) |
- fOk = FALSE; |
- if ((newPos != NULL) && (fOk)) |
- { |
- newPos->LowPart = dwNewPos; |
- newPos->HighPart = lHigh; |
- } |
- return fOk; |
-#endif |
-} |
- |
long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream) |
{ |
long ret=-1; |
@@ -272,17 +196,15 @@ |
hFile = ((WIN32FILE_IOWIN*)stream) -> hf; |
if (hFile != NULL) |
{ |
- LARGE_INTEGER pos; |
- pos.QuadPart = 0; |
- |
- if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT)) |
+ DWORD dwSet = SetFilePointer(hFile, 0, NULL, FILE_CURRENT); |
+ if (dwSet == INVALID_SET_FILE_POINTER) |
{ |
DWORD dwErr = GetLastError(); |
((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
ret = -1; |
} |
else |
- ret=(long)pos.LowPart; |
+ ret=(long)dwSet; |
} |
return ret; |
} |
@@ -296,17 +218,17 @@ |
if (hFile) |
{ |
- LARGE_INTEGER pos; |
- pos.QuadPart = 0; |
- |
- if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT)) |
+ LARGE_INTEGER li; |
+ li.QuadPart = 0; |
+ li.u.LowPart = SetFilePointer(hFile, li.u.LowPart, &li.u.HighPart, FILE_CURRENT); |
+ if ( (li.LowPart == 0xFFFFFFFF) && (GetLastError() != NO_ERROR)) |
{ |
DWORD dwErr = GetLastError(); |
((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
ret = (ZPOS64_T)-1; |
} |
else |
- ret=pos.QuadPart; |
+ ret=li.QuadPart; |
} |
return ret; |
} |
@@ -336,9 +258,8 @@ |
if (hFile != NULL) |
{ |
- LARGE_INTEGER pos; |
- pos.QuadPart = offset; |
- if (!MySetFilePointerEx(hFile, pos, NULL, dwMoveMethod)) |
+ DWORD dwSet = SetFilePointer(hFile, offset, NULL, dwMoveMethod); |
+ if (dwSet == INVALID_SET_FILE_POINTER) |
{ |
DWORD dwErr = GetLastError(); |
((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
@@ -375,9 +296,9 @@ |
if (hFile) |
{ |
- LARGE_INTEGER pos; |
- pos.QuadPart = offset; |
- if (!MySetFilePointerEx(hFile, pos, NULL, dwMoveMethod)) |
+ LARGE_INTEGER* li = (LARGE_INTEGER*)&offset; |
+ DWORD dwSet = SetFilePointer(hFile, li->u.LowPart, &li->u.HighPart, dwMoveMethod); |
+ if (dwSet == INVALID_SET_FILE_POINTER) |
{ |
DWORD dwErr = GetLastError(); |
((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |