@@ -32,6 +32,7 @@ import Options.Applicative as Opts
3232
3333import System.Exit (exitSuccess, exitFailure)
3434import System.IO (hPutStrLn, stderr)
35+import System.IO.UTF8
3536import System.FilePath.Glob (glob)
3637
3738import qualified Language.PureScript as P
@@ -60,7 +61,7 @@ compile (PSCMakeOptions inputGlob inputForeignGlob outputDir opts usePrefix) = d
6061 let (jsFiles, pursFiles) = partition (isSuffixOf ".js") input
6162 moduleFiles <- readInput (InputOptions pursFiles)
6263 inputForeign <- globWarningOnMisses warnFileTypeNotFound inputForeignGlob
63− foreignFiles <- forM (inputForeign ++ jsFiles) (\inFile -> (inFile,) <$> readFile inFile)
64+ foreignFiles <- forM (inputForeign ++ jsFiles) (\inFile -> (inFile,) <$> readUTF8File inFile)
6465 case runWriterT (parseInputs moduleFiles foreignFiles) of
6566 Left errs -> do
6667 hPutStrLn stderr (P.prettyPrintMultipleErrors (P.optionsVerboseErrors opts) errs)
@@ -93,7 +94,7 @@ globWarningOnMisses warn = concatMapM globWithWarning
9394 concatMapM f = liftM concat . mapM f
9495
9596readInput :: InputOptions -> IO [(Either P.RebuildPolicy FilePath, String)]
96−readInput InputOptions{..} = forM ioInputFiles $ \inFile -> (Right inFile, ) <$> readFile inFile
97+readInput InputOptions{..} = forM ioInputFiles $ \inFile -> (Right inFile, ) <$> readUTF8File inFile
9798
9899parseInputs :: (Functor m, Applicative m, MonadError P.MultipleErrors m, MonadWriter P.MultipleErrors m)
99100 => [(Either P.RebuildPolicy FilePath, String)]
@@ -178,6 +179,7 @@ pscMakeOptions = PSCMakeOptions <$> many inputFile
178179 <*> options
179180 <*> (not <$> noPrefix)
180181
182+
181183main :: IO ()
182184main = execParser opts >>= compile
183185 where