throw utf8 errors

This commit is contained in:
Gregor Kleen 2020-09-10 12:45:54 +02:00
parent 094c70935f
commit 843683d024

View File

@ -181,6 +181,7 @@ unZipStream = next where
nlen <- fromIntegral <$> G.getWord16le
elen <- fromIntegral <$> G.getWord16le
name <- G.getByteString nlen
dName <- if testBit gpf 11 then Left <$> either (fail . show) return (TE.decodeUtf8' name) else return $ Right name
let getExt ext = do
t <- G.getWord16le
z <- fromIntegral <$> G.getWord16le
@ -217,7 +218,7 @@ unZipStream = next where
}
return FileHeader
{ fileEntry = ZipEntry
{ zipEntryName = if testBit gpf 11 then Left (TE.decodeUtf8 name) else Right name
{ zipEntryName = dName
, zipEntryTime = time
, zipEntrySize = if testBit gpf 3 then Nothing else Just extZip64USize
, zipEntryExternalAttributes = Nothing