From 7b062bd6af86452ed231009b0c48d663ce93976a Mon Sep 17 00:00:00 2001 From: Niels Weber Date: Thu, 2 May 2013 16:09:59 +0200 Subject: Remove local filetime. This leads to time being wrong by a couple of hours depending on usage of local time vs UTC. This has been deemed acceptable for now. Also skip the test failing because of that difference. Needs to be re-enabled when all time functionality has been rewritten. Change-Id: I23d78371df65878d16e0e428c9fca9387e29a908 Reviewed-by: Kai Koehne Reviewed-by: Tim Jenssen --- src/libs/7zip/unix/CPP/Windows/PropVariantConversions.cpp | 7 ++----- src/libs/7zip/unix/CPP/include_windows/windows.h | 2 -- src/libs/installer/lib7z_facade.cpp | 8 ++++++-- 3 files changed, 8 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/libs/7zip/unix/CPP/Windows/PropVariantConversions.cpp b/src/libs/7zip/unix/CPP/Windows/PropVariantConversions.cpp index 61d524d07..abd5b46c4 100644 --- a/src/libs/7zip/unix/CPP/Windows/PropVariantConversions.cpp +++ b/src/libs/7zip/unix/CPP/Windows/PropVariantConversions.cpp @@ -76,13 +76,10 @@ bool ConvertFileTimeToString(const FILETIME &ft, char *s, bool includeTime, bool #else BOOLEAN WINAPI RtlTimeToSecondsSince1970( const LARGE_INTEGER *Time, DWORD *Seconds ); - FILETIME filetime; - LocalFileTimeToFileTime(&ft, &filetime); - LARGE_INTEGER ltime; - ltime.QuadPart = filetime.dwHighDateTime; - ltime.QuadPart = (ltime.QuadPart << 32) | filetime.dwLowDateTime; + ltime.QuadPart = ft.dwHighDateTime; + ltime.QuadPart = (ltime.QuadPart << 32) | ft.dwLowDateTime; DWORD dw; RtlTimeToSecondsSince1970(<ime, &dw ); diff --git a/src/libs/7zip/unix/CPP/include_windows/windows.h b/src/libs/7zip/unix/CPP/include_windows/windows.h index 7591903fc..871d9f3ae 100644 --- a/src/libs/7zip/unix/CPP/include_windows/windows.h +++ b/src/libs/7zip/unix/CPP/include_windows/windows.h @@ -142,9 +142,7 @@ typedef struct _SYSTEMTIME { extern "C" { #endif -BOOL WINAPI FileTimeToLocalFileTime(CONST FILETIME *,FILETIME *); BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *,SYSTEMTIME *); -BOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *,FILETIME *); VOID WINAPI GetSystemTime(SYSTEMTIME *); BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,FILETIME *); diff --git a/src/libs/installer/lib7z_facade.cpp b/src/libs/installer/lib7z_facade.cpp index a818e9a61..5459cd22b 100644 --- a/src/libs/installer/lib7z_facade.cpp +++ b/src/libs/installer/lib7z_facade.cpp @@ -277,8 +277,12 @@ QDateTime getDateTimeProperty(IInArchive* archive, int index, int propId, const return defaultValue; FILETIME localFileTime; - if (!FileTimeToLocalFileTime(&fileTime, &localFileTime)) - throw SevenZipException(QObject::tr("Could not convert file time to local time")); +#ifndef Q_OS_UNIX + if (!FileTimeToLocalFileTime(&fileTime, &localFileTime)) + throw SevenZipException(QObject::tr("Could not convert file time to local time")); +#else + localFileTime = fileTime; +#endif SYSTEMTIME st; if (!BOOLToBool(FileTimeToSystemTime(&localFileTime, &st))) -- cgit v1.2.3