X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FIO.hs;h=f94dca660ddb7ece8dc4e895aab61a9e141f9475;hb=bca0cbb5e0ee7cf63a79721f7087abf02c866a5a;hp=aed2eb76d21de1b35aa534841c19b4d58b5fe834;hpb=d80e846fb4f5da3d5da611c6b76e849390a863c7;p=ghc-base.git diff --git a/System/IO.hs b/System/IO.hs index aed2eb7..f94dca6 100644 --- a/System/IO.hs +++ b/System/IO.hs @@ -141,9 +141,9 @@ module System.IO ( -- * Binary input and output -#if !defined(__NHC__) 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 @@ -201,6 +201,9 @@ import IO , hGetContents -- :: Handle -> IO [Char] , hPutChar -- :: Handle -> Char -> IO () , hPutStr -- :: Handle -> [Char] -> IO () + , hPutStrLn -- :: Handle -> [Char] -> IO () + , hPrint -- :: Handle -> [Char] -> IO () + , hReady -- :: Handle -> [Char] -> IO () , hIsOpen, hIsClosed -- :: Handle -> IO Bool , hIsReadable, hIsWritable -- :: Handle -> IO Bool , hIsSeekable -- :: Handle -> IO Bool @@ -233,7 +236,7 @@ import System.IO.Error ( -- ----------------------------------------------------------------------------- -- Standard IO -#ifndef __HUGS__ +#ifdef __GLASGOW_HASKELL__ -- | Write a character to the standard output device -- (same as 'hPutChar' 'stdout'). @@ -342,8 +345,9 @@ readIO s = case (do { (x,t) <- reads s ; [x] -> return x [] -> ioError (userError "Prelude.readIO: no parse") _ -> ioError (userError "Prelude.readIO: ambiguous parse") -#endif /* __HUGS__ */ +#endif /* __GLASGOW_HASKELL__ */ +#ifndef __NHC__ -- | Computation 'hReady' @hdl@ indicates whether at least one item is -- available for input from handle @hdl@. -- @@ -373,6 +377,7 @@ hPutStrLn hndl str = do hPrint :: Show a => Handle -> a -> IO () hPrint hdl = hPutStrLn hdl . show +#endif /* !__NHC__ */ -- --------------------------------------------------------------------------- -- fixIO @@ -391,6 +396,12 @@ fixIO k = do -- computation a few times before it notices the loop, which is wrong. #endif +#if defined(__NHC__) +-- Assume a unix platform, where text and binary I/O are identical. +openBinaryFile = openFile +hSetBinaryMode _ _ = return () +#endif + -- $locking -- Implementations should enforce as far as possible, at least locally to the -- Haskell process, multiple-reader single-writer locking on files.