Index: Smarty_Compiler.class.php =================================================================== --- Smarty_Compiler.class.php (revision 2772) +++ Smarty_Compiler.class.php (working copy) @@ -255,7 +255,7 @@ } /* fetch all special blocks */ - $search = "~{$ldq}\*(.*?)\*{$rdq}|{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}|{$ldq}\s*php\s*{$rdq}(.*?){$ldq}\s*/php\s*{$rdq}~s"; + $search = "~{$ldq}\*(.*?)\*{$rdq}|{$ldq}literal\s*{$rdq}(.*?){$ldq}/literal\s*{$rdq}|{$ldq}php\s*{$rdq}(.*?){$ldq}/php\s*{$rdq}~s"; preg_match_all($search, $source_content, $match, PREG_SET_ORDER); $this->_folded_blocks = $match; @@ -270,10 +270,10 @@ , $source_content); /* Gather all template tags. */ - preg_match_all("~{$ldq}\s*(.*?)\s*{$rdq}~s", $source_content, $_match); + preg_match_all("~{$ldq}(\S.*?)\s*{$rdq}~s", $source_content, $_match); $template_tags = $_match[1]; /* Split content by template tags to obtain non-template content. */ - $text_blocks = preg_split("~{$ldq}.*?{$rdq}~s", $source_content); + $text_blocks = preg_split("~{$ldq}\S.*?{$rdq}~s", $source_content); /* loop through text blocks */ for ($curr_tb = 0, $for_max = count($text_blocks); $curr_tb < $for_max; $curr_tb++) {