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/@/$(c1)@$(cl)/+/$(c2)+$(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)[$(c1)o$(hblk)!$(wht)$#nicks.ops$(cl)$(hblk)] $(hblk)[$(c1)n$(hblk)!$(wht)$#nicks.non$(hblk)] $(hblk)[$(c1)v$(hblk)!$(wht)$#nicks.voc$(hblk)]
^xecho -w $chanwin($3)   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)  $(hblk)[$(c1)³$(hblk)] $(hblk)[$(cl)$fix.scan($nlist1)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist2)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist3)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist4)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist5)$(hblk)]
}
^xecho -w $chanwin($3)   $(c1)À-$(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)[$(c1)o$(hblk)!$(wht)$#nicks.ops$(cl)$(hblk)] $(hblk)[$(c1)n$(hblk)!$(wht)$#nicks.non$(hblk)] $(hblk)[$(c1)v$(hblk)!$(wht)$#nicks.voc$(hblk)]
^xecho -w $chanwin($3)   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)  $(hblk)[$(c1)³$(hblk)] $(hblk)[$(cl)$fix.scan($nlist1)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist2)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist3)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist4)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist5)$(hblk)]
}
^xecho -w $chanwin($3)   $(c1)À-$(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 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)[$(c1)o$(hblk)!$(wht)$#nicks.ops$(cl)$(hblk)] $(hblk)[$(c1)n$(hblk)!$(wht)$#nicks.non$(hblk)] $(hblk)[$(c1)v$(hblk)!$(wht)$#nicks.voc$(hblk)]
^xecho -w $chanwin($3)   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)  $(hblk)[$(c1)³$(hblk)] $(hblk)[$(cl)$fix.scan($nlist1)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist2)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist3)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist4)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist5)$(hblk)]
}
^xecho -w $chanwin($3)   $(c1)À-$(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)[$(c1)o$(hblk)!$(wht)$#nicks.ops$(cl)$(hblk)] $(hblk)[$(c1)n$(hblk)!$(wht)$#nicks.non$(hblk)] $(hblk)[$(c1)v$(hblk)!$(wht)$#nicks.voc$(hblk)]
^xecho -w $chanwin($3)   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)  $(hblk)[$(c1)³$(hblk)] $(hblk)[$(cl)$fix.scan($nlist1)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist2)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist3)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist4)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist5)$(hblk)]
}
^xecho -w $chanwin($3)   $(c1)À-$(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)[$(c1)o$(hblk)!$(wht)$#nicks.ops$(cl)$(hblk)] $(hblk)[$(c1)n$(hblk)!$(wht)$#nicks.non$(hblk)] $(hblk)[$(c1)v$(hblk)!$(wht)$#nicks.voc$(hblk)]
^xecho -w $chanwin($3)   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
   
	fe ($scan1) nlist1 nlist2 nlist3 nlist4 nlist5 { 

^xecho -w $chanwin($3)  $(hblk)[$(c1)³$(hblk)] $(hblk)[$(cl)$fix.scan($nlist1)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist2)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist3)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist4)$(hblk)] $(hblk)[$(cl)$fix.scan($nlist5)$(hblk)]
}
^xecho -w $chanwin($3)   $(c1)À-$(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
}