diff options
author | John MacFarlane <fiddlosopher@gmail.com> | 2012-01-20 19:11:35 -0800 |
---|---|---|
committer | John MacFarlane <fiddlosopher@gmail.com> | 2012-01-20 19:11:35 -0800 |
commit | c9c78344b1d798abd77a4ec65a5b7d1c0ec4c6e9 (patch) | |
tree | 0bfc9ab618d417430eef6fb044ab892c8d9c0353 /src | |
parent | 50e16e68559d0696d197ef9ff8b147b4ffc48b2a (diff) | |
download | pandoc-c9c78344b1d798abd77a4ec65a5b7d1c0ec4c6e9.tar.gz |
PDF: Removed TeXError type, just return a bytestring.
Diffstat (limited to 'src')
-rw-r--r-- | src/Text/Pandoc/PDF.hs | 25 | ||||
-rw-r--r-- | src/pandoc.hs | 1 |
2 files changed, 8 insertions, 18 deletions
diff --git a/src/Text/Pandoc/PDF.hs b/src/Text/Pandoc/PDF.hs index f6b3f9eed..f534aca25 100644 --- a/src/Text/Pandoc/PDF.hs +++ b/src/Text/Pandoc/PDF.hs @@ -46,19 +46,20 @@ import Text.Pandoc.UTF8 as UTF8 tex2pdf :: TeXProgram -> String -- ^ latex source - -> IO (Either TeXError ByteString) + -> IO (Either ByteString ByteString) tex2pdf program source = withSystemTempDirectory "tex2pdf" $ \tmpdir -> tex2pdf' tmpdir program source tex2pdf' :: FilePath -- ^ temp directory for output -> TeXProgram -> String -- ^ tex source - -> IO (Either TeXError ByteString) + -> IO (Either ByteString ByteString) tex2pdf' tmpDir program source = do (exit, log', mbPdf) <- runTeXProgram program 3 tmpDir source case (exit, mbPdf) of - (ExitFailure ec, _) -> return $ Left $ extractTeXError ec log' - (ExitSuccess, Nothing) -> error "tex2pdf: ExitSuccess but no PDF created!" + (ExitFailure _, _) -> return $ Left $ extractMsg log' + (ExitSuccess, Nothing) -> return $ Left + "tex2pdf: ExitSuccess but no PDF created!" (ExitSuccess, Just pdf) -> return $ Right pdf data TeXProgram = PDFLaTeX @@ -69,18 +70,8 @@ data TeXProgram = PDFLaTeX | PDFTeX deriving (Show, Read) -data TeXError = TeXError { exitCode :: Int - , message :: ByteString - , fullLog :: ByteString - } deriving (Show, Read) - -- parsing output -extractTeXError :: Int -> ByteString -> TeXError -extractTeXError ec log' = TeXError { exitCode = ec - , message = extractMsg log' - , fullLog = log' } - extractMsg :: ByteString -> ByteString extractMsg log' = do let msg' = dropWhile (not . ("!" `BC.isPrefixOf`)) $ BC.lines log' @@ -134,8 +125,7 @@ runTeXProgram program runsLeft tmpDir source = do -- 'readProcessWithExitCode' from 'System.Process'.) readCommand :: FilePath -- ^ command to run -> [String] -- ^ any arguments - -> IO (ExitCode,ByteString,ByteString) -- ^ exitcode, stdout, stderr - + -> IO (ExitCode,ByteString,ByteString) -- ^ exit, stdout, stderr readCommand cmd args = do (Just inh, Just outh, Just errh, pid) <- createProcess (proc cmd args){ std_in = CreatePipe, @@ -156,5 +146,4 @@ readCommand cmd args = do hClose outh -- wait on the process ex <- waitForProcess pid - return (ex, out, err) - + return (ex, out, err)
\ No newline at end of file diff --git a/src/pandoc.hs b/src/pandoc.hs index 640d018b9..a6db9c4e1 100644 --- a/src/pandoc.hs +++ b/src/pandoc.hs @@ -30,6 +30,7 @@ writers. -} module Main where import Text.Pandoc +import Text.Pandoc.PDF (tex2pdf) import Text.Pandoc.Shared ( tabFilter, ObfuscationMethod (..), readDataFile, headerShift, findDataFile, normalize ) import Text.Pandoc.SelfContained ( makeSelfContained ) |