aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <fiddlosopher@gmail.com>2012-09-23 11:01:33 -0700
committerJohn MacFarlane <fiddlosopher@gmail.com>2012-09-23 11:01:33 -0700
commitc69837adb648a479167be5e2d37279a02be8060c (patch)
treeb2ebd425f54252c2a9706acdff6283ec089f6d55
parent4d65063592beb2e1d2bf3ab7e8768536b6e2028c (diff)
downloadpandoc-c69837adb648a479167be5e2d37279a02be8060c.tar.gz
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.
-rw-r--r--src/Text/Pandoc/Parsing.hs3
-rw-r--r--src/pandoc.hs22
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