fixed handling of \r in {strip}

renamed $_trailing_lf to $_additional_newline
This commit is contained in:
messju
2003-09-01 18:17:58 +00:00
parent a246602272
commit 579e0e61a6

View File

@@ -90,7 +90,7 @@ class Smarty_Compiler extends Smarty {
var $_cache_paths = null; var $_cache_paths = null;
var $_strip_depth = 0; var $_strip_depth = 0;
var $_trailing_lf = "\n"; var $_additional_newline = "\n";
/**#@-*/ /**#@-*/
/** /**
@@ -336,7 +336,8 @@ class Smarty_Compiler extends Smarty {
/* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */ /* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
if (preg_match_all("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $compiled_content, $_match)) { if (preg_match_all("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $compiled_content, $_match)) {
$strip_tags = $_match[0]; $strip_tags = $_match[0];
$strip_tags_modified = preg_replace("!{$ldq}/?strip{$rdq}|\s+\$|^\s+!m", '', $strip_tags); $strip_tags_modified = preg_replace("!{$ldq}/?strip{$rdq}|[\t ]+$|^[\t ]+!m", '', $strip_tags);
$strip_tags_modified = preg_replace('![\r\n]+!m', '', $strip_tags_modified);
for ($i = 0, $for_max = count($strip_tags); $i < $for_max; $i++) for ($i = 0, $for_max = count($strip_tags); $i < $for_max; $i++)
$compiled_content = preg_replace("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $compiled_content = preg_replace("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s",
$this->quote_replace($strip_tags_modified[$i]), $this->quote_replace($strip_tags_modified[$i]),
@@ -433,7 +434,7 @@ class Smarty_Compiler extends Smarty {
if(isset($_tag_attrs['assign'])) { if(isset($_tag_attrs['assign'])) {
return "<?php \$this->assign('" . $this->_dequote($_tag_attrs['assign']) . "', $_return ); ?>\n"; return "<?php \$this->assign('" . $this->_dequote($_tag_attrs['assign']) . "', $_return ); ?>\n";
} elseif ($this->_output_type == 'php') { } elseif ($this->_output_type == 'php') {
return "<?php echo $_return; ?>" . $this->_trailing_lf; return "<?php echo $_return; ?>" . $this->_additional_newline;
} else { } else {
// static // static
return $_return; return $_return;
@@ -511,13 +512,13 @@ class Smarty_Compiler extends Smarty {
$this->_strip_depth--; $this->_strip_depth--;
else else
$this->_strip_depth++; $this->_strip_depth++;
$this->_trailing_lf = ($this->_strip_depth>0) ? '' : "\n"; $this->_additional_newline = ($this->_strip_depth>0) ? '' : "\n";
return $this->left_delimiter.$tag_command.$this->right_delimiter; return $this->left_delimiter.$tag_command.$this->right_delimiter;
case 'literal': case 'literal':
list (,$literal_block) = each($this->_literal_blocks); list (,$literal_block) = each($this->_literal_blocks);
$this->_current_line_no += substr_count($literal_block, "\n"); $this->_current_line_no += substr_count($literal_block, "\n");
return "<?php echo '".str_replace("'", "\'", str_replace("\\", "\\\\", $literal_block))."'; ?>" . $this->_trailing_lf; return "<?php echo '".str_replace("'", "\'", str_replace("\\", "\\\\", $literal_block))."'; ?>" . $this->_additional_newline;
case 'php': case 'php':
if ($this->security && !$this->security_settings['PHP_TAGS']) { if ($this->security && !$this->security_settings['PHP_TAGS']) {
@@ -721,7 +722,7 @@ class Smarty_Compiler extends Smarty {
if($_return != '') { if($_return != '') {
$_return = '<?php ' . $_cacheable_state . $_cache_attrs . 'echo ' . $_return . ';' $_return = '<?php ' . $_cacheable_state . $_cache_attrs . 'echo ' . $_return . ';'
. $this->_pop_cacheable_state('function', $tag_command) . "?>" . $this->_trailing_lf; . $this->_pop_cacheable_state('function', $tag_command) . "?>" . $this->_additional_newline;
} }
return $_return; return $_return;
@@ -812,7 +813,7 @@ class Smarty_Compiler extends Smarty {
$output = "\$this->assign('" . $this->_dequote($_assign_var) ."', $return);"; $output = "\$this->assign('" . $this->_dequote($_assign_var) ."', $return);";
} else { } else {
$output = 'echo ' . $return . ';'; $output = 'echo ' . $return . ';';
$newline = $this->_trailing_lf; $newline = $this->_additional_newline;
} }
} else { } else {
$output = ''; $output = '';
@@ -852,7 +853,7 @@ class Smarty_Compiler extends Smarty {
$_params = "array('args' => array(".implode(', ', (array)$arg_list)."))"; $_params = "array('args' => array(".implode(', ', (array)$arg_list)."))";
return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.run_insert_handler.php');\necho smarty_core_run_insert_handler($_params, \$this); ?>" . $this->_trailing_lf; return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.run_insert_handler.php');\necho smarty_core_run_insert_handler($_params, \$this); ?>" . $this->_additional_newline;
} }
/** /**
@@ -935,7 +936,7 @@ class Smarty_Compiler extends Smarty {
$_params = "array('smarty_file' => " . $attrs['file'] . ", 'smarty_assign' => '$assign_var', 'smarty_once' => $once_var, 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))"; $_params = "array('smarty_file' => " . $attrs['file'] . ", 'smarty_assign' => '$assign_var', 'smarty_once' => $once_var, 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))";
return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.smarty_include_php.php');\nsmarty_core_smarty_include_php($_params, \$this); ?>" . $this->_trailing_lf; return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.smarty_include_php.php');\nsmarty_core_smarty_include_php($_params, \$this); ?>" . $this->_additional_newline;
} }