diff options
author | Richard Levitte <levitte@openssl.org> | 2021-02-05 15:00:17 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2021-02-07 07:20:39 +0100 |
commit | a2a76471ee2ef7ed434fbc51c8e115052dad39e6 (patch) | |
tree | c2a945403f50dee1dfdc609bc2ab998e870a140a | |
parent | fb97b8e8a52b853b2b2209d5aeee36eaa08bb9ad (diff) | |
download | openssl-a2a76471ee2ef7ed434fbc51c8e115052dad39e6.tar.gz |
configdata.pm: Better display of enabled/disabled options
The options listed in the array @disablables are regular expressions.
For most of them, it's not visible, but there are a few.
However, configdata.pm didn't quite treat them that way, which meant
that the few that are visibly regular expressions, there's a
difference between that and the corresponding the key in %disabled,
which is never a regular expression.
To correctly display the enabled and disabled options with --dump,
we must therefore go through a bit of Perl gymnastics to get the
output correct enough, primarly so that disabled features don't look
enabled.
Fixes #13790
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14081)
-rwxr-xr-x | Configure | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -2611,19 +2611,22 @@ _____ } print "\nEnabled features:\n\n"; foreach my $what (@disablables) { - print " $what\n" unless $disabled{$what}; + print " $what\n" + unless grep { $_ =~ /^${what}$/ } keys %disabled; } print "\nDisabled features:\n\n"; foreach my $what (@disablables) { - if ($disabled{$what}) { - print " $what", ' ' x ($longest - length($what) + 1), - "[$disabled{$what}]", ' ' x ($longest2 - length($disabled{$what}) + 1); - print $disabled_info{$what}->{macro} - if $disabled_info{$what}->{macro}; + my @what2 = grep { $_ =~ /^${what}$/ } keys %disabled; + my $what3 = $what2[0]; + if ($what3) { + print " $what3", ' ' x ($longest - length($what3) + 1), + "[$disabled{$what3}]", ' ' x ($longest2 - length($disabled{$what3}) + 1); + print $disabled_info{$what3}->{macro} + if $disabled_info{$what3}->{macro}; print ' (skip ', - join(', ', @{$disabled_info{$what}->{skipped}}), + join(', ', @{$disabled_info{$what3}->{skipped}}), ')' - if $disabled_info{$what}->{skipped}; + if $disabled_info{$what3}->{skipped}; print "\n"; } } |