diff options
author | Tom Lane | 2016-07-09 20:47:38 +0000 |
---|---|---|
committer | Tom Lane | 2016-07-09 20:47:38 +0000 |
commit | 30b2731bd21741a6370afba330cea31c75da3bdb (patch) | |
tree | 3716d5042d416c09cbb79d21a20983e705f2198a /src/tools/msvc/Install.pm | |
parent | c57562725d219c4249b82f4a4fb5aaeee3ae0d53 (diff) |
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>
Diffstat (limited to 'src/tools/msvc/Install.pm')
-rw-r--r-- | src/tools/msvc/Install.pm | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index 031719d5d8e..e27e3f64764 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -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 "."; } } |