X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FIO%2FFD.hs;h=d873a4e09859c50e3b70dbb06f663b86d7862348;hb=0c074a8eef70fd5c9ff19db84eb3564b9e3a89d3;hp=4c3e11766504ecbc0e075bb2aa2349cf28729968;hpb=7a1ac0c9d1cb81043b3e8f45c7451ad34336ddc5;p=ghc-base.git diff --git a/GHC/IO/FD.hs b/GHC/IO/FD.hs index 4c3e117..d873a4e 100644 --- a/GHC/IO/FD.hs +++ b/GHC/IO/FD.hs @@ -1,4 +1,5 @@ -{-# OPTIONS_GHC -XNoImplicitPrelude -XBangPatterns #-} +{-# OPTIONS_GHC -XNoImplicitPrelude -XBangPatterns -fno-warn-identities #-} +-- Whether there are identities depends on the platform {-# OPTIONS_HADDOCK hide #-} ----------------------------------------------------------------------------- -- | @@ -395,13 +396,14 @@ setRaw fd raw = System.Posix.Internals.setCooked (fdFD fd) (not raw) fdRead :: FD -> Ptr Word8 -> Int -> IO Int fdRead fd ptr bytes - = readRawBufferPtr "GHC.IO.FD.fdRead" fd ptr 0 (fromIntegral bytes) + = do { r <- readRawBufferPtr "GHC.IO.FD.fdRead" fd ptr 0 (fromIntegral bytes) + ; return (fromIntegral r) } fdReadNonBlocking :: FD -> Ptr Word8 -> Int -> IO (Maybe Int) fdReadNonBlocking fd ptr bytes = do r <- readRawBufferPtrNoBlock "GHC.IO.FD.fdReadNonBlocking" fd ptr 0 (fromIntegral bytes) - case r of + case fromIntegral r of (-1) -> return (Nothing) n -> return (Just n)