use Misc; #get index of files in the browser client open A, "mapemail"; while(){ chop(); ($from,$to)=split(/\>/); @froms=split(/\,/,$from); foreach $fr (@froms){ $mapemail{$fr}=$to; } } open A, "<$ARGV[0]"; while(){ chop($_); $client{$_}++; } #get email to name mapping open A, "){ chop($_); ($login,$domain)=split(/\@/,$_); $log{$login}.="\@domain"; } open A, "gunzip < allmrs.gz|"; $mr=0; while(){ $mr++; chop(); #$f\;$mod\;$rev\;$vv\;$ymd\;$stmp\;$nadd\;$ndel ($a, $stmp1, $log, $ndelta, @rest)=split(/\;/); $a=~s/\%/\@/;$_=~tr/[A-Z]/[a-z]/; if ($a=~/\@/){} else{ $a .= "\@netscape.com";} ($login,$domain)=split(/\@/,$a); $a1="$login$log{$login}"; $nadd=0; $ndel=0; %f=();%m=(); foreach $i (0 .. ($ndelta-1)){ $f{$rest[$i*8+0]}++; $m{"/".(split(/\//,$rest[$i*8+0]))[1]}++; $nadd+=$rest[$i*8+6]; $ndel+=$rest[$i*8+7]; } $isClient=0; foreach $i (keys %f){ if ($client{$i}){ $isClient=1; } } { #process log $bugs=getBugNumbers($log); $people=thanks($log); if ($bugs ne ""){ $isBug=1; }else{ $isBug=0; } @ff=keys %f; @mm=keys %m; foreach $i (split(/\:/,"$a:$people")){ $ii=$mapemail{$i}; $i=~s/\+//g;#get rid of the + signs in email if ($ii eq ""){ $ii = $i; } print "$mr\;$stmp1\;$ndelta\;$nadd\;$ndel\;$i\;$bugs\;$isBug\;$isClient\;@mm\;@ff\;$ii\n"; } } }