tools: More back-slash escape fixes
Thanks to Stephen Norum for pointing most of these out and testing the patch.
This commit is contained in:
@@ -9,6 +9,10 @@ eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
use FindBin qw($Bin);
|
||||
use lib "$Bin/../../lib/perl";
|
||||
use EPICS::Path;
|
||||
|
||||
($file, $subname, $bldTop) = @ARGV;
|
||||
$numberRecordType = 0;
|
||||
$numberDeviceSupport = 0;
|
||||
@@ -18,8 +22,9 @@ $numberDriverSupport = 0;
|
||||
$c_bad_ident_chars = '[^0-9A-Za-z_]';
|
||||
$subname =~ s/$c_bad_ident_chars/_/g;
|
||||
|
||||
# Escape back-slashes in Windows path
|
||||
$bldTop =~ s(\\)(\\\\)g if $^O eq 'MSWin32';
|
||||
# Process bldTop like convertRelease.pl does
|
||||
$bldTop = LocalPath(UnixPath($bldTop));
|
||||
$bldTop =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
|
||||
|
||||
open(INP,"$file") or die "$! opening file";
|
||||
while(<INP>) {
|
||||
|
||||
@@ -144,6 +144,7 @@ sub cdCommands {
|
||||
|
||||
my $startup = $cwd;
|
||||
$startup =~ s/^$root/$iocroot/o if ($opt_t);
|
||||
$startup =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
|
||||
|
||||
print OUT "startup = \"$startup\"\n";
|
||||
|
||||
@@ -156,6 +157,7 @@ sub cdCommands {
|
||||
foreach my $app (@includes) {
|
||||
my $iocpath = my $path = $macros{$app};
|
||||
$iocpath =~ s/^$root/$iocroot/o if ($opt_t);
|
||||
$iocpath =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
|
||||
my $app_lc = lc($app);
|
||||
print OUT "$app_lc = \"$iocpath\"\n"
|
||||
if (-d $path);
|
||||
@@ -187,6 +189,7 @@ sub envPaths {
|
||||
foreach my $app (@includes) {
|
||||
my $iocpath = my $path = $macros{$app};
|
||||
$iocpath =~ s/^$root/$iocroot/o if ($opt_t);
|
||||
$iocpath =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
|
||||
print OUT "epicsEnvSet(\"$app\",\"$iocpath\")\n" if (-d $path);
|
||||
}
|
||||
close OUT;
|
||||
|
||||
@@ -28,6 +28,9 @@ $Getopt::Std::OUTPUT_HELP_VERSION = 1;
|
||||
|
||||
my $path = AbsPath(shift);
|
||||
|
||||
# Escape shell special characters unless on Windows, which doesn't allow them.
|
||||
$path =~ s/([!"\$&'\(\)*,:;<=>?\[\\\]^`{|}])/\\\1/g unless $^O eq 'MSWin32';
|
||||
|
||||
print "$path\n";
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user