Why dont you just add:
$iif($qt([username]) == "", a, b)
alias test_eval {
if ($1) {
var %username = $1
}
var %moo = You are $!iif($qt([username]) == "", not logged in., logged in as [username].)
echo -a Value of % $+ moo: %moo
echo -a $eval($replacex(%moo, [username], %username), 2)
}
Frankly, I don't see how this is a bug. mIRC can't tell the difference between "hardcoded" commands and ones generated via script, so I'd rather have /if report invalid syntax in both the hardcoded case and the generated case than neither. It's meant to help people find their bugs-- coding properly (like in the example above) is the better solution to ambiguous parsers-- the solution is
not to make the parser even
more ambiguous.