diff --git a/NEWS b/NEWS index 21d1a949..136160b5 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,4 @@ + - enabled hex-constants in function.math.php (messju) - enabled hex-constants (0x...) as function-attributes, inside if-statements and as modifier-parameters (messju) - fixed bug with passing $smarty as reference in Smarty.compiler.class diff --git a/libs/plugins/function.math.php b/libs/plugins/function.math.php index 3230dec9..482363f6 100644 --- a/libs/plugins/function.math.php +++ b/libs/plugins/function.math.php @@ -25,11 +25,10 @@ function smarty_function_math($params, &$smarty) } // match all vars in equation, make sure all are passed - preg_match_all("![a-zA-Z][a-zA-Z0-9_]*!",$equation, $match); + preg_match_all("!\!(0x)([a-zA-Z][a-zA-Z0-9_]*)!",$equation, $match); $allowed_funcs = array('int','abs','ceil','cos','exp','floor','log','log10', 'max','min','pi','pow','rand','round','sin','sqrt','srand','tan'); - - foreach($match[0] as $curr_var) { + foreach($match[2] as $curr_var) { if (!in_array($curr_var,array_keys($params)) && !in_array($curr_var, $allowed_funcs)) { $smarty->trigger_error("math: parameter $curr_var not passed as argument"); return;