From 6003ae43b92cfa7e1ddec17262733355e0bf435a Mon Sep 17 00:00:00 2001 From: Kirill chEbba Chebunin Date: Thu, 31 Oct 2013 20:50:58 +0400 Subject: [PATCH] Fix twig_first and twig_last filters for UTF8 multibyte strings --- lib/Twig/Extension/Core.php | 4 ++-- test/Twig/Tests/Fixtures/filters/first.test | 2 ++ test/Twig/Tests/Fixtures/filters/last.test | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/Twig/Extension/Core.php b/lib/Twig/Extension/Core.php index 32d452d..afdeb65 100644 --- a/lib/Twig/Extension/Core.php +++ b/lib/Twig/Extension/Core.php @@ -692,7 +692,7 @@ function twig_first(Twig_Environment $env, $item) { $elements = twig_slice($env, $item, 0, 1, false); - return is_string($elements) ? $elements[0] : current($elements); + return is_string($elements) ? $elements : current($elements); } /** @@ -707,7 +707,7 @@ function twig_last(Twig_Environment $env, $item) { $elements = twig_slice($env, $item, -1, 1, false); - return is_string($elements) ? $elements[0] : current($elements); + return is_string($elements) ? $elements : current($elements); } /** diff --git a/test/Twig/Tests/Fixtures/filters/first.test b/test/Twig/Tests/Fixtures/filters/first.test index 853465b..90f4927 100644 --- a/test/Twig/Tests/Fixtures/filters/first.test +++ b/test/Twig/Tests/Fixtures/filters/first.test @@ -5,6 +5,7 @@ {{ {a: 1, b: 2, c: 3, d: 4}|first }} {{ '1234'|first }} {{ arr|first }} +{{ 'Ä€é'|first }} --DATA-- return array('arr' => new ArrayObject(array(1, 2, 3, 4))) --EXPECT-- @@ -12,3 +13,4 @@ return array('arr' => new ArrayObject(array(1, 2, 3, 4))) 1 1 1 +Ä diff --git a/test/Twig/Tests/Fixtures/filters/last.test b/test/Twig/Tests/Fixtures/filters/last.test index ca3ac0c..018fdad 100644 --- a/test/Twig/Tests/Fixtures/filters/last.test +++ b/test/Twig/Tests/Fixtures/filters/last.test @@ -5,6 +5,7 @@ {{ {a: 1, b: 2, c: 3, d: 4}|last }} {{ '1234'|last }} {{ arr|last }} +{{ 'Ä€é'|last }} --DATA-- return array('arr' => new ArrayObject(array(1, 2, 3, 4))) --EXPECT-- @@ -12,3 +13,4 @@ return array('arr' => new ArrayObject(array(1, 2, 3, 4))) 4 4 4 +é -- 1.7.2.5