Mercurial > genshi > mirror
changeset 423:56bbe1d94da0 trunk
Applied patch for #106 (handling of hex charrefs in HTML parser).
author | cmlenz |
---|---|
date | Tue, 20 Mar 2007 18:27:52 +0000 |
parents | 5d08a744636e |
children | 11355f9db50c |
files | genshi/input.py genshi/tests/input.py |
diffstat | 2 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/input.py +++ b/genshi/input.py @@ -338,7 +338,10 @@ self._enqueue(TEXT, text) def handle_charref(self, name): - text = unichr(int(name)) + if name.lower().startswith('x'): + text = unichr(int(name[1:], 16)) + else: + text = unichr(int(name)) self._enqueue(TEXT, text) def handle_entityref(self, name):
--- a/genshi/tests/input.py +++ b/genshi/tests/input.py @@ -222,6 +222,14 @@ self.assertEqual((Stream.END, 'b'), events[3][:2]) self.assertEqual((Stream.END, 'span'), events[4][:2]) + def test_hex_charref(self): + text = '<span>'</span>' + events = list(HTMLParser(StringIO(text))) + self.assertEqual(3, len(events)) + self.assertEqual((Stream.START, ('span', ())), events[0][:2]) + self.assertEqual((Stream.TEXT, "'"), events[1][:2]) + self.assertEqual((Stream.END, 'span'), events[2][:2]) + def suite(): suite = unittest.TestSuite()