#!/afs/athena/contrib/perl/perl

$index = "/pit-manager/ua/ftp/pub/usenet/news.answers/index";

push(@ARGV, $index) if (! @ARGV);

($record = <>) || die;

while (<>) {
    if (/^[^\s]/) {
	&index($record);
	$record = $_;
    }
    else {
	$record .= $_;
    }
}

$* = 1;

for (sort keys %names) {
    @names = split(/\n/, $names{$_});

    print "$_\n";

    for (@names) {
	$subject = $subjects{$_};
	$subject =~ s/^/\t/g;
	print $subject;
	print "\t\t$_\n";
    }

    print "\n";
}

sub index {
    local($_) = @_;

    chop;
    s/^([^\s]+)\t// || die "Malformed record:\n$_[0]";
    ($archive_name = $1) =~ s/\.Z$//;
    s/\t([^\s]+)$// || die "Malformed record:\n$_[0]";
    $newsgroups = $1;
    $subject = $_;

    @newsgroups = split(/,/, $newsgroups);

    $subjects{$archive_name} = $subject;

    for (@newsgroups) {
	next if (/^(alt|comp|misc|news|sci|soc|talk)\.answers$/ &&
		 ($archive_name !~ m,^news-answers/,));
	$names{$_} .= $archive_name . "\n";
    }
}
