git.iko.soy/typeable/pandoc
on master help sign in
Small efficiency improvement in uri parser
commitce1791913da713ec35f514006bb532cb9c9c8d22 authorJohn MacFarlane <jgm@berkeley.edu> dateMon 7 Dec 2020, 13:24 (6 years ago) parent2f9b684
1 file changed+14−1
src/Text/Pandoc/Parsing.hs+14−1
src/Text/Pandoc/Parsing.hs+14−1
@@ -654,7 +654,20 @@ uri = try $ do
654654 let uri' = scheme <> ":" <> fromEntities str'
655655 return (uri', escapeURI uri')
656656 where
657− wordChar = alphaNum <|> oneOf "#$%+/@\\_-&="
657+ isWordChar '#' = True
658+ isWordChar '$' = True
659+ isWordChar '%' = True
660+ isWordChar '+' = True
661+ isWordChar '/' = True
662+ isWordChar '@' = True
663+ isWordChar '\\' = True
664+ isWordChar '_' = True
665+ isWordChar '-' = True
666+ isWordChar '&' = True
667+ isWordChar '=' = True
668+ isWordChar c = isAlphaNum c
669+
670+ wordChar = satisfy isWordChar
658671 percentEscaped = try $ (:) <$> char '%' <*> many1 hexDigit
659672 entity = try $ pure <$> characterReference
660673 punct = try $ many1 (char ',') <|> fmap pure (satisfy (\c -> not (isSpace c) && c /= '<' && c /= '>'))