diff --git a/Mustache.php b/Mustache.php index ef3af03..3f7a572 100644 --- a/Mustache.php +++ b/Mustache.php @@ -219,7 +219,6 @@ class Mustache { * @return string Rendered Mustache template. */ protected function _renderTemplate($template) { - if ($section = $this->_findSection($template)) { list($before, $type, $tag_name, $content, $after) = $section; @@ -308,6 +307,13 @@ class Mustache { $offset = $matches[0][1]; $type = $matches['type'][0]; $tag_name = trim($matches['tag_name'][0]); + + if (isset($matches['delims'][0])) { + list($otag, $ctag) = explode(' ', $matches['delims'][0]); + $regEx = $this->_prepareSectionRegEx($otag, $ctag); + $search_offset = $offset + strlen($match); + continue; + } $search_offset = $offset + strlen($match); diff --git a/test/MustacheTest.php b/test/MustacheTest.php index 7edf232..1a06b46 100644 --- a/test/MustacheTest.php +++ b/test/MustacheTest.php @@ -408,7 +408,7 @@ class MustacheTest extends PHPUnit_Framework_TestCase { public function testStickyDelimiters() { $m = new Mustache(null, array('result' => 'FAIL')); $this->assertEquals('{{ result }}', $m->render('{{=[[ ]]=}}{{ result }}[[={{ }}=]]')); - $this->assertEquals('{{ result }}', $m->render('{{=[[ ]]=}}[[#result]]{{ result }}[[/result]]')); + $this->assertEquals('{{#result}}{{/result}}', $m->render('{{=[[ ]]=}}{{#result}}{{/result}}[[={{ }}=]]')); $this->assertEquals('{{ result }}', $m->render('{{=[[ ]]=}}[[#result]]{{ result }}[[/result]][[={{ }}=]]')); $this->assertEquals('{{ result }}', $m->render('{{#result}}{{=[[ ]]=}}{{ result }}[[/result]][[^result]][[={{ }}=]][[ result ]]{{/result}}')); }