git.iko.soy/typeable/pandoc
on master help sign in
pandoc: Better error checking.
commite6e4311ddd3f964122a309af926dc95f6ef970d9 authorJohn MacFarlane <fiddlosopher@gmail.com> dateSat 21 Jan 2012, 14:18 (15 years ago) parent194bdad
2 files changed+15−5
src/Text/Pandoc/PDF.hs+5−5 src/pandoc.hs+10
src/Text/Pandoc/PDF.hs+5−5
@@ -72,9 +72,9 @@ extractMsg log' = do
7272 let msg' = dropWhile (not . ("!" `BC.isPrefixOf`)) $ BC.lines log'
7373 let (msg'',rest) = break ("l." `BC.isPrefixOf`) msg'
7474 let lineno = take 1 rest
75− if not (null msg')
76− then BC.unlines (msg'' ++ lineno)
77− else "Unknown errorR"
75+ if null msg'
76+ then log'
77+ else BC.unlines (msg'' ++ lineno)
7878
7979parseLine :: ByteString -> Bool
8080parseLine ln =
@@ -101,7 +101,7 @@ runTeXProgram program runsLeft tmpDir source = do
101101 hClose h
102102 let programArgs = ["-halt-on-error", "-interaction", "nonstopmode",
103103 "-output-directory", tmpDir, file]
104− (exit, out, _err) <- readCommand program programArgs
104+ (exit, out, err) <- readCommand program programArgs
105105 removeFile file
106106 let pdfFile = replaceDirectory (replaceExtension file ".pdf") tmpDir
107107 pdfExists <- doesFileExist pdfFile
@@ -110,7 +110,7 @@ runTeXProgram program runsLeft tmpDir source = do
110110 else return Nothing
111111 if hasUndefinedRefs out && runsLeft > 0
112112 then runTeXProgram program (runsLeft - 1) tmpDir source
113− else return (exit, out, pdf)
113+ else return (exit, out <> err, pdf)
114114
115115-- utility functions
116116
src/pandoc.hs+10
@@ -549,6 +549,16 @@ options =
549549 "FILENAME")
550550 "" -- "Path of epub metadata file"
551551
552+ , Option "" ["latex-program"]
553+ (ReqArg
554+ (\arg opt -> do
555+ let b = takeBaseName arg
556+ if (b == "pdflatex" || b == "lualatex" || b == "xelatex")
557+ then return opt { optLaTeXProgram = arg }
558+ else err 45 "latex-program must be pdflatex, lualatex, or xelatex.")
559+ "PROGRAM")
560+ "" -- "Name of latex program to use in generating PDF"
561+
552562 , Option "D" ["print-default-template"]
553563 (ReqArg
554564 (\arg _ -> do