Update to latest version. - Substitute $srcdir in program arguments.
diff --git a/regress/NiHTest.pm b/regress/NiHTest.pm index ba674cf..e8b1db7 100644 --- a/regress/NiHTest.pm +++ b/regress/NiHTest.pm
@@ -902,10 +902,10 @@ return $ok; } -sub backslash_decode { +sub args_decode { - my ($str) = @_; + my ($str, $srcdir) = @_; if ($str =~ m/\\/) { $str =~ s/\\a/\a/gi; @@ -920,6 +920,14 @@ $str =~ s/\\(.)/$1/g; } + if ($srcdir !~ m,^/,) { + $srcdir = "../$srcdir"; + } + + if ($str =~ m/^\$srcdir(.*)/) { + $str = "$srcdir$1"; + } + return $str; } @@ -930,7 +938,7 @@ my ($stdin, $stdout, $stderr); $stderr = gensym; - my @cmd = ('../' . $self->{test}->{program}, map ({ backslash_decode($_); } @{$self->{test}->{args}})); + my @cmd = ('../' . $self->{test}->{program}, map ({ args_decode($_, $self->{srcdir}); } @{$self->{test}->{args}})); ### TODO: catch errors? @@ -986,7 +994,7 @@ sub pipein_win32() { my ($self) = @_; - my $cmd = "$self->{test}->{pipein}| ..\\$self->{test}->{program} " . join(' ', map ({ backslash_decode($_); } @{$self->{test}->{args}})); + my $cmd = "$self->{test}->{pipein}| ..\\$self->{test}->{program} " . join(' ', map ({ args_decode($_, $self->{srcdir}); } @{$self->{test}->{args}})); my ($success, $error_message, $full_buf, $stdout_buf, $stderr_buf) = IPC::Cmd::run(command => $cmd); if (!$success) { ### TODO: catch errors?