From ca5217881de1be672ac855a1979e9436aa6ced35 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 10 Sep 2010 19:53:45 -0700 Subject: Encode filenames as UTF8. Resolves Issue #252 (pandoc doesn't properly handle unicode filenames). --- src/Text/Pandoc/UTF8.hs | 5 +++-- src/pandoc.hs | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/Text/Pandoc/UTF8.hs b/src/Text/Pandoc/UTF8.hs index 96d6e6218..eba79c734 100644 --- a/src/Text/Pandoc/UTF8.hs +++ b/src/Text/Pandoc/UTF8.hs @@ -38,6 +38,7 @@ module Text.Pandoc.UTF8 ( readFile where import qualified Data.ByteString as B +import Codec.Binary.UTF8.String (encodeString) import Data.ByteString.UTF8 (toString, fromString) import Prelude hiding (readFile, writeFile, getContents, putStr, putStrLn) import System.IO (Handle) @@ -51,10 +52,10 @@ stripBOM s | bom `B.isPrefixOf` s = B.drop 3 s stripBOM s = s readFile :: FilePath -> IO String -readFile = liftM (toString . stripBOM) . B.readFile +readFile = liftM (toString . stripBOM) . B.readFile . encodeString writeFile :: FilePath -> String -> IO () -writeFile f = B.writeFile f . fromString +writeFile f = B.writeFile (encodeString f) . fromString getContents :: IO String getContents = liftM (toString . stripBOM) B.getContents diff --git a/src/pandoc.hs b/src/pandoc.hs index ef38c0332..d52538a36 100644 --- a/src/pandoc.hs +++ b/src/pandoc.hs @@ -54,7 +54,7 @@ import Network.HTTP (simpleHTTP, mkRequest, getResponseBody, RequestMethod(..)) import Network.URI (parseURI, isURI) import qualified Data.ByteString.Lazy as B import Data.ByteString.Lazy.UTF8 (toString, fromString) -import Codec.Binary.UTF8.String (decodeString) +import Codec.Binary.UTF8.String (decodeString, encodeString) copyrightMessage :: String copyrightMessage = "\nCopyright (C) 2006-2010 John MacFarlane\n" ++ @@ -850,4 +850,4 @@ main = do if outputFile == "-" then B.putStr writerOutput - else B.writeFile outputFile writerOutput + else B.writeFile (encodeString outputFile) writerOutput -- cgit v1.2.3