using a script timer to join #12$C=mS^2$21 with /join does not work. a work around is to set a remote to join the channel and type a trigger in the timer for the remote. is this a bug or design?
Can you more clearly show what doesn't work? Some networks like freenode won't allow this as a #channel name, but at EFnet i can successfully join that channel by pasting either of these commands into the status window:
//timer 1 1 join #12$C=mS^2$21
/timer 1 1 join #12$C=mS^2$21
Could it be that the $ symbol is being treated as an identifier in one situation and not the other?
What happens if you type //join #12$C=mS^2$21 ?
no, the $ evaluates only if preceded by space or by '#', as well as preceded by parenthesis or comma inside an identifier's parameters. That's why I gave both examples of 1 and 2 slashes. Both methods are the same string, so there's no evaluation.
//echo -a #$version is numeric even inside a #channel window which evaluates the # to a not-null string.
/echo -a #12$C=mS^2$21
is same as
//echo -a #12$C=mS^2$21
jI didn't get a notice of a reply. came on forum because windows update causes Mirc UI not to show (is in processes on PC). will reply with answer when I get on Mirc again. I did reinstall mirc on top of same location and problem did not change.
/timer 1 1 join #$C=mS^3$
* Timer 1 activated
* No such identifier: #$C=mS^3$
* Timer 1 halted
/timer 1 1 join #12$C=mS^2$21 (note changed to not show actual channel name for example given) actually works
* Timer 1 activated
* Timer 1 halted
and window opens. My obfuscation example works while original does not (#$C=mS^3$)
You did the XY problem. You gave a completely different question which didn't have the problem, instead of giving the actual channel name which does have the problem. As I stated in my previous posts, one of the situations where the $ evaluates as an identifier is when the $ is preceded by a # which is what's happening in your final example. If you don't want the timer to evaluate the command line, you need to wrap the command line inside the $unsafe identifier:
//timer 1 1 $unsafe( join #$C=mS^3$ )
it is a secure back channel and don't want the actual name public on a forum. I do apologize.
//timer 1 1 $unsafe( join #$C=mS^3$ )
gave * No such identifier: #$C=mS^3$
FFS - if you change the example you give (even for a good reason), then you should at least confirm that the new example you give suffers from the same problem.
that literal string in a script will work. but on the editbox it will evaluate before being placed into the timer. if you want to do this from the editbox too, then use 1 slash
/timer 1 1 $unsafe( join #$C=mS^3$ )
/timer 1 1 $unsafe( join #$C=mS^3$ )
done in edit box .. got below lines.
* Timer 1 activated
* No such identifier: #$C=mS^3$
* Timer 1 halted
//timer 1 1 join $unsafe( $eval(#$C=mS^3$,0) )