Look at it this way.
on *:TEXT:*:*:{
var %s $+($1-,\)
; say i need to parse %s 50 times here -- why doesn't matter, just say I do.
; each time i do, i have to account for the fact there's an \ at the end --
; which means either 50 instances of $left(%s,-1) ... or if I'm doing regexp
; based parsing, 50 regexps that are now more complex.
echo $target $+(<,$nick,>) $regsubex(%s,/^(.*)\\$/,\1)
haltdef
}
The reason I brought up this issue isn't that it's difficult to work around on principle. I brought it up because it
becomes difficult to work around in
practice, when
volume is factored in. Imagine you want all your events, and all your aliases, everywhere, to not eat "" in case they receive it from some IRC user/bot. In that case, you have to implement the workaround in every event, and in every alias, everywhere.
And I couldn't just use your test alias, like this:
alias myparser {
var %s = $test($1-)
; code here
}
Because here, var %s = would just eat the "" and leave me with $null again.
So unless I'm missing something, yes, every variable everywhere which is populated with input from a server would need to have special handling hardcoded for it, to work around this issue.