diff --git a/src/Handlebars/Tokenizer.php b/src/Handlebars/Tokenizer.php index 63488cc..f43f4ef 100644 --- a/src/Handlebars/Tokenizer.php +++ b/src/Handlebars/Tokenizer.php @@ -57,6 +57,8 @@ class Tokenizer const T_UNESCAPED_2 = '&'; const T_TEXT = '_t'; const T_ESCAPE = "\\"; + const T_SINGLE_Q = "'"; + const T_DOUBLE_Q = "\""; // Valid token types private static $_tagTypes = array( @@ -127,7 +129,7 @@ class Tokenizer $this->escaping = $this->tagChange(self::T_ESCAPE, $text, $i); - if ( $this->escaped and $text[$i] != self::T_UNESCAPED ) { + if ( $this->escaped and !in_array($text[$i], array(self::T_UNESCAPED, self::T_SINGLE_Q, self::T_DOUBLE_Q)) ) { $this->buffer .= "\\"; } diff --git a/tests/Xamin/HandlebarsTest.php b/tests/Xamin/HandlebarsTest.php index dbae0a4..79d0388 100644 --- a/tests/Xamin/HandlebarsTest.php +++ b/tests/Xamin/HandlebarsTest.php @@ -332,7 +332,7 @@ class HandlebarsTest extends \PHPUnit_Framework_TestCase return implode(' ', $parsed_args); }); - $this->assertEquals('a \"b\" c', $engine->render('{{argsTest "a" "\"b\"" \'c\'}}', array())); + $this->assertEquals("a \"b\" c", $engine->render('{{{argsTest "a" "\"b\"" \'c\'}}}', array())); } public function testInvalidHelperMustacheStyle()