X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=2647a2bcaadf3cacd05c1d987f9da1bbbceb01d7;hb=55049b816f1c78769b3bfe734f033340d5872900;hp=8bd11c3cf77a71be3ec5e9863fab8b312b7b3297;hpb=6551fc7afae60f2a4e01bcfdbe68f9a560c10504;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 8bd11c3cf..2647a2bca 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -1114,8 +1114,13 @@ sub parse_template { } my $result; + my $command_formatter = sub { + my ($out_mode, $out) = @_; + return $out_mode eq '|-' ? SL::Template::create(type => 'ShellCommand', form => $self)->parse($out) : $out; + }; if ($self->{OUT}) { + $self->{OUT} = $command_formatter->($self->{OUT_MODE}, $self->{OUT}); open(OUT, $self->{OUT_MODE}, $self->{OUT}) or $self->error("error on opening $self->{OUT} with mode $self->{OUT_MODE} : $!"); } else { *OUT = ($::dispatcher->get_standard_filehandles)[1]; @@ -1200,6 +1205,8 @@ sub parse_template { #print(STDERR "OUT $self->{OUT}\n"); for my $i (1 .. $self->{copies}) { if ($self->{OUT}) { + $self->{OUT} = $command_formatter->($self->{OUT_MODE}, $self->{OUT}); + open OUT, $self->{OUT_MODE}, $self->{OUT} or $self->error($self->cleanup . "$self->{OUT} : $!"); print OUT $_ while ; close OUT; @@ -2512,7 +2519,7 @@ sub get_name { return scalar(@{ $self->{name_list} }); } -# the selection sub is used in the AR, AP, IS, IR and OE module +# the selection sub is used in the AR, AP, IS, IR, DO and OE module # sub all_vc { $main::lxdebug->enter_sub();