diff options
| author | Melody Horn <melody@boringcactus.com> | 2021-04-05 15:52:55 -0600 | 
|---|---|---|
| committer | Melody Horn <melody@boringcactus.com> | 2021-04-05 15:52:55 -0600 | 
| commit | 5574b575eb09d8121d870fbabe46e7606e6c81eb (patch) | |
| tree | c5f6bbcb4f5e1354a4ae39fd908e35aad4869b69 /src | |
| parent | 31dc26284db364f55fd595c94123f5ba836ebaae (diff) | |
| download | makers-5574b575eb09d8121d870fbabe46e7606e6c81eb.tar.gz makers-5574b575eb09d8121d870fbabe46e7606e6c81eb.zip | |
skip if any conditional is skipping, not just innermost
Diffstat (limited to 'src')
| -rw-r--r-- | src/makefile/conditional.rs | 3 | ||||
| -rw-r--r-- | src/makefile/input.rs | 4 | 
2 files changed, 5 insertions, 2 deletions
| diff --git a/src/makefile/conditional.rs b/src/makefile/conditional.rs index 4490e8c..989dfc9 100644 --- a/src/makefile/conditional.rs +++ b/src/makefile/conditional.rs @@ -2,6 +2,7 @@ use eyre::{bail, Result};  use super::token::TokenString; +#[derive(Debug)]  pub enum Line {      /// spelled "ifeq"      IfEqual(TokenString, TokenString), @@ -19,6 +20,7 @@ pub enum Line {      EndIf,  } +#[derive(Debug)]  pub enum State {      /// we saw a conditional, the condition was true, we're executing now      /// and if we hit an else we will start SkippingUntilEndIf @@ -42,6 +44,7 @@ impl State {      }  } +#[derive(Debug)]  pub enum StateAction {      Push(State),      Replace(State), diff --git a/src/makefile/input.rs b/src/makefile/input.rs index d90378d..5dfaed7 100644 --- a/src/makefile/input.rs +++ b/src/makefile/input.rs @@ -373,8 +373,8 @@ impl<'a, 'parent, R: BufRead> MakefileReader<'a, 'parent, R> {                  // skip lines if we need to                  if self                      .conditional_stack -                    .last() -                    .map_or(false, ConditionalState::skipping) +                    .iter() +                    .any(ConditionalState::skipping)                  {                      continue;                  } |