Ping!  Is it OK to push the change I propose below?

> Date: Wed, 28 Aug 2019 19:01:39 +0300
> From: Eli Zaretskii <e...@gnu.org>
> Cc: bug-make@gnu.org
> 
> > From: Paul Smith <psm...@gnu.org>
> > Cc: bug-make@gnu.org
> > Date: Wed, 28 Aug 2019 11:25:25 -0400
> > 
> >    $string = `sh -c "$make_path -f null.mk $redir"`;
> >    if ($string =~ /(.*): \*\*\* No targets\.  Stop\./) {
> >      $make_name = $1;
> >    }
> >    else {
> >      $make_path =~ /^(?:.*$pathsep)?(.+)$/;
> >      $make_name = $1;
> >    }
> > 
> > I don't know why we use sh -c here instead of just invoking the command
> > normally via Perl ``... but that certainly fails for you since you have
> > no sh, so it goes to the else part and tries to grab the filename.
> > 
> > You can either try removing the sh -c and just running make directly
> > and grabbing the name from the output, or you can fix the else-part to
> > remove a .exe if it exists.
> 
> Thanks.  Does the below look right?  I'm mainly worried about the
> redir part, although this did work for me on Windows.  (Perl is
> largely a read-only language for me.)
> 
> diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl
> index 7e969a9..55bae33 100644
> --- a/tests/run_make_tests.pl
> +++ b/tests/run_make_tests.pl
> @@ -436,7 +436,7 @@ sub set_more_defaults
>  
>     my $redir = '2>&1';
>     $redir = '' if os_name eq 'VMS';
> -   $string = `sh -c "$make_path -f null.mk $redir"`;
> +   $string = `$make_path -f null.mk $redir`;
>     if ($string =~ /(.*): \*\*\* No targets\.  Stop\./) {
>       $make_name = $1;
>     }
> 
> With this change, I'm down to 236 failed tests.
> 
> _______________________________________________
> Bug-make mailing list
> Bug-make@gnu.org
> https://lists.gnu.org/mailman/listinfo/bug-make

_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to