In build.info, an IF within a clause that's skipped over shouldn't apply
authorRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 13:33:37 +0000 (14:33 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 13:53:30 +0000 (14:53 +0100)
If we find an IF within a clause that's skipped over, set it to be
skipped as well.

Reviewed-by: Matt Caswell <matt@openssl.org>
Configure

index f346178..57d8a5a 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -1333,7 +1333,13 @@ if ($builder eq "unified") {
                                                 $l1 =~ s/\\$//; $l1.$l2 }),
             # Info we're looking for
             qr/^\s*IF\[((?:\\.|[^\\\]])*)\]\s*$/
-            => sub { push @skip, !! $1; },
+            => sub {
+                if (! @skip || $skip[$#skip] >= 0) {
+                    push @skip, !! $1;
+                } else {
+                    push @skip, -1;
+                }
+            },
             qr/^\s*ELSIF\[((?:\\.|[^\\\]])*)\]\s*$/
             => sub { die "ELSIF out of scope" if ! @skip;
                      die "ELSIF following ELSE" if abs($skip[$#skip]) == 2;