From 5b6d255a5559137f0b52475f635e0d8e205c07ec Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 22 Jan 2011 09:12:57 +0100 Subject: [PATCH] fixed the "length" filter for numbers --- CHANGELOG | 1 + lib/Twig/Extension/Core.php | 4 ++-- test/Twig/Tests/Fixtures/filters/length.test | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b0af44e..588115a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,7 @@ Changes: + * fixed the "length" filter for numbers * removed coupling between Twig_Node and Twig_Template * fixed the ternary operator precedence rule diff --git a/lib/Twig/Extension/Core.php b/lib/Twig/Extension/Core.php index e63e6a7..01962b0 100644 --- a/lib/Twig/Extension/Core.php +++ b/lib/Twig/Extension/Core.php @@ -388,7 +388,7 @@ function _twig_escape_js_callback($matches) if (function_exists('mb_get_info')) { function twig_length_filter(Twig_Environment $env, $thing) { - return is_string($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing); + return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing); } function twig_upper_filter(Twig_Environment $env, $string) @@ -433,7 +433,7 @@ else { function twig_length_filter(Twig_Environment $env, $thing) { - return is_string($thing) ? strlen($thing) : count($thing); + return is_scalar($thing) ? strlen($thing) : count($thing); } function twig_title_string_filter(Twig_Environment $env, $string) diff --git a/test/Twig/Tests/Fixtures/filters/length.test b/test/Twig/Tests/Fixtures/filters/length.test index b5ef879..0196227 100644 --- a/test/Twig/Tests/Fixtures/filters/length.test +++ b/test/Twig/Tests/Fixtures/filters/length.test @@ -3,8 +3,10 @@ --TEMPLATE-- {{ array|length }} {{ string|length }} +{{ number|length }} --DATA-- -return array('array' => array(1, 4), 'string' => 'foo') +return array('array' => array(1, 4), 'string' => 'foo', 'number' => 1000) --EXPECT-- 2 3 +4 -- 1.7.2.5