: # *-*-perl-*-*
    eval 'exec perl -S  $0 "$@"'
    if $running_under_some_shell;

use Data::Dumper;
use strict;
use Getopt::Std;

our ($opt_f, $opt_a, $opt_x);

getopts("axf:") || die "getopt failed: $!";
die "I don't support -a!" if($opt_a);
die "I don't support -x!" if($opt_x);
$opt_f ||= "tags";

@ARGV = ('-') if ($#ARGV == -1);

my %tags = ();

foreach my $fname (@ARGV) {
	open(F, $fname);
	while (<F>) {
		chomp;
		if (/@\w+{(.*),/) {
			$tags{$1} = [$., $fname];
		}
	}
}

my $f = ">";
# XXX: We would have to sort it: $f = ">>" if ($opt_a);
$f .= $opt_f;

open(TAGS, $f);
foreach my $k (sort(keys(%tags))) {
	my $v = $tags{$k};
	#print "$k -> " . Dumper($tags{$k}) . "\n";
	#print "$k -> " . Dumper($v) . "\n";
	#printf "%s\t%s\t%d\n", $k, $v[1], $v[0];
	printf TAGS "%s\t%s\t%d\n", $k, $$v[1], $$v[0];
}
close(TAGS);
