From f35e2c54f458c4eac8398758b27e5b1d2cc4e763 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 18 Dec 2009 20:36:48 -0800 Subject: [PATCH] Properly handle UTF-8 in config files. --- Network/Gitit/Config.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Network/Gitit/Config.hs b/Network/Gitit/Config.hs index c16f0759a..1bfb8b216 100644 --- a/Network/Gitit/Config.hs +++ b/Network/Gitit/Config.hs @@ -36,7 +36,7 @@ import System.Environment import System.Exit import System.IO (stdout, stderr) import System.Console.GetOpt -import Data.ConfigFile +import Data.ConfigFile hiding (readfile) import Control.Monad.Error import System.Log.Logger () import Data.List (intercalate) @@ -101,6 +101,15 @@ compileInfo = forceEither :: Show e => Either e a -> a forceEither = either (error . show) id +-- | A version of readfile that treats the file as UTF-8. +readfile :: MonadError CPError m + => ConfigParser + -> FilePath + -> IO (m ConfigParser) +readfile cp path' = do + contents <- readFile path' + return $ readstring cp contents + handleFlag :: ConfigParser -> Config -> Opt -> IO Config handleFlag cp conf opt = do progname <- getProgName