From bbea683b2ac57b82ad196f2fba96dc23ea24261f Mon Sep 17 00:00:00 2001 From: Duncan Coutts <duncan@haskell.org> Date: Wed, 14 May 2008 15:32:06 +0000 Subject: [PATCH] Eliminate use of bracketOnError, use handle instead It's actually more appropriate anyway. This means we don't need any Distribution.Compat.Exception. --- Distribution/Simple/Utils.hs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/Distribution/Simple/Utils.hs b/Distribution/Simple/Utils.hs index 139ca8cb5f..5e55608086 100644 --- a/Distribution/Simple/Utils.hs +++ b/Distribution/Simple/Utils.hs @@ -137,7 +137,7 @@ import System.IO import System.IO.Error as IO.Error ( try ) import qualified Control.Exception as Exception - ( bracket, bracket_, bracketOnError, catch, finally ) + ( bracket, bracket_, catch, handle, finally, throwIO ) import Distribution.Text ( display ) @@ -154,10 +154,6 @@ import System.Process (runInteractiveProcess, waitForProcess) import System.Cmd (system) import System.Directory (getTemporaryDirectory) #endif -#if mingw32_HOST_OS || mingw32_TARGET_OS -import qualified Control.Exception as Exception - ( throwIO ) -#endif import Distribution.Compat.TempFile (openTempFile, openBinaryTempFile) import Distribution.Verbosity @@ -571,11 +567,10 @@ withTempDirectory verbosity tmpDir = -- writeFileAtomic :: FilePath -> String -> IO () writeFileAtomic targetFile content = do - Exception.bracketOnError - (openBinaryTempFile targetDir template) - (\(tmpFile, tmpHandle) -> IO.Error.try (hClose tmpHandle) - >> IO.Error.try (removeFile tmpFile)) - $ \(tmpFile, tmpHandle) -> do + (tmpFile, tmpHandle) <- openBinaryTempFile targetDir template + Exception.handle (\err -> do hClose tmpHandle + removeFile tmpFile + Exception.throwIO err) $ do hPutStr tmpHandle content hClose tmpHandle #if mingw32_HOST_OS || mingw32_TARGET_OS -- GitLab