From 114740b3bbb1b789bd92cf0f5ea97c538ed9ed59 Mon Sep 17 00:00:00 2001 From: andrey Date: Tue, 6 Feb 2001 14:53:41 +0000 Subject: [PATCH] Restoring ?> in patterns. --- Smarty.class.php | 20 ++++++++++---------- libs/Smarty.class.php | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Smarty.class.php b/Smarty.class.php index 889fd0d5..545f2d26 100644 --- a/Smarty.class.php +++ b/Smarty.class.php @@ -580,9 +580,9 @@ class Smarty /* If the tag name matches a variable or section property definition, we simply process it. */ - if (preg_match('!^\$(\w+/)*\w+(?>\.\w+)*(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tag_command) || // if a variable - preg_match('!^#(\w+)#(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tag_command) || // or a configuration variable - preg_match('!^%\w+\.\w+%(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tag_command)) { // or a section property + if (preg_match('!^\$(\w+/)*\w+(?>\.\w+)*(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tag_command) || // if a variable + preg_match('!^#(\w+)#(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tag_command) || // or a configuration variable + preg_match('!^%\w+\.\w+%(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tag_command)) { // or a section property settype($tag_command, 'array'); $this->_parse_vars_props($tag_command); return ""; @@ -1046,13 +1046,13 @@ class Smarty allow people to use older versions of PHP we emulate preg_grep() and use the version check to see what function to call. */ if (strnatcmp(PHP_VERSION, '4.0.4') >= 0) { - $var_exprs = preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $conf_var_exprs = preg_grep('!^#(\w+)#(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $sect_prop_exprs = preg_grep('!^%\w+\.\w+%(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); + $var_exprs = preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $conf_var_exprs = preg_grep('!^#(\w+)#(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $sect_prop_exprs = preg_grep('!^%\w+\.\w+%(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); } else { - $var_exprs = $this->_preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $conf_var_exprs = $this->_preg_grep('!^#(\w+)#(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $sect_prop_exprs = $this->_preg_grep('!^%\w+\.\w+%(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); + $var_exprs = $this->_preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $conf_var_exprs = $this->_preg_grep('!^#(\w+)#(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $sect_prop_exprs = $this->_preg_grep('!^%\w+\.\w+%(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); } if (count($var_exprs)) { @@ -1127,7 +1127,7 @@ class Smarty function _parse_modifiers(&$output, $modifier_string) { $qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\''; - preg_match_all('!\|@?(\w+)((?::(?:'. $qstr_regexp . '|[^|]+))*)!', '|' . $modifier_string, $match); + preg_match_all('!\|@?(\w+)((?>:(?:'. $qstr_regexp . '|[^|]+))*)!', '|' . $modifier_string, $match); list(, $modifiers, $modifier_arg_strings) = $match; for ($i = 0; $i < count($modifiers); $i++) { diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index 889fd0d5..545f2d26 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -580,9 +580,9 @@ class Smarty /* If the tag name matches a variable or section property definition, we simply process it. */ - if (preg_match('!^\$(\w+/)*\w+(?>\.\w+)*(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tag_command) || // if a variable - preg_match('!^#(\w+)#(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tag_command) || // or a configuration variable - preg_match('!^%\w+\.\w+%(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tag_command)) { // or a section property + if (preg_match('!^\$(\w+/)*\w+(?>\.\w+)*(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tag_command) || // if a variable + preg_match('!^#(\w+)#(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tag_command) || // or a configuration variable + preg_match('!^%\w+\.\w+%(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tag_command)) { // or a section property settype($tag_command, 'array'); $this->_parse_vars_props($tag_command); return ""; @@ -1046,13 +1046,13 @@ class Smarty allow people to use older versions of PHP we emulate preg_grep() and use the version check to see what function to call. */ if (strnatcmp(PHP_VERSION, '4.0.4') >= 0) { - $var_exprs = preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $conf_var_exprs = preg_grep('!^#(\w+)#(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $sect_prop_exprs = preg_grep('!^%\w+\.\w+%(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); + $var_exprs = preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $conf_var_exprs = preg_grep('!^#(\w+)#(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $sect_prop_exprs = preg_grep('!^%\w+\.\w+%(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); } else { - $var_exprs = $this->_preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $conf_var_exprs = $this->_preg_grep('!^#(\w+)#(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); - $sect_prop_exprs = $this->_preg_grep('!^%\w+\.\w+%(\|@?\w+(:(' . $qstr_regexp . '|[^|]+))?)*$!', $tokens); + $var_exprs = $this->_preg_grep('!^\$(\w+/)*\w+(?>\.\w+)*(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $conf_var_exprs = $this->_preg_grep('!^#(\w+)#(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); + $sect_prop_exprs = $this->_preg_grep('!^%\w+\.\w+%(?>\|@?\w+(:(' . $qstr_regexp . '|[^|]+))*)*$!', $tokens); } if (count($var_exprs)) { @@ -1127,7 +1127,7 @@ class Smarty function _parse_modifiers(&$output, $modifier_string) { $qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\''; - preg_match_all('!\|@?(\w+)((?::(?:'. $qstr_regexp . '|[^|]+))*)!', '|' . $modifier_string, $match); + preg_match_all('!\|@?(\w+)((?>:(?:'. $qstr_regexp . '|[^|]+))*)!', '|' . $modifier_string, $match); list(, $modifiers, $modifier_arg_strings) = $match; for ($i = 0; $i < count($modifiers); $i++) {