Correct slight logic error in processing IF in build.info
authorRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 22:58:44 +0000 (23:58 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 22:58:44 +0000 (23:58 +0100)
This corrects a fault where the inner IF in this example was still
being acted upon:

  IF[0]
    ...whatever...
    IF[1]
      ...whatever more...
    ENDIF
  ENDIF

With this change, the inner IF is skipped over.

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

index eb7e54c2b26c72ec12bd67fef3f8744b66197566..2b621f5ba06d9085d50c45da7a478fa66a3aabb6 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -1334,7 +1334,7 @@ if ($builder eq "unified") {
             # Info we're looking for
             qr/^\s*IF\[((?:\\.|[^\\\]])*)\]\s*$/
             => sub {
             # Info we're looking for
             qr/^\s*IF\[((?:\\.|[^\\\]])*)\]\s*$/
             => sub {
-                if (! @skip || $skip[$#skip] >= 0) {
+                if (! @skip || $skip[$#skip] > 0) {
                     push @skip, !! $1;
                 } else {
                     push @skip, -1;
                     push @skip, !! $1;
                 } else {
                     push @skip, -1;