From acf2ff8ce655d11c5708f67948bee0667ca9cae1 Mon Sep 17 00:00:00 2001 From: s-m Date: Fri, 5 Apr 2013 20:00:33 +0200 Subject: [PATCH] BUG: Fix for #1487 The parser could sometimes generate invalid code if the source-file-comments were enabled, this moves the comments outside the html-tag to circumvent these problems, update test as well. --- tests/view/SSViewerTest.php | 4 ++-- view/SSTemplateParser.php | 12 ++++++------ view/SSTemplateParser.php.inc | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/view/SSViewerTest.php b/tests/view/SSViewerTest.php index 1f5e41cd7..a82ecee21 100644 --- a/tests/view/SSViewerTest.php +++ b/tests/view/SSViewerTest.php @@ -1068,10 +1068,10 @@ after') $result = $view->process($data); $expected = ' - + - + '; $this->assertEquals($result, $expected); diff --git a/view/SSTemplateParser.php b/view/SSTemplateParser.php index 143185fed..9c48c8e7f 100644 --- a/view/SSTemplateParser.php +++ b/view/SSTemplateParser.php @@ -1675,14 +1675,14 @@ class SSTemplateParser extends Parser { function If_ElseIfPart(&$res, $sub) { $res['php'] .= 'else if (' . $sub['IfArgument']['php'] . ') { ' . PHP_EOL . - (isset($sub['Template']) ? $sub['Template']['php'] : '') . PHP_EOL . + (isset($sub['Template']) ? $sub['Template']['php'] : '') . PHP_EOL . '}'; } function If_ElsePart(&$res, $sub) { $res['php'] .= 'else { ' . PHP_EOL . - (isset($sub['Template']) ? $sub['Template']['php'] : '') . PHP_EOL . + (isset($sub['Template']) ? $sub['Template']['php'] : '') . PHP_EOL . '}'; } @@ -4593,11 +4593,11 @@ class SSTemplateParser extends Parser { // Include top level debugging comments if desired if($includeDebuggingComments && $templateName && stripos($code, "]*>)/i', "\\1", $code); - $code = preg_replace('/(<\/html[^>]*>)/i', "\\1", $code); + $code = preg_replace('/(]*>)/i', "\\1", $code); + $code = preg_replace('/(<\/html[^>]*>)/i', "\\1", $code); } else { $code = str_replace('\';' . "\n", $code); diff --git a/view/SSTemplateParser.php.inc b/view/SSTemplateParser.php.inc index a072483b8..ea01957c4 100644 --- a/view/SSTemplateParser.php.inc +++ b/view/SSTemplateParser.php.inc @@ -1047,11 +1047,11 @@ class SSTemplateParser extends Parser { // Include top level debugging comments if desired if($includeDebuggingComments && $templateName && stripos($code, "]*>)/i', "\\1", $code); - $code = preg_replace('/(<\/html[^>]*>)/i', "\\1", $code); + $code = preg_replace('/(]*>)/i', "\\1", $code); + $code = preg_replace('/(<\/html[^>]*>)/i', "\\1", $code); } else { $code = str_replace('\';' . "\n", $code);