Author: Manuel Jacob Branch: refactor-str-types Changeset: r65778:76dd0077753a Date: 2013-07-29 14:52 +0200 http://bitbucket.org/pypy/pypy/changeset/76dd0077753a/
Log: Fix app-level unicode's istitle() method. diff --git a/pypy/objspace/std/stringmethods.py b/pypy/objspace/std/stringmethods.py --- a/pypy/objspace/std/stringmethods.py +++ b/pypy/objspace/std/stringmethods.py @@ -357,7 +357,7 @@ for pos in range(0, len(input)): ch = input[pos] - if self._isupper(ch): + if self._istitle(ch): if previous_is_cased: return space.w_False previous_is_cased = True diff --git a/pypy/objspace/std/test/test_unicodeobject.py b/pypy/objspace/std/test/test_unicodeobject.py --- a/pypy/objspace/std/test/test_unicodeobject.py +++ b/pypy/objspace/std/test/test_unicodeobject.py @@ -215,7 +215,9 @@ assert u"!Brown Fox".istitle() == True assert u"Brow&&&&N Fox".istitle() == True assert u"!Brow&&&&n Fox".istitle() == False - + assert u'\u1FFc'.istitle() + assert u'Greek \u1FFcitlecases ...'.istitle() + def test_capitalize(self): assert u"brown fox".capitalize() == u"Brown fox" assert u' hello '.capitalize() == u' hello ' diff --git a/pypy/objspace/std/unicodeobject.py b/pypy/objspace/std/unicodeobject.py --- a/pypy/objspace/std/unicodeobject.py +++ b/pypy/objspace/std/unicodeobject.py @@ -105,7 +105,7 @@ return unicodedb.isnumeric(ord(ch)) def _istitle(self, ch): - return unicodedb.istitle(ord(ch)) + return unicodedb.isupper(ord(ch)) or unicodedb.istitle(ord(ch)) def _isspace(self, ch): return unicodedb.isspace(ord(ch)) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit