From 96d7f01ae1fad5c3117d76e717cc683bde1ef9fb Mon Sep 17 00:00:00 2001 From: kichik Date: Sat, 5 Nov 2005 14:07:47 +0000 Subject: [PATCH] fixed bug #1338423 - SetOverwrite ifdiff fails with FAT git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4373 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/script.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/script.cpp b/Source/script.cpp index 8e1163ab..8986142a 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -5925,6 +5925,10 @@ int CEXEBuild::add_file(const string& dir, const string& file, int attrib, const FILETIME ft; if (GetFileTime(hFile,NULL,NULL,&ft)) { + // FAT write time has a resolution of 2 seconds + PULONGLONG fti = (PULONGLONG) &ft; + *fti -= *fti % 20000000; + ent.offsets[3]=ft.dwLowDateTime; ent.offsets[4]=ft.dwHighDateTime; } @@ -5942,6 +5946,10 @@ int CEXEBuild::add_file(const string& dir, const string& file, int attrib, const long long ll; }; ll = (st.st_mtime * 10000000LL) + 116444736000000000LL; + + // FAT write time has a resolution of 2 seconds + ll -= ll % 20000000; + ent.offsets[3] = words.l; ent.offsets[4] = words.h; }