From 22bd34fa338edc5fb38cce5adfa11ffbc451b0d4 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 22 Sep 2012 13:59:30 -0700 Subject: Markdown reader: Fixed link parser to avoid exponential slowdowns. Previously the parser would hang on input like this: [[[[[[[[[[[[[[[[[[hi We fixed this by making the link parser parser characters between balanced brackets (skipping brackets in inline code spans), then parsing the result as an inline list. One change is that [hi *there]* bud](/url) is now no longer parsed as a link. But in this respect pandoc behaved differently from most other implementations anyway, so that seems okay. All current tests pass. Added test for this case. Closes #620. --- tests/Tests/Readers/Markdown.hs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests') diff --git a/tests/Tests/Readers/Markdown.hs b/tests/Tests/Readers/Markdown.hs index 9a79f12f4..1eb2ce31e 100644 --- a/tests/Tests/Readers/Markdown.hs +++ b/tests/Tests/Readers/Markdown.hs @@ -48,6 +48,8 @@ tests = [ testGroup "inline code" [ "in URL" =: "\\begin\n" =?> para (text "\\begin") ] + , "unbalanced brackets" =: + "[[[[[[[[[[[[[[[hi" =?> para (text "[[[[[[[[[[[[[[[hi") , testGroup "backslash escapes" [ "in URL" =: "[hi](/there\\))" -- cgit v1.2.3