really fix the caching in all cases
[spider.git] / perl / Spot.pm
index b5d560115dc5dd2f7b1502e436df399f83862d32..2863a449d54adbd4ae33bf6411a8e52cc0286101 100644 (file)
@@ -22,11 +22,11 @@ use strict;
 
 use vars qw($VERSION $BRANCH);
 $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0;
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0));
 $main::build += $VERSION;
 $main::branch += $BRANCH;
 
-use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef);
+use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef $totalspots $hfspots $vhfspots);
 
 $fp = undef;
 $statp = undef;
@@ -52,7 +52,7 @@ $filterdef = bless ([
                          ['by_zone', 'nz', 11],
                          ['channel', 'c', 12],
                         ], 'Filter::Cmd');
-
+$totalspots = $hfspots = $vhfspots = 0;
 
 # create a Spot Object
 sub new
@@ -140,6 +140,12 @@ sub add
 {
        my $buf = join("\^", @_[0..7]);
        $fp->writeunix($_[2], $buf);
+       $totalspots++;
+       if ($_[0] <= 30000) {
+               $hfspots++;
+       } else {
+               $vhfspots++;
+       }
 }
 
 # search the spot database for records based on the field no and an expression
@@ -299,7 +305,7 @@ sub dup
        return 2 if $d < $main::systime - $dupage;
  
        $freq = sprintf "%.1f", $freq;       # normalise frequency
-       $call = substr($call, 12) if length $call > 12;
+       $call = substr($call, 0, 12) if length $call > 12;
        chomp $text;
        $text =~ s/\%([0-9A-F][0-9A-F])/chr(hex($1))/eg;
        $text = substr($text, 0, $duplth) if length $text > $duplth;