Commit 7837ae20 authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msi: Fix condition evaluation when comparing literal and integer.

parent 414fe80a
......@@ -218,7 +218,7 @@ boolean_factor:
}
else if ($1.type == VALUE_LITERAL || $3.type == VALUE_LITERAL)
{
$$ = FALSE;
$$ = ($2 == COND_NE || $2 == COND_INE );
}
else if ($1.type == VALUE_SYMBOL) /* symbol operator integer */
{
......
......@@ -2097,6 +2097,10 @@ static void test_condition(void)
ok( r == MSICONDITION_FALSE, "wrong return val (%d)\n", r);
r = MsiEvaluateConditionA(hpkg, "&nofeature=\"\"");
ok( r == MSICONDITION_TRUE, "wrong return val (%d)\n", r);
r = MsiEvaluateConditionA(hpkg, "&nofeature<>3");
ok( r == MSICONDITION_TRUE, "wrong return val (%d)\n", r);
r = MsiEvaluateConditionA(hpkg, "\"\"<>3");
ok( r == MSICONDITION_TRUE, "wrong return val (%d)\n", r);
r = MsiEvaluateConditionA(hpkg, "!nofeature=\"\"");
ok( r == MSICONDITION_TRUE, "wrong return val (%d)\n", r);
MsiEvaluateConditionA(hpkg, "$nocomponent=\"\"");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment