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
		_center $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)ÄÄÄÄÄÄÄÄÄÄÄ-
			@_swidth=(word(0 $geom()) - 4) / 14.3)
				fe ($jot(1 $_swidth)) n1 {
					^push _nlist nlist.$n1
					^push _nlist2 $(hblk)[$(cl)\$fix.scan\(\$nlist\.$n1)$(hblk)] 
				}
 					fe ($scan1) $_nlist {
						eval xecho -w $chanwin($3)  $(hblk)[$(c1)³$(hblk)]  $_nlist2 
					}
						^xecho -w $chanwin($3)   $(c1)À-$(hblk)----ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ----ÄÄ Ä  ÄÄÄ 
        					^assign -nicks;^assign -scan1;^assign -_nlist;^assign -_nlist2
}
   


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))
		_center $winchan() $(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   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
			@_swidth=(word(0 $geom()) - 4) / 14.3
				fe ($jot(1 $_swidth)) n1 {
				^push _nlist nlist.$n1
				^push _nlist2 $(hblk)[$(cl)\$fix.scan\(\$nlist\.$n1)$(hblk)] 
				}
					fe ($scan1) $_nlist {
						eval xecho  $(hblk)[$(c1)³$(hblk)]  $_nlist2 
					}
						^xecho   $(c1)À-$(hblk)----ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ----ÄÄ Ä  ÄÄÄ 
        					^assign -nicks;^assign -scan1;^assign -_nlist;^assign -_nlist2
}
   



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))        
		_center $winchan() $(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   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
			@_swidth=(word(0 $geom()) - 4) / 14.3
				fe ($jot(1 $_swidth)) n1 {
				^push _nlist nlist.$n1
				^push _nlist2 $(hblk)[$(cl)\$fix.scan\(\$nlist\.$n1)$(hblk)] 
				}
 					fe ($scan1) $_nlist {
						eval xecho  $(hblk)[$(c1)³$(hblk)]  $_nlist2 
					}
							^xecho   $(c1)À-$(hblk)----ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ----ÄÄ Ä  ÄÄÄ 
        						^assign -nicks;^assign -scan1;^assign -_nlist;^assign -_nlist2
}
   

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))        
		_center $winchan() $(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   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
			@_swidth=(word(0 $geom()) - 4) / 14.3
				fe ($jot(1 $_swidth)) n1 {
				^push _nlist nlist.$n1
				^push _nlist2 $(hblk)[$(cl)\$fix.scan\(\$nlist\.$n1)$(hblk)] 
				}
 					fe ($scan1) $_nlist {
						eval xecho  $(hblk)[$(c1)³$(hblk)]  $_nlist2 
					}
						^xecho   $(c1)À-$(hblk)----ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ----ÄÄ Ä  ÄÄÄ 
        					^assign -nicks;^assign -scan1;^assign -_nlist;^assign -_nlist2
}
   
   

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))
		_center $winchan() $(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   $(hwht)ÚÄÄ$(cl)Ä$(hwht)Ä$(cl)ÄÄÄÄÄ$(c1)ÄÄ-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ$(hblk)ÄÄÄÄÄÄÄÄÄÄÄ-
			@_swidth=(word(0 $geom()) - 4) / 14.3
				fe ($jot(1 $_swidth)) n1 {
				^push _nlist nlist.$n1
				^push _nlist2 $(hblk)[$(cl)\$fix.scan\(\$nlist\.$n1)$(hblk)] 
				}
 					fe ($scan1) $_nlist {
						eval xecho  $(hblk)[$(c1)³$(hblk)]  $_nlist2 
					}
						^xecho   $(c1)À-$(hblk)----ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ----ÄÄ Ä  ÄÄÄ 
        					^assign -nicks;^assign -scan1;^assign -_nlist;^assign -_nlist2
}
   
   
