ghc-cabal: force use of UTF8 when writing out `haddock-prologue.txt`
authorHerbert Valerio Riedel <hvr@gnu.org>
Sun, 23 Mar 2014 12:33:03 +0000 (13:33 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sun, 23 Mar 2014 12:33:03 +0000 (13:33 +0100)
This unbreaks the GHC build if a non-UTF8 locale such as LANG=C is active

See also haskell/cabal#1721 and haskell/haddock#286

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
utils/ghc-cabal/Main.hs

index 8fa2c29..a7d9e60 100644 (file)
@@ -452,7 +452,8 @@ generate directory distdir dll0Modules config_args
                 "$(eval $(" ++ directory ++ "_PACKAGE_MAGIC))"
                 ]
       writeFile (distdir ++ "/package-data.mk") $ unlines xs
-      writeFile (distdir ++ "/haddock-prologue.txt") $
+
+      writeFileUtf8 (distdir ++ "/haddock-prologue.txt") $
           if null (description pd) then synopsis pd
                                    else description pd
       unless (null dll0Modules) $
@@ -475,3 +476,8 @@ generate directory distdir dll0Modules config_args
      mkSearchPath = intercalate [searchPathSeparator]
      boolToYesNo True = "YES"
      boolToYesNo False = "NO"
+
+     -- | Version of 'writeFile' that always uses UTF8 encoding
+     writeFileUtf8 f txt = withFile f WriteMode $ \hdl -> do
+         hSetEncoding hdl utf8
+         hPutStr hdl txt