Fixed .capitalize() method of Unicode objects to work like the

corresponding string method. Added tests for this too.

Patch written by Marc-Andre Lemburg. Copyright assigned to Guido van Rossum.
This commit is contained in:
Marc-André Lemburg 2001-01-29 11:14:16 +00:00
parent 30be8708c5
commit fde66e1bcc
3 changed files with 22 additions and 4 deletions

View file

@ -2631,11 +2631,25 @@ int fixswapcase(PyUnicodeObject *self)
static
int fixcapitalize(PyUnicodeObject *self)
{
if (self->length > 0 && Py_UNICODE_ISLOWER(self->str[0])) {
self->str[0] = Py_UNICODE_TOUPPER(self->str[0]);
return 1;
int len = self->length;
Py_UNICODE *s = self->str;
int status = 0;
if (len == 0)
return 0;
if (Py_UNICODE_ISLOWER(*s)) {
*s = Py_UNICODE_TOUPPER(*s);
status = 1;
}
return 0;
s++;
while (--len > 0) {
if (Py_UNICODE_ISUPPER(*s)) {
*s = Py_UNICODE_TOLOWER(*s);
status = 1;
}
s++;
}
return status;
}
static