1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-16 06:01:02 +03:00

Fix TAP tests and MSVC scripts for pathnames with spaces.

Change assorted places in our Perl code that did things like
	system("prog $path/file");
to do it more like
	system('prog', "$path/file");
which is safe against spaces and other special characters in the path
variable.  The latter was already the prevailing style, but a few bits
of code hadn't gotten this memo.  Back-patch to 9.4 as relevant.

Michael Paquier, Kyotaro Horiguchi

Discussion: <20160704.160213.111134711.horiguchi.kyotaro@lab.ntt.co.jp>
This commit is contained in:
Tom Lane
2016-07-09 16:47:38 -04:00
parent c57562725d
commit 30b2731bd2
3 changed files with 39 additions and 20 deletions

View File

@ -381,12 +381,21 @@ sub GenerateTimezoneFiles
my $mf = read_file("src/timezone/Makefile");
$mf =~ s{\\\r?\n}{}g;
$mf =~ /^TZDATA\s*:?=\s*(.*)$/m
|| die "Could not find TZDATA row in timezone makefile\n";
|| die "Could not find TZDATA line in timezone makefile\n";
my @tzfiles = split /\s+/, $1;
unshift @tzfiles, '';
print "Generating timezone files...";
system("$conf\\zic\\zic -d \"$target/share/timezone\" "
. join(" src/timezone/data/", @tzfiles));
my @args = ("$conf/zic/zic",
'-d',
"$target/share/timezone");
foreach (@tzfiles)
{
my $tzfile = $_;
push(@args, "src/timezone/data/$tzfile")
}
system(@args);
print "\n";
}
@ -634,9 +643,10 @@ sub CopyIncludeFiles
next unless (-d "src/include/$d");
EnsureDirectories("$target/include/server/$d");
system(
qq{xcopy /s /i /q /r /y src\\include\\$d\\*.h "$ctarget\\include\\server\\$d\\"}
) && croak("Failed to copy include directory $d\n");
my @args = ('xcopy', '/s', '/i', '/q', '/r', '/y',
"src\\include\\$d\\*.h",
"$ctarget\\include\\server\\$d\\");
system(@args) && croak("Failed to copy include directory $d\n");
}
closedir($D);
@ -689,9 +699,11 @@ sub GenerateNLSFiles
EnsureDirectories($target, "share/locale/$lang",
"share/locale/$lang/LC_MESSAGES");
system(
"\"$nlspath\\bin\\msgfmt\" -o \"$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo\" $_"
) && croak("Could not run msgfmt on $dir\\$_");
my @args = ("$nlspath\\bin\\msgfmt",
'-o',
"$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo",
$_);
system(@args) && croak("Could not run msgfmt on $dir\\$_");
print ".";
}
}