On Sat, 2012-12-08 at 21:59 +0000, Andrew Talbot wrote:
diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 076d1b3..677a43f 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -6763,7 +6763,7 @@ static UINT ACTION_RemoveODBC( MSIPACKAGE *package ) #define ENV_MOD_PREFIX 0x80000000 #define ENV_MOD_MASK 0xC0000000
-#define check_flag_combo(x, y) ((x) & ~(y)) == (y) +#define check_flag_combo(x, y) ((x) & (y)) == (y)
static UINT env_parse_flags( LPCWSTR *name, LPCWSTR *value, DWORD *flags ) {
It makes the tests fail here:
err:msi:env_parse_flags Invalid flags: 00000007 err:msi:ITERATE_Actions Execution halted, action L"RemoveEnvironmentStrings" returned 1627 err:msi:env_parse_flags Invalid flags: 00000007 action.c:5899: Test failed: Expected ERROR_SUCCESS, got 1627 action.c:5905: Test failed: Expected ERROR_FILE_NOT_FOUND, got 0 action.c:5908: Test failed: Expected ERROR_FILE_NOT_FOUND, got 0 action.c:5920: Test failed: Expected ERROR_FILE_NOT_FOUND, got 0
I'd suggest to simply remove these checks.