zip-archive 0.4.3.1 → 0.4.3.2
raw patch · 3 files changed
+15/−4 lines, 3 filesdep ~base
Dependency ranges changed: base
Files
- changelog +6/−0
- src/Codec/Archive/Zip.hs +8/−3
- zip-archive.cabal +1/−1
changelog view
@@ -1,3 +1,9 @@+zip-archive 0.4.3.2++ * readEntry: Fix computation of modification time (#67).+ It should be a UNIX time (seconds since UNIX epoch), but+ computed relative to the local time zone, not UTC.+ zip-archive 0.4.3.1 * Use streaming decompress to identify extent of compressed data (#66).
src/Codec/Archive/Zip.hs view
@@ -72,8 +72,9 @@ import Data.Time.Calendar ( toGregorian, fromGregorian ) import Data.Time.Clock ( UTCTime(..) )+import Data.Time.LocalTime ( TimeZone(..), TimeOfDay(..), timeToTimeOfDay,+ getTimeZone ) import Data.Time.Clock.POSIX ( posixSecondsToUTCTime, utcTimeToPOSIXSeconds )-import Data.Time.LocalTime ( TimeOfDay(..), timeToTimeOfDay ) import Data.Bits ( shiftL, shiftR, (.&.), (.|.), xor, testBit ) import Data.Binary import Data.Binary.Get@@ -85,7 +86,7 @@ import System.FilePath import System.Directory (doesDirectoryExist, getDirectoryContents,- createDirectoryIfMissing, getModificationTime)+ createDirectoryIfMissing, getModificationTime,) import Control.Monad ( when, unless, zipWithM_ ) import qualified Control.Exception as E import System.IO ( stderr, hPutStrLn )@@ -315,7 +316,11 @@ return B.empty else B.fromStrict <$> S.readFile path- modEpochTime <- (floor . utcTimeToPOSIXSeconds) <$> getModificationTime path+ modTime <- getModificationTime path+ tzone <- getTimeZone modTime+ let modEpochTime = -- UNIX time computed relative to LOCAL time zone! (#67)+ floor (utcTimeToPOSIXSeconds modTime) ++ fromIntegral (timeZoneMinutes tzone * 60) let entry = toEntry path' modEpochTime contents entryE <-
zip-archive.cabal view
@@ -1,5 +1,5 @@ Name: zip-archive-Version: 0.4.3.1+Version: 0.4.3.2 Cabal-Version: 2.0 Build-type: Simple Synopsis: Library for creating and modifying zip archives.