From 252398a4f3c33cff4a0407e749cf3abebca7654f Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 15 Oct 2018 17:28:10 -0700 Subject: LaTeX reader: withVerbatimMode now does nothing if already in verbatim mode. Previously nested uses wouldn't work properly. --- src/Text/Pandoc/Readers/LaTeX/Parsing.hs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/Text') diff --git a/src/Text/Pandoc/Readers/LaTeX/Parsing.hs b/src/Text/Pandoc/Readers/LaTeX/Parsing.hs index ae565b913..69bbf28d4 100644 --- a/src/Text/Pandoc/Readers/LaTeX/Parsing.hs +++ b/src/Text/Pandoc/Readers/LaTeX/Parsing.hs @@ -216,10 +216,14 @@ type LP m = ParserT [Tok] LaTeXState m withVerbatimMode :: PandocMonad m => LP m a -> LP m a withVerbatimMode parser = do - updateState $ \st -> st{ sVerbatimMode = True } - result <- parser - updateState $ \st -> st{ sVerbatimMode = False } - return result + alreadyVerbatimMode <- sVerbatimMode <$> getState + if alreadyVerbatimMode + then parser + else do + updateState $ \st -> st{ sVerbatimMode = True } + result <- parser + updateState $ \st -> st{ sVerbatimMode = False } + return result rawLaTeXParser :: (PandocMonad m, HasMacros s, HasReaderOptions s) => Bool -> LP m a -> LP m a -> ParserT String s m (a, String) -- cgit v1.2.3