MissingH 1.4.0.1 → 1.4.1.0
raw patch · 2 files changed
+27/−22 lines, 2 filesdep ~HUnitdep ~arraydep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: HUnit, array, base, containers, directory, filepath, hslogger, mtl, network, old-locale, old-time, parsec, process, time
API changes (from Hackage documentation)
- Data.BinPacking: instance (GHC.Classes.Eq obj, GHC.Num.Num size, GHC.Classes.Ord size, GHC.Show.Show size, GHC.Show.Show obj) => GHC.Classes.Eq (Data.BinPacking.BinPackerError size obj)
- Data.BinPacking: instance (GHC.Num.Num size, GHC.Classes.Ord size, GHC.Read.Read size, GHC.Read.Read obj, GHC.Show.Show size, GHC.Show.Show obj) => GHC.Read.Read (Data.BinPacking.BinPackerError size obj)
- System.IO.HVFS.Combinators: instance (GHC.Classes.Eq a, System.IO.HVFS.HVFS a) => GHC.Classes.Eq (System.IO.HVFS.Combinators.HVFSChroot a)
- System.IO.HVFS.Combinators: instance (GHC.Classes.Eq a, System.IO.HVFS.HVFS a) => GHC.Classes.Eq (System.IO.HVFS.Combinators.HVFSReadOnly a)
+ Data.BinPacking: instance (GHC.Num.Num size, GHC.Classes.Ord size, GHC.Show.Show size, GHC.Show.Show obj, GHC.Classes.Eq obj) => GHC.Classes.Eq (Data.BinPacking.BinPackerError size obj)
+ Data.BinPacking: instance (GHC.Num.Num size, GHC.Classes.Ord size, GHC.Show.Show size, GHC.Show.Show obj, GHC.Read.Read size, GHC.Read.Read obj) => GHC.Read.Read (Data.BinPacking.BinPackerError size obj)
+ System.IO.HVFS.Combinators: instance (System.IO.HVFS.HVFS a, GHC.Classes.Eq a) => GHC.Classes.Eq (System.IO.HVFS.Combinators.HVFSChroot a)
+ System.IO.HVFS.Combinators: instance (System.IO.HVFS.HVFS a, GHC.Classes.Eq a) => GHC.Classes.Eq (System.IO.HVFS.Combinators.HVFSReadOnly a)
- Network.Email.Mailbox: class (Show a, Show b, Eq b) => MailboxReader a b where listIDs mb = listMessageFlags mb >>= return . map fst listMessageFlags mb = getAll mb >>= return . map (\ (i, f, _) -> (i, f)) getMessages mb list = do { messages <- getAll mb; return $ filter (\ (id, f, m) -> id `elem` list) messages }
+ Network.Email.Mailbox: class (Show a, Show b, Eq b) => MailboxReader a b
- System.Debian.ControlParser: depPart :: CharParser a (String, Maybe (String, String), [String])
+ System.Debian.ControlParser: depPart :: CharParser a (String, (Maybe (String, String)), [String])
- System.IO.HVFS: class (Show a) => HVFS a where vGetModificationTime fs fp = do { s <- vGetFileStatus fs fp; return $ epochToClockTime (withStat s vModificationTime) } vRaiseError _ et desc mfp = ioError $ mkIOError et desc Nothing mfp vGetCurrentDirectory fs = eh fs "vGetCurrentDirectory" vSetCurrentDirectory fs _ = eh fs "vSetCurrentDirectory" vGetDirectoryContents fs _ = eh fs "vGetDirectoryContents" vDoesFileExist fs fp = catch (do { s <- vGetFileStatus fs fp; return $ withStat s vIsRegularFile }) (\ (_ :: IOException) -> return False) vDoesDirectoryExist fs fp = catch (do { s <- vGetFileStatus fs fp; return $ withStat s vIsDirectory }) (\ (_ :: IOException) -> return False) vDoesExist fs fp = catch (do { s <- vGetSymbolicLinkStatus fs fp; return True }) (\ (_ :: IOException) -> return False) vCreateDirectory fs _ = eh fs "vCreateDirectory" vRemoveDirectory fs _ = eh fs "vRemoveDirectory" vRemoveFile fs _ = eh fs "vRemoveFile" vRenameFile fs _ _ = eh fs "vRenameFile" vRenameDirectory fs _ _ = eh fs "vRenameDirectory" vCreateSymbolicLink fs _ _ = eh fs "vCreateSymbolicLink" vReadSymbolicLink fs _ = eh fs "vReadSymbolicLink" vCreateLink fs _ _ = eh fs "vCreateLink" vGetSymbolicLinkStatus = vGetFileStatus
+ System.IO.HVFS: class (Show a) => HVFS a
- System.IO.HVFS: class HVFS a => HVFSOpenable a where vReadFile h fp = do { oe <- vOpen h fp ReadMode; withOpen oe (\ fh -> vGetContents fh) } vWriteFile h fp s = do { oe <- vOpen h fp WriteMode; withOpen oe (\ fh -> do { vPutStr fh s; vClose fh }) } vOpenBinaryFile = vOpen
+ System.IO.HVFS: class HVFS a => HVFSOpenable a
- System.IO.HVFS: class (Show a) => HVFSStat a where vDeviceID _ = 0 vFileID _ = 0 vFileMode x = if vIsDirectory x then 1877 else 420 vLinkCount _ = 1 vFileOwner _ = 0 vFileGroup _ = 0 vSpecialDeviceID _ = 0 vFileSize _ = 0 vAccessTime _ = 0 vModificationTime _ = 0 vStatusChangeTime _ = 0 vIsBlockDevice _ = False vIsCharacterDevice _ = False vIsNamedPipe _ = False vIsSymbolicLink _ = False vIsSocket _ = False
+ System.IO.HVFS: class (Show a) => HVFSStat a
- System.IO.HVFS: data IOMode :: *
+ System.IO.HVFS: data IOMode
- System.IO.HVIO: class (Show a) => HVIO a where vSetBuffering _ _ = return () vGetBuffering _ = return NoBuffering vShow x = return (show x) vMkIOError _ et desc mfp = mkIOError et desc Nothing mfp vGetFP _ = return Nothing vThrow h et = do { fp <- vGetFP h; ioError (vMkIOError h et "" fp) } vTestEOF h = do { e <- vIsEOF h; if e then vThrow h eofErrorType else return () } vIsOpen h = vIsClosed h >>= return . not vIsClosed h = vIsOpen h >>= return . not vTestOpen h = do { e <- vIsClosed h; if e then vThrow h illegalOperationErrorType else return () } vIsReadable _ = return False vGetLine h = let loop accum = let func = do { c <- vGetChar h; case c of { '\n' -> return accum x -> accum `seq` loop (accum ++ [x]) } } handler e = if isEOFError e then return accum else ioError e in catch func handler in do { firstchar <- vGetChar h; case firstchar of { '\n' -> return [] x -> loop [x] } } vGetContents h = let loop = let func = do { c <- vGetChar h; next <- loop; c `seq` return (c : next) } handler e = if isEOFError e then return [] else ioError e in catch func handler in do { loop } vReady h = do { vTestEOF h; return True } vIsWritable _ = return False vPutStr _ [] = return () vPutStr h (x : xs) = do { vPutChar h x; vPutStr h xs } vPutStrLn h s = vPutStr h (s ++ "\n") vPrint h s = vPutStrLn h (show s) vFlush = vTestOpen vIsSeekable _ = return False vRewind h = vSeek h AbsoluteSeek 0 vPutChar h _ = vThrow h illegalOperationErrorType vSeek h _ _ = vThrow h illegalOperationErrorType vTell h = vThrow h illegalOperationErrorType vGetChar h = vThrow h illegalOperationErrorType vPutBuf h buf len = do { str <- peekCStringLen (castPtr buf, len); vPutStr h str } vGetBuf h b l = worker b l 0 where worker _ 0 accum = return accum worker buf len accum = do { iseof <- vIsEOF h; if iseof then return accum else do { c <- vGetChar h; let cc = castCharToCChar c; poke (castPtr buf) cc; let newptr = plusPtr buf 1; worker newptr (len - 1) (accum + 1) } }
+ System.IO.HVIO: class (Show a) => HVIO a
Files
- MissingH.cabal +2/−2
- src/Data/Compression/Inflate.hs +25/−20
MissingH.cabal view
@@ -1,9 +1,9 @@ Name: MissingH-Version: 1.4.0.1+Version: 1.4.1.0 License: BSD3 Maintainer: John Goerzen <jgoerzen@complete.org> Author: John Goerzen-Copyright: Copyright (c) 2004-2016 John Goerzen+Copyright: Copyright (c) 2004-2018 John Goerzen license-file: LICENSE extra-source-files: LICENSE, announcements/0.10.0.txt,
src/Data/Compression/Inflate.hs view
@@ -186,8 +186,10 @@ return (bits_to_word32 bs) get_bit :: InfM Bit-get_bit = do [x] <- get_bits 1- return x+get_bit = do res <- get_bits 1+ case res of+ _ -> error $ "get_bit: expected exactly one bit"+ [x] -> return x {- \section{Inflate itself}@@ -205,24 +207,27 @@ inflate_blocks :: Bool -> InfM Output inflate_blocks True = return [] inflate_blocks False- = do [Bit is_last, Bit t1, Bit t2] <- get_bits 3- case (t1, t2) of- (False, False) ->- do align_8_bits- len <- get_w32 16- nlen <- get_w32 16- unless (len + nlen == 2^(32 :: Int) - 1)- $ error "inflate_blocks: Mismatched lengths"- ws <- get_word32s 8 len- mapM_ output_w32 ws- return ws- (True, False) ->- inflate_codes is_last inflate_trees_fixed- (False, True) ->- do tables <- inflate_tables- inflate_codes is_last tables- (True, True) ->- error ("inflate_blocks: case 11 reserved")+ = do res <- get_bits 3+ case res of+ [Bit is_last, Bit t1, Bit t2] ->+ case (t1, t2) of+ (False, False) ->+ do align_8_bits+ len <- get_w32 16+ nlen <- get_w32 16+ unless (len + nlen == 2^(32 :: Int) - 1)+ $ error "inflate_blocks: Mismatched lengths"+ ws <- get_word32s 8 len+ mapM_ output_w32 ws+ return ws+ (True, False) ->+ inflate_codes is_last inflate_trees_fixed+ (False, True) ->+ do tables <- inflate_tables+ inflate_codes is_last tables+ (True, True) ->+ error ("inflate_blocks: case 11 reserved")+ _ -> error ("inflate_blocks: expected 3 bits") inflate_tables :: InfM Tables inflate_tables