solenv/bin/exectest.pl | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-)
New commits: commit 409de33c5739db45b896935c79eba40b68e106ec Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed Jan 23 11:18:55 2013 +0100 In exectest.pl support commands prefixed by shell-style variable assignments ...and properly encode the command passed to Perl's open "|...", which in turn apparently passes the command to the shell. Change-Id: I19ab8f677dced6c1421fd9b4910d8a84743c1506 diff --git a/solenv/bin/exectest.pl b/solenv/bin/exectest.pl index d504d62..06c9072 100644 --- a/solenv/bin/exectest.pl +++ b/solenv/bin/exectest.pl @@ -16,6 +16,13 @@ # the License at http://www.apache.org/licenses/LICENSE-2.0 . # +sub encode($) +{ + my ($arg) = @_; + $arg =~ s/'/'\\''/g; + return $arg +} + $#ARGV >= 1 or die "Usage: $0 <input file>|-SUCCESS|-FAILURE <command> <arguments...>"; if ($ARGV[0] eq "-SUCCESS") @@ -78,7 +85,22 @@ while (1) { { undef $title; } - open PIPE, "| @ARGV" or die "cannot start process: $!"; + my $prog = ''; + my $assigns = 1; + for ($i = 0; $i != scalar(@ARGV); ++$i) + { + $prog .= ' ' unless $i == 0; + if ($assigns && $ARGV[$i] =~ /^([A-Za-z_][A-Za-z0-9_]+)=(.*)$/) + { + $prog .= $1 . "='" . encode($2) . "'"; + } + else + { + $prog .= "'" . encode($ARGV[$i]) . "'"; + $assigns = 0; + } + } + open PIPE, "| $prog" or die "cannot start process: $!"; $open = 1; } elsif ($open && $input) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits