From: Simon McVittie Date: Sat, 3 Sep 2016 22:46:33 +0000 (+0100) Subject: pm_filter: use \Q...\E to escape all possible strings pedantically X-Git-Tag: 3.20160905~1 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/06fce2b23888621fe87759ffa014c3920f937b7e?hp=-c pm_filter: use \Q...\E to escape all possible strings pedantically The current implementation would misbehave for prefixes containing a single quote. --- 06fce2b23888621fe87759ffa014c3920f937b7e diff --git a/pm_filter b/pm_filter index 351e0b4d9..7b03418ab 100755 --- a/pm_filter +++ b/pm_filter @@ -7,10 +7,10 @@ BEGIN { } if (/INSTALLDIR_AUTOREPLACE/) { - $_=qq{our \$installdir='$prefix';}; + $_=qq{our \$installdir="\Q$prefix\E";}; } elsif (/VERSION_AUTOREPLACE/) { - $_=qq{our \$version="$ver";}; + $_=qq{our \$version="\Q$ver\E";}; } elsif (/^(?:use FindBin; *)?use lib/) { # The idea here is to figure out if the libdir the Makefile.PL @@ -22,12 +22,12 @@ elsif (/^(?:use FindBin; *)?use lib/) { $_=""; } else { - $_="use lib '$libdir';\n"; + $_="use lib \"\Q$libdir\E\";\n"; } } elsif ($. == 1 && ($ENV{NOTAINT}=0) && m{^(#!.*perl.*?)$}) { $_=qq{$1 -T\n}; } elsif (/^\$ENV\{PATH}="(.*)";/) { - $_="\$ENV{PATH}=\"$1:$prefix/bin\";\n"; + $_="\$ENV{PATH}=\"\Q$1\E:\Q$prefix\E/bin\";\n"; }