From 1abf854af3ca3bb6b7943a32ed7d5dc69ddaefa3 Mon Sep 17 00:00:00 2001 From: Justin Hileman Date: Mon, 13 Jun 2011 04:00:49 -0400 Subject: [PATCH] Make section rendering delimiter-chage-aware. Fixes longstanding section/delimiter bug. --- Mustache.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Mustache.php b/Mustache.php index 779ff34..ef3af03 100644 --- a/Mustache.php +++ b/Mustache.php @@ -271,7 +271,7 @@ class Mustache { */ protected function _prepareSectionRegEx($otag, $ctag) { return sprintf( - '/(?:(?<=\\n)[ \\t]*)?%s(?P[%s])(?P.+?)%s\\n?/s', + '/(?:(?<=\\n)[ \\t]*)?%s(?:(?P[%s])(?P.+?)|=(?P.*?)=)%s\\n?/s', preg_quote($otag, '/'), self::SECTION_TYPES, preg_quote($ctag, '/') @@ -297,6 +297,12 @@ class Mustache { $section_stack = array(); $matches = array(); while (preg_match($regEx, $template, $matches, PREG_OFFSET_CAPTURE, $search_offset)) { + if (isset($matches['delims'][0])) { + list($otag, $ctag) = explode(' ', $matches['delims'][0]); + $regEx = $this->_prepareSectionRegEx($otag, $ctag); + $search_offset = $matches[0][1] + strlen($matches[0][0]); + continue; + } $match = $matches[0][0]; $offset = $matches[0][1];