From 76bd5890e2a098101eaf163dab2a49b51af1d766 Mon Sep 17 00:00:00 2001 From: Sam Cooke Date: Tue, 4 Mar 2014 18:39:38 +0000 Subject: [PATCH] Fixing SVG close tag bug --- AUTHORS.rst | 1 + CHANGES.rst | 2 ++ html5lib/html5parser.py | 2 ++ html5lib/tests/test_parser2.py | 4 ++++ 4 files changed, 9 insertions(+) diff --git a/AUTHORS.rst b/AUTHORS.rst index 4148a6ed..30179025 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -32,3 +32,4 @@ Patches and suggestions - Juan Carlos Garcia Segovia - Mike West - Marc DM +- Sam Cooke diff --git a/CHANGES.rst b/CHANGES.rst index 1431b3c9..f93dd4d7 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,8 @@ Change Log Released on XXX, 2014 +* Fix: SVG end tags were not being adjusted + * XXX diff --git a/html5lib/html5parser.py b/html5lib/html5parser.py index 9be3e134..eab177ad 100644 --- a/html5lib/html5parser.py +++ b/html5lib/html5parser.py @@ -2445,6 +2445,8 @@ def processStartTag(self, token): def processEndTag(self, token): nodeIndex = len(self.tree.openElements) - 1 node = self.tree.openElements[-1] + if node.namespace == namespaces["svg"]: + self.adjustSVGTagNames(token) if node.name != token["name"]: self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) diff --git a/html5lib/tests/test_parser2.py b/html5lib/tests/test_parser2.py index 20bbdf31..30aa0a54 100644 --- a/html5lib/tests/test_parser2.py +++ b/html5lib/tests/test_parser2.py @@ -51,6 +51,10 @@ def test_unicode_file(self): parser = html5parser.HTMLParser() parser.parse(io.StringIO("a")) + def test_svg_token(self): + parser = html5parser.HTMLParser(strict=True) + parser.parseFragment("") + def buildTestSuite(): return unittest.defaultTestLoader.loadTestsFromName(__name__)