From 666737664cef051fa5a118bb8d14f7708b7db8af Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Tue, 6 Jul 2021 10:58:28 -0500 Subject: Improve whitespace handling in Burn conditions. Fixes #4702 --- src/burn/engine/condition.cpp | 2 +- src/burn/test/BurnUnitTest/VariableTest.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src/burn') diff --git a/src/burn/engine/condition.cpp b/src/burn/engine/condition.cpp index b7cd7413..8fa62f16 100644 --- a/src/burn/engine/condition.cpp +++ b/src/burn/engine/condition.cpp @@ -525,7 +525,7 @@ static HRESULT NextSymbol( while (L'\0' != pContext->wzRead[0]) { ::GetStringTypeW(CT_CTYPE1, pContext->wzRead, 1, &charType); - if (0 == (C1_BLANK & charType)) + if (0 == ((C1_BLANK | C1_SPACE) & charType)) { break; // no blank, done } diff --git a/src/burn/test/BurnUnitTest/VariableTest.cpp b/src/burn/test/BurnUnitTest/VariableTest.cpp index 055d63d9..259fb468 100644 --- a/src/burn/test/BurnUnitTest/VariableTest.cpp +++ b/src/burn/test/BurnUnitTest/VariableTest.cpp @@ -261,6 +261,8 @@ namespace Bootstrapper Assert::True(EvaluateConditionHelper(&variables, L"PROP1 = \"VAL1\"")); Assert::False(EvaluateConditionHelper(&variables, L"NONE = \"NOT\"")); Assert::False(EvaluateConditionHelper(&variables, L"PROP1 <> \"VAL1\"")); + Assert::False(EvaluateConditionHelper(&variables, L"PROP1 <>\n\"VAL1\"")); + Assert::True(EvaluateConditionHelper(&variables, L"PROP1 <> \"VAL1\nVAL2\"")); Assert::False(EvaluateConditionHelper(&variables, L"PROP1 ~<> \"VAL1\"")); Assert::False(EvaluateConditionHelper(&variables, L"PROP1 ~<> \"Val1\"")); Assert::True(EvaluateConditionHelper(&variables, L"NONE <> \"NOT\"")); -- cgit v1.2.3-55-g6feb