3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-27 06:19:25 +01:00

CGrammar: Fix functions taking function pointer as parameter

This commit is contained in:
Pragmatic Software 2014-06-20 23:16:04 +00:00
parent a501557d35
commit c18af75b63
2 changed files with 7 additions and 2 deletions

View File

@ -13,7 +13,7 @@ use warnings;
# These are set automatically by the build/commit script # These are set automatically by the build/commit script
use constant { use constant {
BUILD_NAME => "PBot", BUILD_NAME => "PBot",
BUILD_REVISION => 660, BUILD_REVISION => 661,
BUILD_DATE => "2014-06-20", BUILD_DATE => "2014-06-20",
}; };

View File

@ -1112,17 +1112,22 @@ parameter_list:
for(my $i = 0; $i < @parameter_list; $i++) { for(my $i = 0; $i < @parameter_list; $i++) {
$return .= $comma; $return .= $comma;
if(ref $parameter_list[$i] eq 'ARRAY') { if(ref $parameter_list[$i] eq 'ARRAY') {
my @list = @{$parameter_list[$i]}; my @list = ::flatten @{$parameter_list[$i]};
if(@list == 0) { if(@list == 0) {
$return = "no parameters"; $return = "no parameters";
} elsif (@list == 1) { } elsif (@list == 1) {
$return .= $list[0]; $return .= $list[0];
} else { } else {
if(grep { /function.*returning/ } @list) {
push @list, shift @list;
push @list, shift @list;
}
$return .= join(' ', @list); $return .= join(' ', @list);
} }
} else { } else {
$return .= $parameter_list[$i]; $return .= $parameter_list[$i];
} }
if($i == $#parameter_list - 1) { if($i == $#parameter_list - 1) {
$comma = ' and '; $comma = ' and ';
} else { } else {