Merged revisions 71947 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71947 | martin.v.loewis | 2009-04-26 02:53:18 +0200 (So, 26 Apr 2009) | 3 lines

  Issue #4971: Fix titlecase for characters that are their own
  titlecase, but not their own uppercase.
........
This commit is contained in:
Martin v. Löwis 2009-04-26 01:01:58 +00:00
parent 47c975385d
commit 2a574aed7e
3 changed files with 10 additions and 7 deletions

View File

@ -20,7 +20,7 @@ encoding = 'utf-8'
class UnicodeMethodsTest(unittest.TestCase): class UnicodeMethodsTest(unittest.TestCase):
# update this, if the database changes # update this, if the database changes
expectedchecksum = 'b7db9b5f1d804976fa921d2009cbef6f025620c1' expectedchecksum = '6ec65b65835614ec00634c674bba0e50cd32c189'
def test_method_checksum(self): def test_method_checksum(self):
h = hashlib.sha1() h = hashlib.sha1()
@ -270,6 +270,11 @@ class UnicodeMiscTest(UnicodeDatabaseTest):
[0] [0]
) )
def test_buf_4971(self):
# LETTER DZ WITH CARON: DZ, Dz, dz
self.assertEqual(u"\u01c4".title(), u"\u01c5")
self.assertEqual(u"\u01c5".title(), u"\u01c5")
self.assertEqual(u"\u01c6".title(), u"\u01c5")
def test_main(): def test_main():
test.test_support.run_unittest( test.test_support.run_unittest(

View File

@ -12,6 +12,9 @@ What's New in Python 2.6.3
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #4971: Fix titlecase for characters that are their own
titlecase, but not their own uppercase.
- Issue #5829: complex('1e-500') no longer raises an exception - Issue #5829: complex('1e-500') no longer raises an exception
- Issue #5787: object.__getattribute__(some_type, "__bases__") segfaulted on - Issue #5787: object.__getattribute__(some_type, "__bases__") segfaulted on

View File

@ -76,12 +76,7 @@ int _PyUnicode_IsLinebreak(register const Py_UNICODE ch)
Py_UNICODE _PyUnicode_ToTitlecase(register Py_UNICODE ch) Py_UNICODE _PyUnicode_ToTitlecase(register Py_UNICODE ch)
{ {
const _PyUnicode_TypeRecord *ctype = gettyperecord(ch); const _PyUnicode_TypeRecord *ctype = gettyperecord(ch);
int delta; int delta = ctype->title;
if (ctype->title)
delta = ctype->title;
else
delta = ctype->upper;
if (ctype->flags & NODELTA_MASK) if (ctype->flags & NODELTA_MASK)
return delta; return delta;