on master help sign in
Force UTF8 handling of build-plan.txt #90
7ab077eMichael Snoyman
Stackage/BuildPlan.hs+3−2
@@ -9,17 +9,18 @@ import qualified Data.Map as Map
9import qualified Data.Set as Set
9import qualified Data.Set as Set
10import Distribution.Text (display, simpleParse)
10import Distribution.Text (display, simpleParse)
11import Stackage.Types
11import Stackage.Types
12+import qualified System.IO.UTF8
12
13
13readBuildPlan :: FilePath -> IO BuildPlan
14readBuildPlan :: FilePath -> IO BuildPlan
14readBuildPlan fp = do
15readBuildPlan fp = do
15− str <- readFile fp
16+ str <- System.IO.UTF8.readFile fp
16 case fromString str of
17 case fromString str of
17 Left s -> error $ "Could not read build plan: " ++ s
18 Left s -> error $ "Could not read build plan: " ++ s
18 Right (x, "") -> return x
19 Right (x, "") -> return x
19 Right (_, _:_) -> error "Trailing content when reading build plan"
20 Right (_, _:_) -> error "Trailing content when reading build plan"
20
21
21writeBuildPlan :: FilePath -> BuildPlan -> IO ()
22writeBuildPlan :: FilePath -> BuildPlan -> IO ()
22−writeBuildPlan fp bp = writeFile fp $ toString bp
23+writeBuildPlan fp bp = System.IO.UTF8.writeFile fp $ toString bp
23
24
24class AsString a where
25class AsString a where
25 toString :: a -> String
26 toString :: a -> String
stackage.cabal+1
@@ -41,6 +41,7 @@ library
41 , old-locale
41 , old-locale
42 , HTTP
42 , HTTP
43 , time
43 , time
44+ , utf8-string
44
45
45executable stackage
46executable stackage
46 hs-source-dirs: app
47 hs-source-dirs: app