From 89ccbc171b8224001048693ae599b7bc413c36f5 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Fri, 1 Mar 2019 10:57:10 -0800
Subject: Make `--fail-if-warnings` work for PDF output.

Closes #5343.
---
 src/Text/Pandoc/PDF.hs | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

(limited to 'src')

diff --git a/src/Text/Pandoc/PDF.hs b/src/Text/Pandoc/PDF.hs
index e9c0d8889..ace7c6456 100644
--- a/src/Text/Pandoc/PDF.hs
+++ b/src/Text/Pandoc/PDF.hs
@@ -94,22 +94,28 @@ makePDF program pdfargs writer opts doc = do
             if '~' `elem` tmp
                    then withTempDirectory "." templ action
                    else withSystemTempDirectory templ action
-      liftIO $ withTempDir "tex2pdf." $ \tmpdir' -> do
+      (newCommonState, res) <- liftIO $ withTempDir "tex2pdf." $ \tmpdir' -> do
 #ifdef _WINDOWS
         -- note:  we want / even on Windows, for TexLive
         let tmpdir = changePathSeparators tmpdir'
 #else
         let tmpdir = tmpdir'
 #endif
-        source <- runIOorExplode $ do
+        (source, newCommonState)
+              <- runIOorExplode $ do
                     putCommonState commonState
                     doc' <- handleImages tmpdir doc
-                    writer opts doc'
-        case baseProg of
+                    result <- writer opts doc'
+                    cs <- getCommonState
+                    return (result, cs)
+        res <- case baseProg of
            "context" -> context2pdf verbosity program pdfargs tmpdir source
            prog | prog `elem` ["pdflatex", "lualatex", "xelatex", "latexmk"]
                -> tex2pdf verbosity program pdfargs tmpdir source
            _ -> return $ Left $ UTF8.fromStringLazy $ "Unknown program " ++ program
+        return (newCommonState, res)
+      putCommonState newCommonState
+      return res
 
 makeWithWkhtmltopdf :: String              -- ^ wkhtmltopdf or path
                     -> [String]            -- ^ arguments
-- 
cgit v1.2.3