From: Ian Lynagh Date: Fri, 26 Feb 2010 22:39:31 +0000 (+0000) Subject: Fix the build with GHC < 6.12 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=d78b2eb70ee84d83833be14e855d5e3d72356892 Fix the build with GHC < 6.12 --- diff --git a/utils/ghc-pkg/Main.hs b/utils/ghc-pkg/Main.hs index ae7aca3..79404bc 100644 --- a/utils/ghc-pkg/Main.hs +++ b/utils/ghc-pkg/Main.hs @@ -729,7 +729,7 @@ changeDBDir verbosity cmds db = do do_cmd (AddPackage p) = do let file = location db display (installedPackageId p) <.> "conf" when (verbosity > Normal) $ putStrLn ("writing " ++ file) - writeFileAtomic file utf8 (showInstalledPackageInfo p) + writeFileUtf8Atomic file (showInstalledPackageInfo p) do_cmd (ModifyPackage p) = do_cmd (AddPackage p) @@ -1151,7 +1151,7 @@ writeNewConfig verbosity filename ipis = do let shown = concat $ intersperse ",\n " $ map (show . convertPackageInfoOut) ipis fileContents = "[" ++ shown ++ "\n]" - writeFileAtomic filename utf8 fileContents + writeFileUtf8Atomic filename fileContents `catch` \e -> if isPermissionError e then die (filename ++ ": you don't have permission to modify this file") @@ -1557,10 +1557,12 @@ writeBinaryFileAtomic targetFile obj = hSetBinaryMode h True B.hPutStr h (Bin.encode obj) -writeFileAtomic :: FilePath -> TextEncoding -> String -> IO () -writeFileAtomic targetFile encoding content = +writeFileUtf8Atomic :: FilePath -> String -> IO () +writeFileUtf8Atomic targetFile content = withFileAtomic targetFile $ \h -> do - hSetEncoding h encoding +#if __GLASGOW_HASKELL__ >= 612 + hSetEncoding h utf8 +#endif hPutStr h content -- copied from Cabal's Distribution.Simple.Utils, except that we want