Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 28991
Status: resolved
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors: schwern [...] pobox.com
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: (no value)
Fixed in: 6.99_06



Subject: [Fwd: Re: [patch] First batch of whitespace patches (ExtUtils::MakeMaker)]
Date: Sat, 25 Aug 2007 18:21:54 -0700
To: via RT <bug-ExtUtils-MakeMaker [...] rt.cpan.org>
From: Michael G Schwern <schwern [...] pobox.com>
Show quoted text
-------- Original Message -------- Subject: Re: [patch] First batch of whitespace patches (ExtUtils::MakeMaker) Date: Fri, 24 Aug 2007 21:51:31 +0200 From: Max Maischein <corion@corion.net> To: Abhijit Menon-Sen <ams@toroid.org>, perl5-porters@perl.org, makemaker@perl.org References: <46C9E26B.3040203@corion.net> <20070821084415.GB19656@toroid.org> <46CF31A2.2050104@corion.net> Hello once more, attached the patch to the test library of ExtUtils::MakeMaker, MakeMaker::Test::Utils, and the tests: 1) perl-5.9.5-whitespace-MakeMakerTest.diff This adds a/the function C<quoted_perl>, which also lives in C<test.pl> already. But here it is also documented, a bit. 2) perl-5.9.5-whitespace-test.pl.diff Modifies the tests to use quoted_perl() instead of which_perl() where appropriate. -max
diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/basic.t fresh blead/perl-5.9.5/lib/ExtUtils/t/basic.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/basic.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/basic.t 2007-08-19 00:14:11.000000000 +0200 @@ -27,7 +27,7 @@ # with our testing. delete @ENV{qw(PREFIX LIB MAKEFLAGS)}; -my $perl = which_perl(); +my $perl = quoted_perl(); my $Is_VMS = $^O eq 'VMS'; # GNV logical interferes with testing diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/Constant.t fresh blead/perl-5.9.5/lib/ExtUtils/t/Constant.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/Constant.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/Constant.t 2007-08-19 00:00:07.000000000 +0200 @@ -32,6 +32,8 @@ # (where ExtUtils::Constant is in the core, and tests against the uninstalled # perl) $perl = File::Spec->rel2abs ($perl) unless $] < 5.006; + +$perl = qq{"$perl"} if $perl =~ /\s/ and $perl !~ /^["']/; # ExtUtils::Constant::C_constant uses $^X inside a comment, and we want to # compare output to ensure that it is the same. We were probably run as ./perl # whereas we will run the child with the full path in $perl. So make $^X for diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/FIRST_MAKEFILE.t fresh blead/perl-5.9.5/lib/ExtUtils/t/FIRST_MAKEFILE.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/FIRST_MAKEFILE.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/FIRST_MAKEFILE.t 2007-08-19 00:16:23.000000000 +0200 @@ -17,7 +17,7 @@ use MakeMaker::Test::Setup::BFD; use MakeMaker::Test::Utils; -my $perl = which_perl(); +my $perl = quoted_perl(); my $make = make_run(); perl_lib(); diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/INSTALL_BASE.t fresh blead/perl-5.9.5/lib/ExtUtils/t/INSTALL_BASE.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/INSTALL_BASE.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/INSTALL_BASE.t 2007-08-19 00:17:13.000000000 +0200 @@ -22,7 +22,7 @@ my $Is_VMS = $^O eq 'VMS'; -my $perl = which_perl(); +my $perl = quoted_perl(); chdir 't'; perl_lib; diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/oneliner.t fresh blead/perl-5.9.5/lib/ExtUtils/t/oneliner.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/oneliner.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/oneliner.t 2007-08-22 20:58:13.000000000 +0200 @@ -28,7 +28,9 @@ sub try_oneliner { my($code, $switches, $expect, $name) = @_; my $cmd = $mm->oneliner($code, $switches); - $cmd =~ s{\$\(ABSPERLRUN\)}{$^X}; + my $Perl = $^X; + $Perl = qq{"$Perl"} if $Perl =~ /\s/ and $Perl !~ /^["']/; + $cmd =~ s{\$\(ABSPERLRUN\)}{$Perl}; # VMS likes to put newlines at the end of commands if there isn't # one already. diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/PL_FILES.t fresh blead/perl-5.9.5/lib/ExtUtils/t/PL_FILES.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/PL_FILES.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/PL_FILES.t 2007-08-19 00:19:40.000000000 +0200 @@ -18,7 +18,7 @@ use MakeMaker::Test::Setup::PL_FILES; use MakeMaker::Test::Utils; -my $perl = which_perl(); +my $perl = quoted_perl(); my $make = make_run(); perl_lib(); diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/prereq_print.t fresh blead/perl-5.9.5/lib/ExtUtils/t/prereq_print.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/prereq_print.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/prereq_print.t 2007-08-19 00:20:10.000000000 +0200 @@ -29,7 +29,7 @@ # with our testing. delete @ENV{qw(PREFIX LIB MAKEFLAGS)}; -my $Perl = which_perl(); +my $Perl = quoted_perl(); my $Makefile = makefile_name(); my $Is_VMS = $^O eq 'VMS'; diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/recurs.t fresh blead/perl-5.9.5/lib/ExtUtils/t/recurs.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/recurs.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/recurs.t 2007-08-19 00:20:38.000000000 +0200 @@ -23,7 +23,7 @@ # with our testing. delete @ENV{qw(PREFIX LIB MAKEFLAGS)}; -my $perl = which_perl(); +my $perl = quoted_perl(); my $Is_VMS = $^O eq 'VMS'; chdir('t'); diff -bruN clean_blead/perl-5.9.5/lib/ExtUtils/t/split_command.t fresh blead/perl-5.9.5/lib/ExtUtils/t/split_command.t --- clean_blead/perl-5.9.5/lib/ExtUtils/t/split_command.t 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/lib/ExtUtils/t/split_command.t 2007-08-19 00:30:57.000000000 +0200 @@ -20,7 +20,7 @@ use Test::More tests => 7; -my $perl = which_perl; +my $perl = quoted_perl; my $mm = bless { NAME => "Foo" }, "MM"; # I don't expect anything to have a length shorter than 256 chars.
diff -bruN clean_blead/perl-5.9.5/t/lib/MakeMaker/Test/Utils.pm fresh blead/perl-5.9.5/t/lib/MakeMaker/Test/Utils.pm --- clean_blead/perl-5.9.5/t/lib/MakeMaker/Test/Utils.pm 2007-07-07 15:40:24.000000000 +0200 +++ fresh blead/perl-5.9.5/t/lib/MakeMaker/Test/Utils.pm 2007-08-19 00:43:04.000000000 +0200 @@ -11,7 +11,7 @@ $VERSION = 0.03; -@EXPORT = qw(which_perl perl_lib makefile_name makefile_backup +@EXPORT = qw(which_perl quoted_perl perl_lib makefile_name makefile_backup make make_run run make_macro calibrate_mtime setup_mm_test_root have_compiler @@ -62,7 +62,8 @@ my $perl = which_perl; Returns a path to perl which is safe to use in a command line, no -matter where you chdir to. +matter where you chdir to. This is not whitespace safe but +is safe to use in system(LIST). =cut @@ -93,6 +94,22 @@ return $perlpath; } +=item B<quoted_perl> + + my $perl = quoted_perl; + +Returns a path to perl which is quoted safe to use in a command line, +even if it contains whitespace. This is intended for interpolation +into a string and is not safe to use with C<system(LIST)>. + +=cut + +sub quoted_perl { + my $perl = which_perl; + $perl = qq{"$perl"} if $perl =~ /\s/ and $perl !~ /^["']/; + $perl +}; + =item B<perl_lib> perl_lib;
I claim this is now obsolete since a) duplicate of RT-448; b) hopefully fixed in https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/105 -> 6.99_06.