There are much simpler (and safer) ways to have recursion. Just make two aliases call each other:
alias one if $1 < 5 { echo 3 -s Start: $1- | two $calc($1 + 1) | echo 3 -s End: $1- }
alias two if $1 < 5 { echo 4 -s Start: $1- | one $calc($1 + 1) | echo 4 -s End: $1- }
Then type:
//one 1
You can call /two either at the beginning or at the end of the code for the /one alias, depending on what you want to do.
If you want to have a general-purpose do_recurse you can also do this:
The methods using aliases are safer than signals,
except in the current version of mIRC. The safeguards that were implemented quite a few versions ago seem to be broken in v6.16, but I'm sure they will be fixed, since they used to work fine. Signals, on the other hand, were never recursion-safe: you can crash
any version of mirc with something like:
on *:signal:crash: .signal -n crash
by typing
//signal crash