alias scano sco
alias scanv scv
alias scann scn

^on ^channel_synch - "*"
alias sc scan

alias fix.scan if ([$0]) {@_t=[$[11]0]
@_t=msar(g/@/$(cyn)@$(cl)/+/$(mag)+$(cl)/./ /$strip(/ $(_t)))
@function_return=_t}{@function_return=[$[11]empty_string]}


## propz to robohak for clueing me into this way of scanning :)
on raw_irc -"% 366 *"
on ^353 * {@nicks#=[$3-]}
on ^raw_irc "% 366 *" {
	^local scan1
	^push scan1 $pattern(*@* $nicks)
	^push scan1 $pattern(*+* $nicks)
	^push scan1 $filter(*+* $filter(*@* $nicks))	
         @nicks.ops=pattern(*@* $nicks)
         @nicks.voc=pattern(*+* $nicks)
         @nicks.non=filter(*+* $filter(*@* $nicks))
	 @chan=C         		
^xecho -w $chanwin($3)    $(hblk)³ $(cl)users$(hblk)\($(cl)$chan$(hblk)) ú $(cyn)o$(cl)ps$(hblk)\($(cl)$#nicks.ops$(hblk)) $(cyn)v$(cl)oc$(hblk)\($(cl)$#nicks.voc$(hblk)) $(cyn)n$(cl)on$(hblk)\($(cl)$#nicks.non$(hblk))
^xecho -w $chanwin($3)  ÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄ$(cl)ÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄ$(hwht)Ä$(cl)ÄÄÄ$(hwht)ÄÄÄ$(cl)Ä$(hwht)ÄÄÄÄ$(cl)ÄÄÄÄÄ¿
    
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)    $(hblk)³$(cl) $fix.scan($nlist1) $(hblk)ú$(cl) $fix.scan($nlist2)$(hblk) ú$(cl) $fix.scan($nlist3) $(hblk)ú$(cl) $fix.scan($nlist4) $(hblk)ú$(cl) $fix.scan($nlist5)  $(cl)³
}
^xecho -w $chanwin($3)    $(hblk)ÀÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄÄ$(hwht)ÄÄÄÄÄ$(cl)ÄÄÄÄ$(hwht)ÄÄÄ$(cl)ÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄ$(cl)ÄÄ$(hblk)ÄÄÄÄÄÄÄ³ÄÄ
	
	^assign -nicks;^assign -chan;^assign -scan1;^assign -scan1;^assign -nlist1;^assign -nlist2;^assign -nlist2;^assign -nlist4;^assign -nlist5;^assign -nicks.ops;^assign -nicks.voc;^assign -nicks.non
}


alias scan {
	if ([$0]) {@ chan = [$0]}{@ chan = C}
	^local ops 0
        ^local voc 0
        ^local non 0
	@ blah = sar(g/\*//$channel($chan))
	^push scan1 $pattern(*@* $blah)
	^push scan1 $pattern(*+* $blah)
	^push scan1 $pattern(*.* $blah)
	@nicks.ops=pattern(*@* $channel($chan))
	@nicks.voc=pattern(*+* $channel($chan))
	@nicks.non=pattern(*.* $channel($chan))

^xecho -w $chanwin($3)    $(hblk)³ $(cl)users$(hblk)\($(cl)$chan$(hblk)) ú $(cyn)o$(cl)ps$(hblk)\($(cl)$#nicks.ops$(hblk)) $(cyn)v$(cl)oc$(hblk)\($(cl)$#nicks.voc$(hblk)) $(cyn)n$(cl)on$(hblk)\($(cl)$#nicks.non$(hblk))
^xecho -w $chanwin($3)  ÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄ$(cl)ÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄ$(hwht)Ä$(cl)ÄÄÄ$(hwht)ÄÄÄ$(cl)Ä$(hwht)ÄÄÄÄ$(cl)ÄÄÄÄÄ¿
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)    $(hblk)³$(cl) $fix.scan($nlist1) $(hblk)ú$(cl) $fix.scan($nlist2)$(hblk) ú$(cl) $fix.scan($nlist3) $(hblk)ú$(cl) $fix.scan($nlist4) $(hblk)ú$(cl) $fix.scan($nlist5)  $(cl)³
}                                                             
^xecho -w $chanwin($3)    $(hblk)ÀÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄÄ$(hwht)ÄÄÄÄÄ$(cl)ÄÄÄÄ$(hwht)ÄÄÄ$(cl)ÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄ$(cl)ÄÄ$(hblk)ÄÄÄÄÄÄÄ³ÄÄ
	
	^assign -nicks;^assign -chan;^assign -scan1;^assign -scan1;^assign -nlist1;^assign -nlist2;^assign -nlist2;^assign -nlist4;^assign -nlist5;^assign -nicks.ops;^assign -nicks.voc;^assign -nicks.non
}


alias sco {
	if ([$0]) {@chan=[$0]}{@ chan = C}
        
        ^local nicks.ops 0
	@ blah=sar(g/\*//$channel($chan))
	^push scan1 $pattern(*@* $blah)
	 @ nicks.ops = pattern(*@* $channel($chan))        
^xecho -w $chanwin($3)    $(hblk)³ $(cl)users$(hblk)\($(cl)$chan$(hblk)) ú $(cyn)o$(cl)ps$(hblk)\($(cl)$#nicks.ops$(hblk)) $(cyn)v$(cl)oc$(hblk)\($(cl)$#nicks.voc$(hblk)) $(cyn)n$(cl)on$(hblk)\($(cl)$#nicks.non$(hblk))
^xecho -w $chanwin($3)  ÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄ$(cl)ÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄ$(hwht)Ä$(cl)ÄÄÄ$(hwht)ÄÄÄ$(cl)Ä$(hwht)ÄÄÄÄ$(cl)ÄÄÄÄÄ¿
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)    $(hblk)³$(cl) $fix.scan($nlist1) $(hblk)ú$(cl) $fix.scan($nlist2)$(hblk) ú$(cl) $fix.scan($nlist3) $(hblk)ú$(cl) $fix.scan($nlist4) $(hblk)ú$(cl) $fix.scan($nlist5)  $(cl)³
}                                                             
^xecho -w $chanwin($3)    $(hblk)ÀÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄÄ$(hwht)ÄÄÄÄÄ$(cl)ÄÄÄÄ$(hwht)ÄÄÄ$(cl)ÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄ$(cl)ÄÄ$(hblk)ÄÄÄÄÄÄÄ³ÄÄ


	^assign -chan;^assign -scan1;^assign -scan1;^assign -nlist1;^assign -nlist2;^assign -nlist2;^assign -nlist4;^assign -nlist5;^assign -nicks.ops;^assign -nicks.voc;^assign -nicks.non
}

alias scn {
	if ([$0]) {@chan=[$0]}{@ chan = C}
        ^local nicks.non 0
	@ blah = sar(g/\*//$channel($chan))
	^push scan1 $pattern(*.* $blah)
         @nicks.non=pattern(*.* $channel($chan))        
^xecho -w $chanwin($3)    $(hblk)³ $(cl)users$(hblk)\($(cl)$chan$(hblk)) ú $(cyn)o$(cl)ps$(hblk)\($(cl)$#nicks.ops$(hblk)) $(cyn)v$(cl)oc$(hblk)\($(cl)$#nicks.voc$(hblk)) $(cyn)n$(cl)on$(hblk)\($(cl)$#nicks.non$(hblk))
^xecho -w $chanwin($3)  ÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄ$(cl)ÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄ$(hwht)Ä$(cl)ÄÄÄ$(hwht)ÄÄÄ$(cl)Ä$(hwht)ÄÄÄÄ$(cl)ÄÄÄÄÄ¿
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)    $(hblk)³$(cl) $fix.scan($nlist1) $(hblk)ú$(cl) $fix.scan($nlist2)$(hblk) ú$(cl) $fix.scan($nlist3) $(hblk)ú$(cl) $fix.scan($nlist4) $(hblk)ú$(cl) $fix.scan($nlist5)  $(cl)³
}                                                             
^xecho -w $chanwin($3)    $(hblk)ÀÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄÄ$(hwht)ÄÄÄÄÄ$(cl)ÄÄÄÄ$(hwht)ÄÄÄ$(cl)ÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄ$(cl)ÄÄ$(hblk)ÄÄÄÄÄÄÄ³ÄÄ

	^assign -chan;^assign -scan1;^assign -scan1;^assign -nlist1;^assign -nlist2;^assign -nlist2;^assign -nlist4;^assign -nlist5;^assign -nicks.ops;^assign -nicks.voc;^assign -nicks.non
}

alias scv {
	if ([$0]) {@chan=[$0]}{@ chan = C}
          ^local nicks.voc 0
        @ blah = sar(g/\*//$channel($chan))  
	^push scan1 $pattern(*+* $blah)	
	  @ nicks.voc = pattern(*+* $channel($chan))
^xecho -w $chanwin($3)    $(hblk)³ $(cl)users$(hblk)\($(cl)$chan$(hblk)) ú $(cyn)o$(cl)ps$(hblk)\($(cl)$#nicks.ops$(hblk)) $(cyn)v$(cl)oc$(hblk)\($(cl)$#nicks.voc$(hblk)) $(cyn)n$(cl)on$(hblk)\($(cl)$#nicks.non$(hblk))
^xecho -w $chanwin($3)  ÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄ$(cl)ÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄÄ$(cl)Ä$(hblk)ÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄ$(hwht)Ä$(cl)ÄÄÄ$(hwht)ÄÄÄ$(cl)Ä$(hwht)ÄÄÄÄ$(cl)ÄÄÄÄÄ¿
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)    $(hblk)³$(cl) $fix.scan($nlist1) $(hblk)ú$(cl) $fix.scan($nlist2)$(hblk) ú$(cl) $fix.scan($nlist3) $(hblk)ú$(cl) $fix.scan($nlist4) $(hblk)ú$(cl) $fix.scan($nlist5)  $(cl)³
}                                                             
^xecho -w $chanwin($3)    $(hblk)ÀÄÄ$(cl)Ä$(hblk)ÄÄÄÄÄ$(cl)ÄÄÄÄÄÄÄ$(hblk)Ä$(cl)ÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄ$(hblk)ÄÄ$(cl)ÄÄÄÄÄÄ$(hwht)ÄÄÄÄÄ$(cl)ÄÄÄÄ$(hwht)ÄÄÄ$(cl)ÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄ$(cl)ÄÄ$(hblk)ÄÄÄÄÄÄÄ³ÄÄ

	^assign -chan;^assign -scan1;^assign -scan1;^assign -nlist1;^assign -nlist2;^assign -nlist2;^assign -nlist4;^assign -nlist5;^assign -nicks.ops;^assign -nicks.voc;^assign -nicks.non
}