From: Armin Ronacher Date: Wed, 7 Aug 2013 11:53:03 +0000 (+0100) Subject: Corrected title filter behavior. X-Git-Tag: 2.7.1~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ea663b17fe13ff0d6f888f2ba7367180861456e;p=thirdparty%2Fjinja.git Corrected title filter behavior. The title filter will now correctly lowercase the non first letter like the regular Python filter does. This fixes #251. --- diff --git a/CHANGES b/CHANGES index 01afc4ea..6079411f 100644 --- a/CHANGES +++ b/CHANGES @@ -13,6 +13,8 @@ Version 2.7.1 - Fixed some warnings with hashing of undefineds and nodes if Python is run with warnings for Python 3. - Added support for properly hashing undefined objects. +- Fixed a bug with the title filter not working on already uppercase + strings. Version 2.7 ----------- diff --git a/jinja2/filters.py b/jinja2/filters.py index 49e82aad..fd0db04a 100644 --- a/jinja2/filters.py +++ b/jinja2/filters.py @@ -186,7 +186,7 @@ def do_title(s): for item in re.compile(r'([-\s]+)(?u)').split(s): if not item: continue - rv.append(item[0].upper() + item[1:]) + rv.append(item[0].upper() + item[1:].lower()) return ''.join(rv) diff --git a/jinja2/testsuite/filters.py b/jinja2/testsuite/filters.py index 1e1706fd..282dd2d8 100644 --- a/jinja2/testsuite/filters.py +++ b/jinja2/testsuite/filters.py @@ -208,6 +208,8 @@ class FilterTestCase(JinjaTestCase): assert tmpl.render() == "Foo-Bar" tmpl = env.from_string('''{{ "foo\tbar"|title }}''') assert tmpl.render() == "Foo\tBar" + tmpl = env.from_string('''{{ "FOO\tBAR"|title }}''') + assert tmpl.render() == "Foo\tBar" def test_truncate(self): tmpl = env.from_string(