-- * Temporary files (not portable: GHC only)
-#ifdef __GLASGOW_HASKELL__
openTempFile,
openBinaryTempFile,
-#endif
) where
import Data.Bits
import System.Posix.Internals
#ifdef __GLASGOW_HASKELL__
+import GHC.Exception as ExceptionBase hiding (catch)
+#endif
+#ifdef __HUGS__
+import Hugs.Exception as ExceptionBase
+#endif
+
+#ifdef __GLASGOW_HASKELL__
import GHC.Base
import GHC.IOBase -- Together these four Prelude modules define
import GHC.Handle -- all the stuff exported by IO for the GHC version
then findTempName (x+1)
else ioError (errnoToIOError loc errno Nothing (Just tmp_dir))
else do
- h <- fdToHandle' fd Nothing False filepath ReadWriteMode True
- `catchException` \e -> do c_close fd; throw e
+ -- XXX We want to tell fdToHandle what the filepath is,
+ -- as any exceptions etc will only be able to report the
+ -- fd currently
+ h <- fdToHandle fd
+ `ExceptionBase.catchException` \e -> do c_close fd; throw e
return (filepath, h)
where
filename = prefix ++ show x ++ suffix