throw utf8 errors
This commit is contained in:
parent
094c70935f
commit
843683d024
@ -181,6 +181,7 @@ unZipStream = next where
|
|||||||
nlen <- fromIntegral <$> G.getWord16le
|
nlen <- fromIntegral <$> G.getWord16le
|
||||||
elen <- fromIntegral <$> G.getWord16le
|
elen <- fromIntegral <$> G.getWord16le
|
||||||
name <- G.getByteString nlen
|
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
|
let getExt ext = do
|
||||||
t <- G.getWord16le
|
t <- G.getWord16le
|
||||||
z <- fromIntegral <$> G.getWord16le
|
z <- fromIntegral <$> G.getWord16le
|
||||||
@ -217,7 +218,7 @@ unZipStream = next where
|
|||||||
}
|
}
|
||||||
return FileHeader
|
return FileHeader
|
||||||
{ fileEntry = ZipEntry
|
{ fileEntry = ZipEntry
|
||||||
{ zipEntryName = if testBit gpf 11 then Left (TE.decodeUtf8 name) else Right name
|
{ zipEntryName = dName
|
||||||
, zipEntryTime = time
|
, zipEntryTime = time
|
||||||
, zipEntrySize = if testBit gpf 3 then Nothing else Just extZip64USize
|
, zipEntrySize = if testBit gpf 3 then Nothing else Just extZip64USize
|
||||||
, zipEntryExternalAttributes = Nothing
|
, zipEntryExternalAttributes = Nothing
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user