diff --git a/dlls/msi/cond.y b/dlls/msi/cond.y index 7eb48c53b5..8831208244 100644 --- a/dlls/msi/cond.y +++ b/dlls/msi/cond.y @@ -553,14 +553,14 @@ static int COND_GetOperator( COND_input *cond ) const WCHAR str[4]; int id; } table[] = { - { {'~','=',0}, COND_IEQ }, { {'~','<','=',0}, COND_ILE }, { {'~','>','<',0}, COND_ISS }, { {'~','>','>',0}, COND_IRHS }, { {'~','<','>',0}, COND_INE }, - { {'~','<',0}, COND_ILT }, { {'~','>','=',0}, COND_IGE }, { {'~','<','<',0}, COND_ILHS }, + { {'~','=',0}, COND_IEQ }, + { {'~','<',0}, COND_ILT }, { {'~','>',0}, COND_IGT }, { {'>','=',0}, COND_GE }, { {'>','<',0}, COND_SS }, diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index 3cb5d1ddfe..2696dc2659 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -1072,6 +1072,15 @@ static void test_condition(void) r = MsiEvaluateCondition(hpkg, "not LicView"); ok( r == MSICONDITION_TRUE, "wrong return val\n"); + r = MsiEvaluateCondition(hpkg, "\"Testing\" ~<< \"Testing\""); + ok (r == MSICONDITION_TRUE, "wrong return val\n"); + + r = MsiEvaluateCondition(hpkg, "LicView ~<< \"Testing\""); + ok (r == MSICONDITION_FALSE, "wrong return val\n"); + + r = MsiEvaluateCondition(hpkg, "Not LicView ~<< \"Testing\""); + ok (r == MSICONDITION_TRUE, "wrong return val\n"); + r = MsiEvaluateCondition(hpkg, "not \"A\""); ok( r == MSICONDITION_FALSE, "wrong return val\n");