From c69837adb648a479167be5e2d37279a02be8060c Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 23 Sep 2012 11:01:33 -0700 Subject: Use local encoding for input/output rather than forcing UTF8. Note that system templates are stored as UTF8 and will still be read as such, even if the local encoding is different. Text downloaded from URLs will also be treated as UTF-8. --- src/Text/Pandoc/Parsing.hs | 3 +-- src/pandoc.hs | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index bee96be82..de4e3a65d 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -146,7 +146,6 @@ where import Text.Pandoc.Definition import Text.Pandoc.Options import Text.Pandoc.Builder (Blocks) -import qualified Text.Pandoc.UTF8 as UTF8 (putStrLn) import Text.Parsec import Text.Parsec.Pos (newPos) import Data.Char ( toLower, toUpper, ord, isAscii, isAlphaNum, isDigit, isPunctuation ) @@ -708,7 +707,7 @@ readWith parser state input = testStringWith :: (Show a) => Parser [Char] ParserState a -> String -> IO () -testStringWith parser str = UTF8.putStrLn $ show $ +testStringWith parser str = putStrLn $ show $ readWith parser defaultParserState str -- | Parsing options. diff --git a/src/pandoc.hs b/src/pandoc.hs index 9cfaaeefe..358e85fcd 100644 --- a/src/pandoc.hs +++ b/src/pandoc.hs @@ -363,7 +363,7 @@ options = , Option "H" ["include-in-header"] (ReqArg (\arg opt -> do - text <- UTF8.readFile arg + text <- readFile arg -- add new ones to end, so they're included in order specified let newvars = optVariables opt ++ [("header-includes",text)] return opt { optVariables = newvars, @@ -374,7 +374,7 @@ options = , Option "B" ["include-before-body"] (ReqArg (\arg opt -> do - text <- UTF8.readFile arg + text <- readFile arg -- add new ones to end, so they're included in order specified let newvars = optVariables opt ++ [("include-before",text)] return opt { optVariables = newvars, @@ -385,7 +385,7 @@ options = , Option "A" ["include-after-body"] (ReqArg (\arg opt -> do - text <- UTF8.readFile arg + text <- readFile arg -- add new ones to end, so they're included in order specified let newvars = optVariables opt ++ [("include-after",text)] return opt { optVariables = newvars, @@ -528,7 +528,7 @@ options = , Option "" ["epub-stylesheet"] (ReqArg (\arg opt -> do - text <- UTF8.readFile arg + text <- readFile arg return opt { optEPUBStylesheet = Just text }) "FILENAME") "" -- "Path of epub.css" @@ -544,7 +544,7 @@ options = , Option "" ["epub-metadata"] (ReqArg (\arg opt -> do - text <- UTF8.readFile arg + text <- readFile arg return opt { optEPUBMetadata = text }) "FILENAME") "" -- "Path of epub metadata file" @@ -756,7 +756,7 @@ defaultWriterName x = main :: IO () main = do - rawArgs <- liftM (map decodeArg) getArgs + rawArgs <- liftM (map UTF8.decodeArg) getArgs prg <- getProgName let compatMode = (prg == "hsmarkdown") @@ -888,7 +888,7 @@ main = do let tp' = case takeExtension tp of "" -> tp <.> format _ -> tp - E.catch (UTF8.readFile tp') + E.catch (readFile tp') (\e -> if isDoesNotExistError e then E.catch (readDataFile datadir $ @@ -982,11 +982,11 @@ main = do let readSources [] = mapM readSource ["-"] readSources srcs = mapM readSource srcs - readSource "-" = UTF8.getContents + readSource "-" = getContents readSource src = case parseURI src of Just u | uriScheme u `elem` ["http:","https:"] -> readURI u - _ -> UTF8.readFile src + _ -> readFile src readURI uri = simpleHTTP (mkRequest GET uri) >>= getResponseBody >>= return . toString -- treat all as UTF8 @@ -1026,8 +1026,8 @@ main = do writeBinary = B.writeFile (UTF8.encodePath outputFile) let writerFn :: FilePath -> String -> IO () - writerFn "-" = UTF8.putStr - writerFn f = UTF8.writeFile f + writerFn "-" = putStr + writerFn f = writeFile (UTF8.encodePath f) case getWriter writerName' of Left e -> err 9 e -- cgit v1.2.3