@@ -157,9 +157,9 @@ class (Functor m, Applicative m, Monad m, MonadError PandocError m)
157157 readFileStrict :: FilePath -> m B.ByteString
158158 -- | Read file from from Cabal data directory.
159159 readDefaultDataFile :: FilePath -> m B.ByteString
160− -- | Read file from specified user data directory or,
160+ -- | Read file from user data directory or,
161161 -- if not found there, from Cabal data directory.
162− readDataFile :: Maybe FilePath -> FilePath -> m B.ByteString
162+ readDataFile :: FilePath -> m B.ByteString
163163 -- | Return a list of paths that match a glob, relative to
164164 -- the working directory. See 'System.FilePath.Glob' for
165165 -- the glob syntax.
@@ -335,7 +335,9 @@ instance PandocMonad PandocIO where
335335 readFileLazy s = liftIOError BL.readFile s
336336 readFileStrict s = liftIOError B.readFile s
337337 readDefaultDataFile fname = liftIOError IO.readDefaultDataFile fname
338− readDataFile mfp fname = liftIOError (IO.readDataFile mfp) fname
338+ readDataFile fname = do
339+ datadir <- getUserDataDir
340+ liftIOError (IO.readDataFile datadir) fname
339341 glob = liftIO . IO.glob
340342 getModificationTime fp = liftIOError IO.getModificationTime fp
341343 getCommonState = PandocIO $ lift get
@@ -629,12 +631,16 @@ instance PandocMonad PandocPure where
629631 readDefaultDataFile fname = do
630632 let fname' = if fname == "MANUAL.txt" then fname else "data" </> fname
631633 readFileStrict fname'
632− readDataFile (Just userDir) fname = do
633− userDirFiles <- getsPureState stUserDataFiles
634− case infoFileContents <$> getFileInfo (userDir </> fname) userDirFiles of
635− Just bs -> return bs
636− Nothing -> readDataFile Nothing fname
637− readDataFile Nothing fname = readDefaultDataFile fname
634+ readDataFile fname = do
635+ datadir <- getUserDataDir
636+ case datadir of
637+ Just userDir -> do
638+ userDirFiles <- getsPureState stUserDataFiles
639+ case infoFileContents <$> getFileInfo (userDir </> fname)
640+ userDirFiles of
641+ Just bs -> return bs
642+ Nothing -> readDefaultDataFile fname
643+ Nothing -> readDefaultDataFile fname
638644
639645 glob s = do
640646 FileTree ftmap <- getsPureState stFiles
@@ -662,7 +668,7 @@ instance PandocMonad m => PandocMonad (ParsecT s st m) where
662668 readFileLazy = lift . readFileLazy
663669 readFileStrict = lift . readFileStrict
664670 readDefaultDataFile = lift . readDefaultDataFile
665− readDataFile mbuserdir = lift . readDataFile mbuserdir
671+ readDataFile = lift . readDataFile
666672 glob = lift . glob
667673 getModificationTime = lift . getModificationTime
668674 getCommonState = lift getCommonState
@@ -691,7 +697,7 @@ instance PandocMonad m => PandocMonad (ReaderT r m) where
691697 readFileLazy = lift . readFileLazy
692698 readFileStrict = lift . readFileStrict
693699 readDefaultDataFile = lift . readDefaultDataFile
694− readDataFile mbuserdir = lift . readDataFile mbuserdir
700+ readDataFile = lift . readDataFile
695701 glob = lift . glob
696702 getModificationTime = lift . getModificationTime
697703 getCommonState = lift getCommonState
@@ -708,7 +714,7 @@ instance (PandocMonad m, Monoid w) => PandocMonad (WriterT w m) where
708714 readFileLazy = lift . readFileLazy
709715 readFileStrict = lift . readFileStrict
710716 readDefaultDataFile = lift . readDefaultDataFile
711− readDataFile mbuserdir = lift . readDataFile mbuserdir
717+ readDataFile = lift . readDataFile
712718 glob = lift . glob
713719 getModificationTime = lift . getModificationTime
714720 getCommonState = lift getCommonState
@@ -725,7 +731,7 @@ instance (PandocMonad m, Monoid w) => PandocMonad (RWST r w st m) where
725731 readFileLazy = lift . readFileLazy
726732 readFileStrict = lift . readFileStrict
727733 readDefaultDataFile = lift . readDefaultDataFile
728− readDataFile mbuserdir = lift . readDataFile mbuserdir
734+ readDataFile = lift . readDataFile
729735 glob = lift . glob
730736 getModificationTime = lift . getModificationTime
731737 getCommonState = lift getCommonState
@@ -742,7 +748,7 @@ instance PandocMonad m => PandocMonad (StateT st m) where
742748 readFileLazy = lift . readFileLazy
743749 readFileStrict = lift . readFileStrict
744750 readDefaultDataFile = lift . readDefaultDataFile
745− readDataFile mbuserdir = lift . readDataFile mbuserdir
751+ readDataFile = lift . readDataFile
746752 glob = lift . glob
747753 getModificationTime = lift . getModificationTime
748754 getCommonState = lift getCommonState