diff options
author | John MacFarlane <jgm@berkeley.edu> | 2018-10-15 17:28:10 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2018-10-15 17:28:10 -0700 |
commit | 252398a4f3c33cff4a0407e749cf3abebca7654f (patch) | |
tree | 59d7708c18c1731618c789d1a2852f22f58288ef /src/Text/Pandoc/Readers | |
parent | 5bd852c5db3d13d30c267dd44ce8e88de5788e5d (diff) | |
download | pandoc-252398a4f3c33cff4a0407e749cf3abebca7654f.tar.gz |
LaTeX reader: withVerbatimMode now does nothing if already in
verbatim mode. Previously nested uses wouldn't work properly.
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r-- | src/Text/Pandoc/Readers/LaTeX/Parsing.hs | 12 |
1 files changed, 8 insertions, 4 deletions
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) |