From 5092d2474addd3ca6ffa3b97e3059c712604e6c5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 11 Nov 2009 09:19:40 -0500 Subject: [PATCH] Provide SetFilePointerEx for VS 6 Visual Studio 6 does not provide SetFilePointerEx in its Windows API. We implement it in terms of SetFilePointer for that compiler. SVN-Revision: 1636 --- libarchive/archive_windows.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libarchive/archive_windows.c b/libarchive/archive_windows.c index 176f2c6e5..2970c4961 100644 --- a/libarchive/archive_windows.c +++ b/libarchive/archive_windows.c @@ -60,6 +60,24 @@ #define EPOC_TIME ARCHIVE_LITERAL_ULL(116444736000000000) +#if defined(_MSC_VER) && _MSC_VER < 1300 +/* VS 6 does not provide SetFilePointerEx, so define it here. */ +static BOOL SetFilePointerEx(HANDLE hFile, + LARGE_INTEGER liDistanceToMove, + PLARGE_INTEGER lpNewFilePointer, + DWORD dwMoveMethod) +{ + LARGE_INTEGER li; + li.QuadPart = liDistanceToMove.QuadPart; + li.LowPart = SetFilePointer( + hFile, li.LowPart, &li.HighPart, dwMoveMethod); + if(lpNewFilePointer) { + lpNewFilePointer->QuadPart = li.QuadPart; + } + return li.LowPart != -1 || GetLastError() == NO_ERROR; +} +#endif + struct ustat { int64_t st_atime; uint32_t st_atime_nsec; -- 2.47.3