- my $bugfunc = shift;
- if ($common_archive) {
- open I, "<$gSpoolDir/index.archive"
- or &quitcgi("$gSpoolDir/index.archive: $!");
- } else {
- open I, "<$gSpoolDir/index.db"
- or &quitcgi("$gSpoolDir/index.db: $!");
- }
-
- my %count = ();
- while(<I>)
- {
- if (m/^(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+\[\s*([^]]*)\s*\]\s+(\w+)\s+(.*)$/) {
- my @x = $bugfunc->(pkg => $1, bug => $2, status => $4,
- submitter => $5, severity => $6, tags => $7);
- local $_;
- $count{$_}++ foreach @x;
- }
- }
- close I;
- return %count;
+ return count_bugs(function=>shift,
+ archive => $commonarchive,
+ );