From 22bd34fa338edc5fb38cce5adfa11ffbc451b0d4 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
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