Fixed a bug with parsing function arguments in {if} tags.

This commit is contained in:
andrey
2001-07-03 16:34:34 +00:00
parent 63b2275ebc
commit eb35a91397
3 changed files with 21 additions and 13 deletions

24
NEWS
View File

@@ -1,12 +1,17 @@
- numerous documentation updates (Monte) - fixed a bug with parsing function arguments inside {if} tags if a comma
- added SMARTY_DIR constant (Monte) was present. (Andrei)
- added popup_init and popup functions (Monte) - updated debug console with config file vars. (Monte)
- updated debug console with config file vars (Monte) - numerous documentation updates. (Monte)
- added debugging url control (Monte) - added SMARTY_DIR constant which indicating location of Smarty files.
- added 'quotes' parameter to escape modifier (Monte, Mike Krus) (Monte)
- added popup_init and popup functions. (Monte)
- updated debug console with config file vars. (Monte)
- added debugging url control. (Monte)
- added 'quotes' type to escape modifier. (Monte, Mike Krus)
- added 'total' and 'iteration' section properties. (Andrei) - added 'total' and 'iteration' section properties. (Andrei)
- added 'start', 'max', and step section attributes/properties. (Andrei) - added 'start', 'max', and 'step' section attributes/properties. (Andrei)
- fixed a bug with security checking of functions inside {if} tags. (Andrei) - fixed a bug with security checking of functions inside {if} tags.
(Andrei)
- fixed a bug in Config_File that would incorrectly booleanize values that - fixed a bug in Config_File that would incorrectly booleanize values that
weren't really booleans. (Andrei) weren't really booleans. (Andrei)
@@ -21,7 +26,8 @@ Version 1.4.3
class itself. (Andrei) class itself. (Andrei)
- fixed a bug with passing quoted arguments to modifiers inside {if} - fixed a bug with passing quoted arguments to modifiers inside {if}
statements. (Andrei, Sam Beckwith) statements. (Andrei, Sam Beckwith)
- added security features for third party template editing, documented (Monte) - added security features for third party template editing, documented
(Monte)
- added assign custom function, documented. (Monte) - added assign custom function, documented. (Monte)
- fixed bug with template header using version instead of _version. (Monte) - fixed bug with template header using version instead of _version. (Monte)
- fixed a problem with putting $ followed by numbers inside {strip} and - fixed a problem with putting $ followed by numbers inside {strip} and

View File

@@ -509,11 +509,12 @@ class Smarty_Compiler extends Smarty {
preg_match_all('/(?: preg_match_all('/(?:
"[^"\\\\]*(?:\\\\.[^"\\\\]*)*" | # match all double quoted strings allowed escaped double quotes "[^"\\\\]*(?:\\\\.[^"\\\\]*)*" | # match all double quoted strings allowed escaped double quotes
\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' | # match all single quoted strings allowed escaped single quotes \'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' | # match all single quoted strings allowed escaped single quotes
[()] | # match parentheses [(),] | # match parentheses and commas
[^\s()]+ # match any other token that is not any of the above [^\s(),]+ # match any other token that is not any of the above
)/x', $tag_args, $match); )/x', $tag_args, $match);
$tokens = $match[0]; $tokens = $match[0];
var_dump($tokens);
$this->_parse_vars_props($tokens); $this->_parse_vars_props($tokens);
$is_arg_stack = array(); $is_arg_stack = array();

View File

@@ -509,11 +509,12 @@ class Smarty_Compiler extends Smarty {
preg_match_all('/(?: preg_match_all('/(?:
"[^"\\\\]*(?:\\\\.[^"\\\\]*)*" | # match all double quoted strings allowed escaped double quotes "[^"\\\\]*(?:\\\\.[^"\\\\]*)*" | # match all double quoted strings allowed escaped double quotes
\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' | # match all single quoted strings allowed escaped single quotes \'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' | # match all single quoted strings allowed escaped single quotes
[()] | # match parentheses [(),] | # match parentheses and commas
[^\s()]+ # match any other token that is not any of the above [^\s(),]+ # match any other token that is not any of the above
)/x', $tag_args, $match); )/x', $tag_args, $match);
$tokens = $match[0]; $tokens = $match[0];
var_dump($tokens);
$this->_parse_vars_props($tokens); $this->_parse_vars_props($tokens);
$is_arg_stack = array(); $is_arg_stack = array();