Why dont you just add:

$iif($qt([username]) == "", a, b)

Code:
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.


- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"