Fixed bug 713841
This commit is contained in:
parent
587a83d250
commit
a8960d29fa
1 changed files with 19 additions and 9 deletions
|
|
@ -47,15 +47,6 @@ These functions are available from this package:
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
# Returns a complex regular expression for matching macro patterns.
|
# Returns a complex regular expression for matching macro patterns.
|
||||||
sub _nestedMacro {
|
sub _nestedMacro {
|
||||||
# Regular expression for matching balanced parenthesis
|
|
||||||
my $parenthesis = qr /\( # Start with '(',
|
|
||||||
(?: # Followed by
|
|
||||||
(?>[^()]+) # Non-parenthesis
|
|
||||||
|(??{ $parenthesis }) # Or a balanced parenthesis block
|
|
||||||
)* # zero or more times
|
|
||||||
\)/x; # Ending with ')'
|
|
||||||
|
|
||||||
# Regular expression for matching balanced macros
|
|
||||||
my $nestedMacro = qr /\^ # Start with carat
|
my $nestedMacro = qr /\^ # Start with carat
|
||||||
([^\^;()]+) # And one or more none-macro characters -tagged-
|
([^\^;()]+) # And one or more none-macro characters -tagged-
|
||||||
((?: # Followed by
|
((?: # Followed by
|
||||||
|
|
@ -69,6 +60,17 @@ sub _nestedMacro {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
# Returns a regular expression for matching balanced parenthesis patterns.
|
||||||
|
sub _parenthesis {
|
||||||
|
my $parenthesis = qr /\( # Start with '(',
|
||||||
|
(?: # Followed by
|
||||||
|
(?>[^()]+) # Non-parenthesis
|
||||||
|
|(??{ $parenthesis }) # Or a balanced parenthesis block
|
||||||
|
)* # zero or more times
|
||||||
|
\)/x; # Ending with ')'
|
||||||
|
return $parenthesis;
|
||||||
|
}
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 filter ( html )
|
=head2 filter ( html )
|
||||||
|
|
@ -87,6 +89,7 @@ The segment to be filtered.
|
||||||
|
|
||||||
sub filter {
|
sub filter {
|
||||||
my $content = shift;
|
my $content = shift;
|
||||||
|
my $parenthesis = _parenthesis();
|
||||||
my $nestedMacro = _nestedMacro();
|
my $nestedMacro = _nestedMacro();
|
||||||
while ($content =~ /($nestedMacro)/gs) {
|
while ($content =~ /($nestedMacro)/gs) {
|
||||||
$content =~ s/\Q$1//gs;
|
$content =~ s/\Q$1//gs;
|
||||||
|
|
@ -164,6 +167,7 @@ A string of HTML to be processed.
|
||||||
|
|
||||||
sub process {
|
sub process {
|
||||||
my $content = shift;
|
my $content = shift;
|
||||||
|
my $parenthesis = _parenthesis();
|
||||||
my $nestedMacro = _nestedMacro();
|
my $nestedMacro = _nestedMacro();
|
||||||
while ($content =~ /($nestedMacro)/gs) {
|
while ($content =~ /($nestedMacro)/gs) {
|
||||||
my ($macro, $searchString, $params) = ($1, $2, $3);
|
my ($macro, $searchString, $params) = ($1, $2, $3);
|
||||||
|
|
@ -175,6 +179,12 @@ sub process {
|
||||||
}
|
}
|
||||||
if ($session{config}{macros}{$searchString} ne "") {
|
if ($session{config}{macros}{$searchString} ne "") {
|
||||||
my $cmd = "WebGUI::Macro::".$session{config}{macros}{$searchString}."::process";
|
my $cmd = "WebGUI::Macro::".$session{config}{macros}{$searchString}."::process";
|
||||||
|
open(DEBUG, ">> /tmp/macro");
|
||||||
|
print DEBUG "-------------------\n";
|
||||||
|
print DEBUG "searchString: $searchString\n";
|
||||||
|
print DEBUG "params: $params\n";
|
||||||
|
print DEBUG "macro: $macro\n\n";
|
||||||
|
close(DEBUG);
|
||||||
my $result = eval{&$cmd($params)};
|
my $result = eval{&$cmd($params)};
|
||||||
if ($@) {
|
if ($@) {
|
||||||
WebGUI::ErrorHandler::warn("Processing failed on macro: $macro: ".$@);
|
WebGUI::ErrorHandler::warn("Processing failed on macro: $macro: ".$@);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue