diff --git a/change_log.txt b/change_log.txt index 6c9d8da5..59d2d92b 100644 --- a/change_log.txt +++ b/change_log.txt @@ -2,6 +2,7 @@ 23.07.2016 - bugfix setTemplateDir('/') and setTemplateDir('') did create wrong absolute filepath https://github.com/smarty-php/smarty/issues/245 - optimization of filepath normalization + - improvement remove double funtion declaration in plugin shared.escape_special_cars.php https://github.com/smarty-php/smarty/issues/229 19.07.2016 - bugfix multiple {include} with relative filepath within {block}{/block} could fail https://github.com/smarty-php/smarty/issues/246 diff --git a/libs/plugins/shared.escape_special_chars.php b/libs/plugins/shared.escape_special_chars.php index d3bd756b..b68fe4b9 100644 --- a/libs/plugins/shared.escape_special_chars.php +++ b/libs/plugins/shared.escape_special_chars.php @@ -6,48 +6,29 @@ * @subpackage PluginsShared */ -if (version_compare(PHP_VERSION, '5.2.3', '>=')) { - /** - * escape_special_chars common function - * Function: smarty_function_escape_special_chars
- * Purpose: used by other smarty functions to escape - * special chars except for already escaped ones - * - * @author Monte Ohrt - * - * @param string $string text that should by escaped - * - * @return string - */ - function smarty_function_escape_special_chars($string) - { - if (!is_array($string)) { +/** + * escape_special_chars common function + * Function: smarty_function_escape_special_chars
+ * Purpose: used by other smarty functions to escape + * special chars except for already escaped ones + * + * @author Monte Ohrt + * + * @param string $string text that should by escaped + * + * @return string + */ +function smarty_function_escape_special_chars($string) +{ + if (!is_array($string)) { + if (version_compare(PHP_VERSION, '5.2.3', '>=')) { $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false); - } - - return $string; - } -} else { - /** - * escape_special_chars common function - * Function: smarty_function_escape_special_chars
- * Purpose: used by other smarty functions to escape - * special chars except for already escaped ones - * - * @author Monte Ohrt - * - * @param string $string text that should by escaped - * - * @return string - */ - function smarty_function_escape_special_chars($string) - { - if (!is_array($string)) { + } else { $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string); $string = htmlspecialchars($string); $string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string); } - - return $string; } + + return $string; }