In case of browsing LZH level 2 archive, time stamp
will be in the future.
DosFileTime can be used with both Level 0 and 1, but
Level 2 use Unix like time() value, seconds since 1970.
Here is a patch file below.
--- LzhHandler.cpp 2005-08-05 01:26:00.000000000 +0900
+++ LzhHandler.cpp.timefixed 2005-08-25
19:23:31.456591700 +0900
@@ -165,7 +165,17 @@
else
{
FILETIME localFileTime;
- if (DosTimeToFileTime(item.ModifiedTime,
localFileTime))
+
+ if ( 2 == item.Level )
+ {
+ NTime::UnixTimeToFileTime(
item.ModifiedTime, localFileTime ) ;
+
+ if ( !LocalFileTimeToFileTime(
&localFileTime, &utcFileTime ) )
+ {
+ utcFileTime.dwHighDateTime =
utcFileTime.dwLowDateTime = 0;
+ }
+ }
+ else if (DosTimeToFileTime(item.ModifiedTime,
localFileTime))
{
if (!LocalFileTimeToFileTime(&localFileTime,
&utcFileTime))
utcFileTime.dwHighDateTime =
utcFileTime.dwLowDateTime = 0;
LZH time stamp patch (diff)
Logged In: NO
I'm sorry, my name is Hidetaka OGAWA, ogawa@bs2.qnes.nec.co.jp
Logged In: YES
user_id=65083
I've fixed it. Thanks!