mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	merge with 3.2
This commit is contained in:
		
						commit
						5f9459fbed
					
				
					 2 changed files with 6 additions and 3 deletions
				
			
		|  | @ -666,6 +666,8 @@ def test_surrogatepass_handler(self): | ||||||
|         self.assertEqual(b"\xf0\x90\xbf\xbf\xed\xa0\x80".decode("utf-8", "surrogatepass"), |         self.assertEqual(b"\xf0\x90\xbf\xbf\xed\xa0\x80".decode("utf-8", "surrogatepass"), | ||||||
|                          "\U00010fff\uD800") |                          "\U00010fff\uD800") | ||||||
|         self.assertTrue(codecs.lookup_error("surrogatepass")) |         self.assertTrue(codecs.lookup_error("surrogatepass")) | ||||||
|  |         with self.assertRaises(UnicodeDecodeError): | ||||||
|  |             b"abc\xed\xa0".decode("utf-8", "surrogatepass") | ||||||
| 
 | 
 | ||||||
| @unittest.skipUnless(sys.platform == 'win32', | @unittest.skipUnless(sys.platform == 'win32', | ||||||
|                      'cp65001 is a Windows-only codec') |                      'cp65001 is a Windows-only codec') | ||||||
|  |  | ||||||
|  | @ -791,9 +791,10 @@ PyCodec_SurrogatePassErrors(PyObject *exc) | ||||||
|         /* Try decoding a single surrogate character. If
 |         /* Try decoding a single surrogate character. If
 | ||||||
|            there are more, let the codec call us again. */ |            there are more, let the codec call us again. */ | ||||||
|         p += start; |         p += start; | ||||||
|         if ((p[0] & 0xf0) == 0xe0 || |         if (strlen(p) > 2 && | ||||||
|  |             ((p[0] & 0xf0) == 0xe0 || | ||||||
|              (p[1] & 0xc0) == 0x80 || |              (p[1] & 0xc0) == 0x80 || | ||||||
|             (p[2] & 0xc0) == 0x80) { |              (p[2] & 0xc0) == 0x80)) { | ||||||
|             /* it's a three-byte code */ |             /* it's a three-byte code */ | ||||||
|             ch = ((p[0] & 0x0f) << 12) + ((p[1] & 0x3f) << 6) + (p[2] & 0x3f); |             ch = ((p[0] & 0x0f) << 12) + ((p[1] & 0x3f) << 6) + (p[2] & 0x3f); | ||||||
|             if (ch < 0xd800 || ch > 0xdfff) |             if (ch < 0xd800 || ch > 0xdfff) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Philip Jenvey
						Philip Jenvey