mirror of https://github.com/python/cpython.git
#12266: merge with 3.2.
This commit is contained in:
commit
269e3ee3db
|
@ -641,6 +641,23 @@ def test_capitalize(self):
|
||||||
self.checkequal('Aaaa', 'aaaa', 'capitalize')
|
self.checkequal('Aaaa', 'aaaa', 'capitalize')
|
||||||
self.checkequal('Aaaa', 'AaAa', 'capitalize')
|
self.checkequal('Aaaa', 'AaAa', 'capitalize')
|
||||||
|
|
||||||
|
# check that titlecased chars are lowered correctly
|
||||||
|
# \u1ffc is the titlecased char
|
||||||
|
self.checkequal('\u1ffc\u1ff3\u1ff3\u1ff3',
|
||||||
|
'\u1ff3\u1ff3\u1ffc\u1ffc', 'capitalize')
|
||||||
|
# check with cased non-letter chars
|
||||||
|
self.checkequal('\u24c5\u24e8\u24e3\u24d7\u24de\u24dd',
|
||||||
|
'\u24c5\u24ce\u24c9\u24bd\u24c4\u24c3', 'capitalize')
|
||||||
|
self.checkequal('\u24c5\u24e8\u24e3\u24d7\u24de\u24dd',
|
||||||
|
'\u24df\u24e8\u24e3\u24d7\u24de\u24dd', 'capitalize')
|
||||||
|
self.checkequal('\u2160\u2171\u2172',
|
||||||
|
'\u2160\u2161\u2162', 'capitalize')
|
||||||
|
self.checkequal('\u2160\u2171\u2172',
|
||||||
|
'\u2170\u2171\u2172', 'capitalize')
|
||||||
|
# check with Ll chars with no upper - nothing changes here
|
||||||
|
self.checkequal('\u019b\u1d00\u1d86\u0221\u1fb7',
|
||||||
|
'\u019b\u1d00\u1d86\u0221\u1fb7', 'capitalize')
|
||||||
|
|
||||||
self.checkraises(TypeError, 'hello', 'capitalize', 42)
|
self.checkraises(TypeError, 'hello', 'capitalize', 42)
|
||||||
|
|
||||||
def test_lower(self):
|
def test_lower(self):
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 3.3 Alpha 1?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase
|
||||||
|
titlecased and cased non-letter characters.
|
||||||
|
|
||||||
- Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall
|
- Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall
|
||||||
outside the BMP.
|
outside the BMP.
|
||||||
|
|
||||||
|
|
|
@ -6733,13 +6733,13 @@ fixcapitalize(PyUnicodeObject *self)
|
||||||
|
|
||||||
if (len == 0)
|
if (len == 0)
|
||||||
return 0;
|
return 0;
|
||||||
if (Py_UNICODE_ISLOWER(*s)) {
|
if (!Py_UNICODE_ISUPPER(*s)) {
|
||||||
*s = Py_UNICODE_TOUPPER(*s);
|
*s = Py_UNICODE_TOUPPER(*s);
|
||||||
status = 1;
|
status = 1;
|
||||||
}
|
}
|
||||||
s++;
|
s++;
|
||||||
while (--len > 0) {
|
while (--len > 0) {
|
||||||
if (Py_UNICODE_ISUPPER(*s)) {
|
if (!Py_UNICODE_ISLOWER(*s)) {
|
||||||
*s = Py_UNICODE_TOLOWER(*s);
|
*s = Py_UNICODE_TOLOWER(*s);
|
||||||
status = 1;
|
status = 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue