git.iko.soy/typeable/pandoc
on master help sign in
More flexible handling of --csl.
0955a0eJohn MacFarlane
src/pandoc.hs+10−2
@@ -42,7 +42,7 @@ import System.FilePath
42import System.Console.GetOpt
42import System.Console.GetOpt
43import Data.Char ( toLower, isDigit )
43import Data.Char ( toLower, isDigit )
44import Data.List ( intercalate, isSuffixOf )
44import Data.List ( intercalate, isSuffixOf )
45−import System.Directory ( getAppUserDataDirectory )
45+import System.Directory ( getAppUserDataDirectory, doesFileExist )
46import System.IO ( stdout, stderr )
46import System.IO ( stdout, stderr )
47import qualified Text.Pandoc.UTF8 as UTF8
47import qualified Text.Pandoc.UTF8 as UTF8
48import Text.CSL
48import Text.CSL
@@ -832,9 +832,17 @@ main = do
832 if null refs
832 if null refs
833 then return doc'
833 then return doc'
834 else do
834 else do
835+ csldir <- getAppUserDataDirectory "csl"
835 cslfile' <- if null cslfile
836 cslfile' <- if null cslfile
836 then findDataFile datadir "default.csl"
837 then findDataFile datadir "default.csl"
838+ else do
839+ ex <- doesFileExist cslfile
840+ if ex
837− else return cslfile
841+ then return cslfile
842+ else findDataFile datadir $
843+ replaceDirectory
844+ (replaceExtension cslfile "csl")
845+ csldir
838 processBiblio cslfile' refs doc'
846 processBiblio cslfile' refs doc'
839
847
840 writerOutput <- writer writerOptions doc''
848 writerOutput <- writer writerOptions doc''