slight change to echo logic in perl client
[spider.git] / perl / Spot.pm
index c9178ddb13b3f8668d25676544d69a6365218512..9c10796b8ef4f924f9dc46cbb4eeb9c5053d5cb2 100644 (file)
@@ -44,6 +44,14 @@ $filterdef = bless ([
                         ], 'Filter::Cmd');
 
 
+# create a Spot Object
+sub new
+{
+       my $class = shift;
+       my $self = [ @_ ];
+       return bless $self, $class;
+}
+
 sub decodefreq
 {
        my $dxchan = shift;
@@ -53,14 +61,18 @@ sub decodefreq
        my $f;
        
        foreach $f (@f) {
-               my ($a, $b) = $f =~ m{^(\d+)/(\d+)$};
-               if ($a && $b) {
-                       push @out, $a, $b;
+               my ($a, $b)
+               if (m{^\d+/\d+$}) {
+                       push @out, $f;
                } elsif (($a, $b) = $f =~ m{^(\w+)(?:/(\w+))?$}) {
                        $b = lc $b if $b;
                        my @fr = Bands::get_freq(lc $a, $b);
                        if (@fr) {
-                               push @out, @fr;    # add these to the list
+                               while (@fr) {
+                                       $a = shift @fr;
+                                       $b = shift @fr;
+                                       push @out, "$a/$b";  # add them as ranges
+                               }
                        } else {
                                return ('dfreq', $dxchan->msg('dfreq1', $f));
                        }
@@ -109,7 +121,7 @@ sub add
        my $spotter_cq = (@dxcc > 0 ) ? $dxcc[1]->cq() : 0;
        push @out, $spotter_dxcc;
        push @out, $spot[5];
-       
+
        my $buf = join("\^", @out);
 
        # compare dates to see whether need to open another save file (remember, redefining $fp