diff options
author | Alexander Krotov <ilabdsf@gmail.com> | 2018-03-12 13:38:31 +0300 |
---|---|---|
committer | Alexander Krotov <ilabdsf@gmail.com> | 2018-03-12 13:44:27 +0300 |
commit | f0a029ac51affeb56cba88f76375a98293b2ea7c (patch) | |
tree | ba7993ef4f02bbb1237cf41d0cf7b765111fae04 | |
parent | 15f700d8edc7c3a860766de7c6fef572b533dab2 (diff) | |
download | pandoc-f0a029ac51affeb56cba88f76375a98293b2ea7c.tar.gz |
Muse reader: do not reparse blocks inside unclosed block tag
Fixes #4425
-rw-r--r-- | src/Text/Pandoc/Readers/Muse.hs | 8 | ||||
-rw-r--r-- | test/Tests/Readers/Muse.hs | 18 |
2 files changed, 22 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/Muse.hs b/src/Text/Pandoc/Readers/Muse.hs index 3e642b386..293bc627c 100644 --- a/src/Text/Pandoc/Readers/Muse.hs +++ b/src/Text/Pandoc/Readers/Muse.hs @@ -265,10 +265,10 @@ parseBlocksTill :: PandocMonad m => MuseParser m a -> MuseParser m (F Blocks) parseBlocksTill end = - try parseEnd <|> - try blockStart <|> - try listStart <|> - try paraStart + try (parseEnd <|> + blockStart <|> + listStart <|> + paraStart) where parseEnd = mempty <$ end blockStart = do first <- blockElements diff --git a/test/Tests/Readers/Muse.hs b/test/Tests/Readers/Muse.hs index 01e8d7b85..f64927ff1 100644 --- a/test/Tests/Readers/Muse.hs +++ b/test/Tests/Readers/Muse.hs @@ -1224,5 +1224,23 @@ tests = , "</quote>" ] =?> blockQuote (bulletList [ blockQuote $ para "foo" ] <> para "bar") + + , "Unclosed quote tag" =: + T.unlines + [ "<quote>" + , "<verse>" + , "</quote>" + , "</verse>" + ] =?> + para "<quote>" <> lineBlock [ "</quote>" ] + + , "Unclosed quote tag inside list" =: + T.unlines + [ " - <quote>" + , " <verse>" + , " </quote>" + , " </verse>" + ] =?> + bulletList [ para "<quote>" <> lineBlock [ "</quote>" ] ] ] ] |