Merge pull request #3942 from akallabeth/shift_warn_fix

Fixed right shift on 32bit platforms.
This commit is contained in:
David Fort 2017-05-15 13:56:07 +02:00 committed by GitHub
commit 2320b3b7e9
3 changed files with 14 additions and 4 deletions

View File

@ -184,6 +184,11 @@ if(MSVC)
endif()
endif()
# Enable 64bit file support on linux.
if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
add_definitions("-D_FILE_OFFSET_BITS=64")
endif()
# Compiler-specific flags
if(CMAKE_COMPILER_IS_GNUCC)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "i686")

View File

@ -161,6 +161,11 @@ endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWINPR_EXPORTS")
# Enable 64bit file support on linux.
if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
add_definitions("-D_FILE_OFFSET_BITS=64")
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)

View File

@ -1019,15 +1019,15 @@ BOOL FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData)
#else
ft = STAT_TIME_TO_FILETIME(fileStat.st_ctime);
#endif
lpFindFileData->ftCreationTime.dwHighDateTime = ft >> 32;
lpFindFileData->ftCreationTime.dwHighDateTime = ((UINT64)ft) >> 32ULL;
lpFindFileData->ftCreationTime.dwLowDateTime = ft & 0xFFFFFFFF;
ft = STAT_TIME_TO_FILETIME(fileStat.st_mtime);
lpFindFileData->ftLastWriteTime.dwHighDateTime = ft >> 32;
lpFindFileData->ftLastWriteTime.dwHighDateTime = ((UINT64)ft) >> 32ULL;
lpFindFileData->ftCreationTime.dwLowDateTime = ft & 0xFFFFFFFF;
ft = STAT_TIME_TO_FILETIME(fileStat.st_atime);
lpFindFileData->ftLastAccessTime.dwHighDateTime = ft >> 32;
lpFindFileData->ftLastAccessTime.dwHighDateTime = ((UINT64)ft) >> 32ULL;
lpFindFileData->ftLastAccessTime.dwLowDateTime = ft & 0xFFFFFFFF;
lpFindFileData->nFileSizeHigh = fileStat.st_size >> 32;
lpFindFileData->nFileSizeHigh = ((UINT64)fileStat.st_size) >> 32ULL;
lpFindFileData->nFileSizeLow = fileStat.st_size & 0xFFFFFFFF;
return TRUE;
}