If you use % as JJ suggested it will work properly. I can create override for -Zne option if you insist but I'll leave it as it is now without that option, because I am not sure if it can cause some other damage to the rest of the code until it is tested properly.
The fix can be done in condasm.c starting from line 400:
if ( tokenarray[i].token != T_FINAL ) {
if (Options.strict_masm_compat){ /* Zne */
goto escape;
EmitWarn( 2, IFDEF_EXPECTS_SYMBOL_ARGUMENT, tokenarray[i-1].tokpos );
while ( tokenarray[i].token != T_FINAL ) i++;
}
if ( directive == T_IFNDEF || directive == T_ELSEIFNDEF )
NextIfState = ( ( NextIfState == BLOCK_ACTIVE ) ? BLOCK_INACTIVE : BLOCK_ACTIVE );
break;
default: /* ELSE and ENDIF */
NextIfState = BLOCK_ACTIVE;
break;
}
if ( tokenarray[i].token != T_FINAL ) {
return( EmitErr( SYNTAX_ERROR_EX, tokenarray[i].strskipr ) );
}
escape:
CurrIfState = NextIfState;
DebugMsg1(("CondAsmDirective(%s) exit, state=%s, lvl=%u, falselvl=%u\n",
GetResWName(directive, NULL), GetCurrIfStatString(), blocknestlevel, falseblocknestlevel));
return( NOT_ERROR );
}
and this will create escape for rejecting the brackets:
if (Options.strict_masm_compat){ /* Zne */
goto escape;
If you are in hurry use that fix or JJ's alternative until we recheck everything and include in next release