From 27762affe3edd13ccb62a5450166b28fe73d15e6 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 22 Jul 2016 15:45:03 -0700 Subject: [PATCH] Textile reader: disallow empty URL in explicit link. Closes #3036. --- src/Text/Pandoc/Readers/Textile.hs | 2 +- tests/textile-reader.native | 1 + tests/textile-reader.textile | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Text/Pandoc/Readers/Textile.hs b/src/Text/Pandoc/Readers/Textile.hs index 25d687c1f..4ab0243fe 100644 --- a/src/Text/Pandoc/Readers/Textile.hs +++ b/src/Text/Pandoc/Readers/Textile.hs @@ -594,7 +594,7 @@ link = try $ do then char ']' else lookAhead $ space <|> try (oneOf "!.,;:" *> (space <|> newline)) - url <- manyTill nonspaceChar stop + url <- many1Till nonspaceChar stop let name' = if B.toList name == [Str "$"] then B.str url else name return $ if attr == nullAttr then B.link url "" name' diff --git a/tests/textile-reader.native b/tests/textile-reader.native index f5d4c20da..c617a53f5 100644 --- a/tests/textile-reader.native +++ b/tests/textile-reader.native @@ -96,6 +96,7 @@ Pandoc (Meta {unMeta = fromList []}) ,Header 2 ("explicit",[],[]) [Str "Explicit"] ,Para [Str "Just",Space,Str "a",Space,Link ("",[],[]) [Str "url"] ("http://www.url.com","")] ,Para [Link ("",[],[]) [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")] +,Para [Str "\"not",Space,Str "a",Space,Str "link\":",Space,Str "foo"] ,Para [Str "Automatic",Space,Str "linking",Space,Str "to",Space,Link ("",[],[]) [Str "http://www.example.com"] ("http://www.example.com",""),Str "."] ,Para [Link ("",[],[]) [Str "Example"] ("http://www.example.com/",""),Str ":",Space,Str "Example",Space,Str "of",Space,Str "a",Space,Str "link",Space,Str "followed",Space,Str "by",Space,Str "a",Space,Str "colon."] ,Para [Str "A",Space,Str "link",Link ("",[],[]) [Str "with",Space,Str "brackets"] ("http://www.example.com",""),Str "and",Space,Str "no",Space,Str "spaces."] diff --git a/tests/textile-reader.textile b/tests/textile-reader.textile index 3eaf62aed..cb9a68313 100644 --- a/tests/textile-reader.textile +++ b/tests/textile-reader.textile @@ -174,6 +174,8 @@ Just a "url":http://www.url.com "Email link":mailto:nobody@nowhere.net +"not a link": foo + Automatic linking to "$":http://www.example.com. "Example":http://www.example.com/: Example of a link followed by a colon.