@@ -150,11 +150,13 @@ beforeAttrName tag attrs = do
150-- | /§8.2.4.33/: Attribute name state
150-- | /§8.2.4.33/: Attribute name state
151attrName :: TagName -> [Attr] -> Parser Token
151attrName :: TagName -> [Attr] -> Parser Token
152attrName tag attrs = do
152attrName tag attrs = do
153− name <- takeWhile $ notInClass "\x09\x0a\x0c /=<>\x00"
153+ name <- takeWhile $ notInClass "\x09\x0a\x0c /=>"
154− id $ (satisfy (inClass "\x09\x0a\x0c ") >> afterAttrName tag attrs name)
154+ id $ (endOfInput >> afterAttrName tag attrs name)
155− <|> (char '/' >> selfClosingStartTag tag attrs)
156 <|> (char '=' >> beforeAttrValue tag attrs name)
155 <|> (char '=' >> beforeAttrValue tag attrs name)
157− <|> (char '>' >> return (TagOpen tag (Attr name T.empty : attrs)))
156+ <|> try (do mc <- peekChar
158+ Just c | inClass "\x09\x0a\x0c />" c -> afterAttrName tag attrs name
158 -- <|> -- TODO: NULL
160 -- <|> -- TODO: NULL
160-- | /§8.2.4.34/: After attribute name state
162-- | /§8.2.4.34/: After attribute name state