Files
epics-base/escape-paths.patch
2011-03-22 13:27:48 +00:00

69 lines
2.3 KiB
Diff

=== modified file 'src/registry/registerRecordDeviceDriver.pl'
--- src/registry/registerRecordDeviceDriver.pl 2010-03-08 23:31:19 +0000
+++ src/registry/registerRecordDeviceDriver.pl 2010-12-16 19:43:51 +0000
@@ -9,6 +9,10 @@
# 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,6 +22,10 @@
$c_bad_ident_chars = '[^0-9A-Za-z_]';
$subname =~ s/$c_bad_ident_chars/_/g;
+# 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>) {
next if m/ ^ \s* \# /x;
=== modified file 'src/tools/convertRelease.pl'
--- src/tools/convertRelease.pl 2010-10-26 14:27:47 +0000
+++ src/tools/convertRelease.pl 2010-12-16 19:45:46 +0000
@@ -144,6 +144,7 @@
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 @@
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 @@
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;
=== modified file 'src/tools/fullPathName.pl'
--- src/tools/fullPathName.pl 2010-10-26 14:27:47 +0000
+++ src/tools/fullPathName.pl 2010-12-16 22:49:00 +0000
@@ -28,6 +28,9 @@
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";