X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FIO.hs;h=cebaa9846b2af50f02eb8423aa9b6945f4021a75;hb=a2a70b9bf60672c72b35654105402cf21238b6f4;hp=a7552f5626ee9afc44e8102ad9fff60e814fbff9;hpb=43b264ae52debea04f4cd09aa5c5f5135b3a864a;p=haskell-directory.git diff --git a/System/IO.hs b/System/IO.hs index a7552f5..cebaa98 100644 --- a/System/IO.hs +++ b/System/IO.hs @@ -148,10 +148,8 @@ module System.IO ( withBinaryFile, openBinaryFile, -- :: FilePath -> IOMode -> IO Handle hSetBinaryMode, -- :: Handle -> Bool -> IO () -#if !defined(__NHC__) hPutBuf, -- :: Handle -> Ptr a -> Int -> IO () hGetBuf, -- :: Handle -> Ptr a -> Int -> IO Int -#endif #if !defined(__NHC__) && !defined(__HUGS__) hPutBufNonBlocking, -- :: Handle -> Ptr a -> Int -> IO Int hGetBufNonBlocking, -- :: Handle -> Ptr a -> Int -> IO Int @@ -222,7 +220,8 @@ import IO , IO () , FilePath -- :: String ) -import NHC.IOExtras (fixIO) +import NHC.IOExtras (fixIO, hPutBuf, hGetBuf) +import NHC.FFI (Ptr) #endif -- ----------------------------------------------------------------------------- @@ -299,8 +298,7 @@ readFile name = openFile name ReadMode >>= hGetContents -- | The computation 'writeFile' @file str@ function writes the string @str@, -- to the file @file@. writeFile :: FilePath -> String -> IO () -writeFile f txt = bracket (openFile f WriteMode) hClose - (\hdl -> hPutStr hdl txt) +writeFile f txt = withFile f WriteMode (\ hdl -> hPutStr hdl txt) -- | The computation 'appendFile' @file str@ function appends the string @str@, -- to the file @file@. @@ -312,8 +310,7 @@ writeFile f txt = bracket (openFile f WriteMode) hClose -- > main = appendFile "squares" (show [(x,x*x) | x <- [0,0.1..2]]) appendFile :: FilePath -> String -> IO () -appendFile f txt = bracket (openFile f AppendMode) hClose - (\hdl -> hPutStr hdl txt) +appendFile f txt = withFile f AppendMode (\ hdl -> hPutStr hdl txt) -- | The 'readLn' function combines 'getLine' and 'readIO'.