Bug #1448490: Fix a bug that ISO-2022 codecs could not handle

SS2 (single-shift 2) escape sequences correctly.
This commit is contained in:
Hye-Shik Chang 2006-03-13 10:20:08 +00:00
parent 6058aa40d2
commit abb903fd54
3 changed files with 11 additions and 1 deletions

View File

@ -75,9 +75,16 @@ class Test_StreamWriter(unittest.TestCase):
wr.write('abcd')
self.assertEqual(s.getvalue(), 'abcd')
class Test_ISO2022(unittest.TestCase):
def test_g2(self):
iso2022jp2 = '\x1b(B:hu4:unit\x1b.A\x1bNi de famille'
uni = u':hu4:unit\xe9 de famille'
self.assertEqual(iso2022jp2.decode('iso2022-jp-2'), uni)
def test_main():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(Test_StreamWriter))
suite.addTest(unittest.makeSuite(Test_ISO2022))
test_support.run_suite(suite)
if __name__ == "__main__":

View File

@ -279,6 +279,9 @@ Core and builtins
Extension Modules
-----------------
- Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle
SS2 (single-shift 2) escape sequences correctly.
- The unicodedata module was updated to the 4.1 version of the Unicode
database. The 3.2 version is still available as unicodedata.db_3_2_0
for applications that require this specific version (such as IDNA).

View File

@ -414,7 +414,7 @@ iso2022processg2(const void *config, MultibyteCodec_State *state,
(*inbuf) += 3;
*inleft -= 3;
(*outbuf) += 1;
*outbuf -= 1;
*outleft -= 1;
return 0;
}