on master help sign in
replace Data.Text.IO so as to always interpret input as UTF-8

resolves #195

commitbc2b0d1a7e685053d6d4be7a905cf1ca0490b52d authorAgentM <agentm@themactionfaction.com> dateTue 10 Apr 2018, 22:50 (9 years ago) parent5791a2f
1 file changed+13−9
src/bin/TutorialD/Interpreter/Import/TutorialD.hs+13−9
src/bin/TutorialD/Interpreter/Import/TutorialD.hs+13−9
@@ -9,20 +9,24 @@ import ProjectM36.Error
99import qualified ProjectM36.Error as PM36E
1010import qualified Data.Text as T
1111import Control.Exception
12−import qualified Data.Text.IO as TIO
12+import qualified Data.ByteString as BS
13+import qualified Data.Text.Encoding as TE
1314--import a file containing TutorialD database context expressions
1415
1516importTutorialD :: FilePath -> IO (Either RelationalError DatabaseContextExpr)
1617importTutorialD pathIn = do
17− tutdData <- try (TIO.readFile pathIn) :: IO (Either IOError T.Text)
18− case tutdData of
18+ eTutdBytes <- try (BS.readFile pathIn) :: IO (Either IOError BS.ByteString)
19+ case eTutdBytes of
1920 Left err -> return $ Left (ImportError $ T.pack (show err))
20− Right tutdData' ->
21− case parse multipleDatabaseContextExprP "import" tutdData' of
22− --parseErrorPretty is new in megaparsec 5
23− Left err -> pure (Left (PM36E.ParseError (T.pack (show err))))
24− Right expr -> pure (Right expr)
25−
21+ Right tutdBytes ->
22+ case TE.decodeUtf8' tutdBytes of
23+ Left err -> pure (Left (ImportError $ T.pack (show err)))
24+ Right tutdUtf8 ->
25+ case parse multipleDatabaseContextExprP "import" tutdUtf8 of
26+ --parseErrorPretty is new in megaparsec 5
27+ Left err -> pure (Left (PM36E.ParseError (T.pack (show err))))
28+ Right expr -> pure (Right expr)
29+
2630tutdImportP :: Parser DatabaseContextDataImportOperator
2731tutdImportP = do
2832 reserved ":importtutd"