mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
Fix OpenSSL::fallback for VMS
VMS unpackers will typically convert any period ('.') in directory names to underscores, since the period is a path separator on VMS, just like '/' is a path separator on Unix. Our fallback mechanism needs to account for that. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15317)
This commit is contained in:
parent
22119050ab
commit
a2625c0fc8
@ -89,9 +89,24 @@ sub import {
|
||||
while (my $l = <$fh>) {
|
||||
$l =~ s|\R$||; # Better chomp
|
||||
my $d = "$dir/$l";
|
||||
my $checked = $d;
|
||||
|
||||
if ($^O eq 'VMS') {
|
||||
# Some VMS unpackers replace periods with underscores
|
||||
# We must be real careful not to convert the directories
|
||||
# '.' and '..', though.
|
||||
$checked =
|
||||
join('/',
|
||||
map { my $x = $_;
|
||||
$x =~ s|\.|_|g
|
||||
if ($x ne '..' && $x ne '.');
|
||||
$x }
|
||||
split(m|/|, $checked))
|
||||
unless -e $checked && -d $checked;
|
||||
}
|
||||
croak "All lines in $path must be a directory, not a file: $l"
|
||||
unless -e $d && -d $d;
|
||||
push @INC, $d;
|
||||
unless -e $checked && -d $checked;
|
||||
push @INC, $checked;
|
||||
}
|
||||
} else { # It's a directory
|
||||
push @INC, $path;
|
||||
|
Loading…
Reference in New Issue
Block a user