From 8bde72706504c5df945f2bb08d9805f9e8526e69 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Fri, 18 Mar 2016 10:45:28 +1100 Subject: sb: Fix %if logical OP parsing. Updates #2655. --- source-builder/sb/config.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/source-builder/sb/config.py b/source-builder/sb/config.py index 732239f..4c26714 100644 --- a/source-builder/sb/config.py +++ b/source-builder/sb/config.py @@ -781,20 +781,26 @@ class file: elif cls[0] == '&&': join_op = 'and' cls = cls[1:] + log.trace('config: %s: _if: joining: %s' % (self.name, join_op)) ori = 0 andi = 0 i = len(cls) if '||' in cls: ori = cls.index('||') + log.trace('config: %s: _if: OR found at %i' % (self.name, ori)) if '&&' in cls: andi = cls.index('&&') + log.trace('config: %s: _if: AND found at %i' % (self.name, andi)) if ori > 0 or andi > 0: - if ori < andi: + if ori == 0: + i = andii + elif andi == 0: i = ori - else: + elif ori < andi: i = andi - if ori == 0: + else: i = andi + log.trace('config: %s: _if: next OP found at %i' % (self.name, i)) ls = cls[:i] if len(ls) == 0: self._error('invalid if expression: ' + reduce(add, sls, '')) -- cgit v1.2.3