From: Martin v. Löwis Date: Sun, 26 Apr 2009 01:04:33 +0000 (+0000) Subject: Merged revisions 71949 via svnmerge from X-Git-Tag: 3.0~171 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=61336d0e0bbf13d269c7093e9f47ff042714e5ee;p=thirdparty%2FPython%2Fcpython.git Merged revisions 71949 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r71949 | martin.v.loewis | 2009-04-26 03:02:07 +0200 (So, 26 Apr 2009) | 10 lines 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. ........ ................ --- diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py index 4f691b5bdf7b..b85b9779dfd5 100644 --- a/Lib/test/test_unicodedata.py +++ b/Lib/test/test_unicodedata.py @@ -20,7 +20,7 @@ encoding = 'utf-8' class UnicodeMethodsTest(unittest.TestCase): # update this, if the database changes - expectedchecksum = 'b7db9b5f1d804976fa921d2009cbef6f025620c1' + expectedchecksum = '6ec65b65835614ec00634c674bba0e50cd32c189' def test_method_checksum(self): h = hashlib.sha1() @@ -271,6 +271,11 @@ class UnicodeMiscTest(UnicodeDatabaseTest): [0] ) + def test_buf_4971(self): + # LETTER DZ WITH CARON: DZ, Dz, dz + self.assertEqual("\u01c4".title(), "\u01c5") + self.assertEqual("\u01c5".title(), "\u01c5") + self.assertEqual("\u01c6".title(), "\u01c5") def test_main(): test.support.run_unittest( diff --git a/Misc/NEWS b/Misc/NEWS index ccf50095e29a..4928f395ee29 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 3.0.2? 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 #5604: non-ASCII characters in module name passed to diff --git a/Objects/unicodectype.c b/Objects/unicodectype.c index 40694c619cfd..8c710e05b701 100644 --- a/Objects/unicodectype.c +++ b/Objects/unicodectype.c @@ -79,12 +79,7 @@ int _PyUnicode_IsLinebreak(register const Py_UNICODE ch) Py_UNICODE _PyUnicode_ToTitlecase(register Py_UNICODE ch) { const _PyUnicode_TypeRecord *ctype = gettyperecord(ch); - int delta; - - if (ctype->title) - delta = ctype->title; - else - delta = ctype->upper; + int delta = ctype->title; if (ctype->flags & NODELTA_MASK) return delta;