home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
ircii30.zip
/
script
/
recursion
< prev
next >
Wrap
Text File
|
1994-07-30
|
2KB
|
92 lines
# This one from Daemon (frechett@spot.Colorado.EDU)
# He also threw together the patch to allow this sort of thing.
# For use with the recursion abilities of ircII2.2pre5+2
# set MAX_RECURSIONS however high you want and still think is safe for you.
# Or use it as a limit to the number of times an alias will execute. It will
# die with an error though.
# /iterate command_word list_of_words
# will execute the command for each word in order
^alias iterate
{
if ([$1]) {$0 $1;iterate $0 $2-}
}
# /conbunch server1 server2 server3
^alias conbunch
{
if ( [$1] )
{ conbunch $1- }
connect $0
}
# /kickbunch nick1 nick2 nick3 nick4
^alias kickbunch
{
if ( [$1] )
{ kickbunch $1-}
kick $C $0
}
# you get the point
^alias squitbunch
{
if ( [$1] )
{ squitbunch $1- }
squit $0
}
^alias versbunch
{
if ( [$1] )
{ versbunch $1- }
version $0
}
# /opalot + nick1 nick2 nick3 or /opalot - nick1 nick2 nick3 for op or deop
# It will op in an efficient fashion as well.
^alias opalot
{
if ( [$4] )
{ opalot $0 $4- }
mode $C $0ooo $1-3
}
# /addlist <listname> word1 word2 word3 add to array
^alias addlist
{
if ( [$2] )
{ addlist $0 $2- }
assign $0.$%strip(#+\.-\*/\={}[]<>!@$$%^~`,?:|'\" $1) $1
}
# not related to recursion directly but useful for dealing with arrays.
# /do <list name> <action for element>
^alias do foreach $0 ii \{ $1- $$($0[$$ii]) \}
# /clean <structure name>
# removes all assignments under that name to a single level
^alias clean foreach $0 ii { assign -$0[$ii] }
# /purge <structure name>
# removes all assignments under that name recursively.
^alias purge {
foreach $0 ii
{
purge $0.$ii
}
^assign -ii
^assign -$0
}
# Assuming you've made a list with addlist of servers.. or people or whatever
# the following alias should give you some idea of other things to do..
^alias versall do $0 version
# Yes.. it looks cryptic.. Try /addlist servers h.ece* ucsu* *.unm.edu
# and then /versall servers
# or maybe just type /do servers version ;)
# so much more.. so little time..