Commit 504de6bd authored by Jeremy Hylton's avatar Jeremy Hylton

Fix for SF bug [ 817156 ] invalid \U escape gives 0=length unistr.

parent dbe3d280
......@@ -33,6 +33,13 @@ class UnicodeTest(
self.assertEqual(realresult, result)
self.assert_(object is not realresult)
def test_literals(self):
self.assertEqual(u'\xff', u'\u00ff')
self.assertEqual(u'\uffff', u'\U0000ffff')
self.assertRaises(UnicodeError, eval, 'u\'\\Ufffffffe\'')
self.assertRaises(UnicodeError, eval, 'u\'\\Uffffffff\'')
self.assertRaises(UnicodeError, eval, 'u\'\\U%08x\'' % 0x110000)
def test_repr(self):
if not sys.platform.startswith('java'):
# Test basic sanity of repr()
......
......@@ -1750,7 +1750,7 @@ PyObject *PyUnicode_DecodeUnicodeEscape(const char *s,
chr += 10 + c - 'A';
}
s += i;
if (chr == 0xffffffff)
if (chr == 0xffffffff && PyErr_Occurred())
/* _decoding_error will have already written into the
target buffer. */
break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment