From 099b4b776985e23bffb06b3dca3a697d3fde2a41 Mon Sep 17 00:00:00 2001
From: John MacFarlane <fiddlosopher@gmail.com>
Date: Thu, 28 Mar 2013 09:54:02 -0700
Subject: [PATCH] Mediawiki:  Fixed regression for `<ref>URL</ref>`.

`<` is no longer allowed in URLs, according to the uri parser
in Text.Pandoc.Parsing.

Added a test case.
---
 src/Text/Pandoc/Parsing.hs    | 2 +-
 tests/mediawiki-reader.native | 3 ++-
 tests/mediawiki-reader.wiki   | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs
index 44a64c80a..31f3d2525 100644
--- a/src/Text/Pandoc/Parsing.hs
+++ b/src/Text/Pandoc/Parsing.hs
@@ -430,7 +430,7 @@ uri = try $ do
   let percentEscaped = try $ char '%' >> skipMany1 (satisfy isHexDigit)
   let entity = () <$ characterReference
   let punct = skipMany1 (char ',')
-          <|> () <$ (satisfy (not . isSpace))
+          <|> () <$ (satisfy (\c -> not (isSpace c) && c /= '<'))
   let uriChunk =  skipMany1 wordChar
               <|> percentEscaped
               <|> entity
diff --git a/tests/mediawiki-reader.native b/tests/mediawiki-reader.native
index 2527c7851..3de4df068 100644
--- a/tests/mediawiki-reader.native
+++ b/tests/mediawiki-reader.native
@@ -242,4 +242,5 @@ Pandoc (Meta {docTitle = [], docAuthors = [], docDate = []})
  [[[Para [Str "Orange"]]]]
 ,Para [Str "Paragraph",Space,Str "after",Space,Str "the",Space,Str "table."]
 ,Header 2 ("",[],[]) [Str "notes"]
-,Para [Str "My",Space,Str "note!",Note [Plain [Str "This."]]]]
+,Para [Str "My",Space,Str "note!",Note [Plain [Str "This."]]]
+,Para [Str "URL",Space,Str "note.",Note [Plain [Link [Str "http://docs.python.org/library/functions.html#range"] ("http://docs.python.org/library/functions.html#range","")]]]]
diff --git a/tests/mediawiki-reader.wiki b/tests/mediawiki-reader.wiki
index e373c332e..128e74a14 100644
--- a/tests/mediawiki-reader.wiki
+++ b/tests/mediawiki-reader.wiki
@@ -370,3 +370,4 @@ and cheese
 
 My note!<ref>This.</ref>
 
+URL note.<ref>http://docs.python.org/library/functions.html#range</ref>