postgres.git / summary / log / commit / refs

commit    ad7595b890dbc26284bb0d784c2aaf1b9d6f903a
Author:   Andrew Dunstan <andrew@dunslane.net>
Date:     Fri Oct 04 19:34:40 2019 +0000
First released in: 13.0, 9.4.25, 9.5.20, 9.6.16, 10.11, 11.6, 12.1

    Handle spaces in OpenSSL install location for MSVC
    
    First, make sure that the .exe name is quoted when trying to get the
    version number. Also, don't quote the lib name for using in the project
    files if it's already been quoted. This second change applies to all
    libraries, not just OpenSSL.
    
    This has clearly been broken forever, so backpatch to all live branches.


src/tools/msvc/Project.pm | 3 ++- src/tools/msvc/Solution.pm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index b5d1dc6e89a..16a7340b22d 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -132,7 +132,8 @@ sub AddLibrary { my ($self, $lib, $dbgsuffix) = @_; - if ($lib =~ m/\s/) + # quote lib name if it has spaces and isn't already quoted + if ($lib =~ m/\s/ && $lib !~ m/^[&]quot;/) { $lib = '&quot;' . $lib . "&quot;"; } diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 318594db5da..17e5903c28b 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -125,8 +125,9 @@ sub GetOpenSSLVersion # Attempt to get OpenSSL version and location. This assumes that # openssl.exe is in the specified directory. + # Quote the .exe name in case it has spaces my $opensslcmd = - $self->{options}->{openssl} . "\\bin\\openssl.exe version 2>&1"; + qq("$self->{options}->{openssl}\\bin\\openssl.exe" version 2>&1); my $sslout = `$opensslcmd`; $? >> 8 == 0 [parent: 2e8b6bfa90b2]