diff options
-rw-r--r-- | Database/Handle.hs | 2 | ||||
-rw-r--r-- | Utility/FileSystemEncoding.hs | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/Database/Handle.hs b/Database/Handle.hs index 9071cd538..d84ce5b62 100644 --- a/Database/Handle.hs +++ b/Database/Handle.hs @@ -69,7 +69,7 @@ openDb db tablename = do worker <- async (workerThread (T.pack db) tablename jobs) -- work around https://github.com/yesodweb/persistent/issues/474 - liftIO useFileSystemEncoding + liftIO $ fileEncoding stderr return $ DbHandle worker jobs diff --git a/Utility/FileSystemEncoding.hs b/Utility/FileSystemEncoding.hs index be43ace95..ae3bd35d7 100644 --- a/Utility/FileSystemEncoding.hs +++ b/Utility/FileSystemEncoding.hs @@ -10,6 +10,7 @@ module Utility.FileSystemEncoding ( useFileSystemEncoding, + fileEncoding, withFilePath, md5FilePath, decodeBS, @@ -63,6 +64,13 @@ useFileSystemEncoding = do hSetEncoding stderr e Encoding.setLocaleEncoding e +fileEncoding :: Handle -> IO () +#ifndef mingw32_HOST_OS +fileEncoding h = hSetEncoding h =<< Encoding.getFileSystemEncoding +#else +fileEncoding h = hSetEncoding h Encoding.utf8 +#endif + {- Marshal a Haskell FilePath into a NUL terminated C string using temporary - storage. The FilePath is encoded using the filesystem encoding, - reversing the decoding that should have been done when the FilePath |