From 8195bc13ac14b8fbf13d804186680653b5fd8564 Mon Sep 17 00:00:00 2001 From: djk Date: Tue, 22 Dec 1998 12:55:12 +0000 Subject: [PATCH] fixed sh/dx --- cmd/show/configuration.pl | 2 +- cmd/show/dx.pl | 128 +++++++++++++++++++------------------- perl/DXCommandmode.pm | 6 +- perl/Spot.pm | 32 ++++------ perl/cluster.pl | 2 +- 5 files changed, 79 insertions(+), 91 deletions(-) diff --git a/cmd/show/configuration.pl b/cmd/show/configuration.pl index 4cd50e26..a7a1773b 100644 --- a/cmd/show/configuration.pl +++ b/cmd/show/configuration.pl @@ -15,7 +15,7 @@ my @l; my @val; push @out, "Node Callsigns"; -if ($list[0] =~ /^NOD/) { +if ($list[0] && $list[0] =~ /^NOD/) { my @ch = DXProt::get_all_ak1a(); my $dxchan; diff --git a/cmd/show/dx.pl b/cmd/show/dx.pl index 42fb646c..06cc5d04 100644 --- a/cmd/show/dx.pl +++ b/cmd/show/dx.pl @@ -5,7 +5,7 @@ # my ($self, $line) = @_; -my @list = split /\s+/, $line; # split the line up +my @list = split /\s+/, $line; # split the line up my @out; my $f; @@ -19,85 +19,85 @@ my $spotter; my $info; my $expr; -while ($f = shift @list) { # next field -# print "f: $f list: ", join(',', @list), "\n"; - if (!$from && !$to) { - ($from, $to) = $f =~ /^(\d+)-(\d+)$/o; # is it a from -> to count? - next if $from && $to > $from; - } - if (!$to) { - ($to) = $f =~ /^(\d+)$/o if !$to; # is it a to count? - next if $to; - } - if (lc $f eq 'on' && $list[0]) { # is it freq range? -# print "yup freq\n"; - my @r = split '/', $list[0]; -# print "r0: $r[0] r1: $r[1]\n"; - @freq = Bands::get_freq($r[0], $r[1]); - if (@freq) { # yup, get rid of extranous param -# print "freq: ", join(',', @freq), "\n"; - shift @list; - next; +while ($f = shift @list) { # next field + # print "f: $f list: ", join(',', @list), "\n"; + if (!$from && !$to) { + ($from, $to) = $f =~ /^(\d+)-(\d+)$/o; # is it a from -> to count? + next if $from && $to > $from; + } + if (!$to) { + ($to) = $f =~ /^(\d+)$/o if !$to; # is it a to count? + next if $to; + } + if (lc $f eq 'on' && $list[0]) { # is it freq range? + # print "yup freq\n"; + my @r = split '/', $list[0]; + # print "r0: $r[0] r1: $r[1]\n"; + @freq = Bands::get_freq($r[0], $r[1]); + if (@freq) { # yup, get rid of extranous param + # print "freq: ", join(',', @freq), "\n"; + shift @list; + next; + } + } + if (lc $f eq 'day' && $list[0]) { + # print "got day\n"; + ($fromday, $today) = split '-', shift(@list); + next; + } + if (lc $f eq 'info' && $list[0]) { + # print "got info\n"; + $info = shift @list; + next; + } + if (lc $f eq 'spotter' && $list[0]) { + # print "got spotter\n"; + $spotter = uc shift @list; + next; + } + if (!$pre) { + $pre = uc $f; } - } - if (lc $f eq 'day' && $list[0]) { -# print "got day\n"; - ($fromday, $today) = split '-', shift(@list); - next; - } - if (lc $f eq 'info' && $list[0]) { -# print "got info\n"; - $info = shift @list; - next; - } - if (lc $f eq 'spotter' && $list[0]) { -# print "got spotter\n"; - $spotter = uc shift @list; - next; - } - if (!$pre) { - $pre = uc $f; - } } # first deal with the prefix if ($pre) { - $expr = "\$f1 =~ /"; - $pre =~ s|/|\\/|; # change the slashes to \/ - if ($pre =~ /^\*/o) { - $pre =~ s/^\*//;; - $expr .= "$pre\$/o"; - } else { - $expr .= "^$pre/o"; - } + $expr = "\$f1 =~ /"; + $pre =~ s|/|\\/|; # change the slashes to \/ + if ($pre =~ /^\*/o) { + $pre =~ s/^\*//;; + $expr .= "$pre\$/o"; + } else { + $expr .= "^$pre/o"; + } } else { - $expr = "1"; # match anything + $expr = "1"; # match anything } # now deal with any frequencies specified if (@freq) { - $expr .= ($expr) ? " && (" : "("; - my $i; - for ($i; $i < @freq; $i += 2) { - $expr .= "(\$f0 >= $freq[$i] && \$f0 <= $freq[$i+1]) ||"; - } - chop $expr; - chop $expr; - $expr .= ")"; + $expr .= ($expr) ? " && (" : "("; + my $i; + for ($i = 0; $i < @freq; $i += 2) { + $expr .= "(\$f0 >= $freq[$i] && \$f0 <= $freq[$i+1]) ||"; + } + chop $expr; + chop $expr; + $expr .= ")"; } # any info if ($info) { - $expr .= " && " if $expr; - $info =~ s|/|\\/|; - $expr .= "\$f3 =~ /$info/io"; + $expr .= " && " if $expr; + $info =~ s|/|\\/|; + $expr .= "\$f3 =~ /$info/io"; } # any spotter if ($spotter) { - $expr .= " && " if $expr; - $spotter =~ s|/|\\/|; - $expr .= "\$f4 =~ /$spotter/o"; + $expr .= " && " if $expr; + $spotter =~ s|/|\\/|; + $expr .= "\$f4 =~ /$spotter/o"; } #print "expr: $expr from: $from to: $to fromday: $fromday today: $today\n"; @@ -107,8 +107,8 @@ my @res = Spot::search($expr, $fromday, $today, $from, $to); my $ref; my @dx; foreach $ref (@res) { - @dx = @$ref; - push @out, Spot::formatl(@dx); + @dx = @$ref; + push @out, Spot::formatl(@dx); } return (1, @out); diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index e429654c..0f802d89 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -488,11 +488,7 @@ sub find_cmd_name { close $fh; #wrap the code into a subroutine inside our unique package - my $eval = qq{ - sub $package - { - $sub - } }; + my $eval = qq{ sub $package { $sub } }; if (isdbg('eval')) { my @list = split /\n/, $eval; diff --git a/perl/Spot.pm b/perl/Spot.pm index b8938bb9..5831e9b3 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -95,24 +95,15 @@ sub search my @today = Julian::unixtoj(time); my @fromdate; my @todate; - - if ($dayfrom > 0) { - @fromdate = Julian::sub(@today, $dayfrom); - } else { - @fromdate = @today; - $dayfrom = 0; - } - if ($dayto > 0) { - @todate = Julian::sub(@fromdate, $dayto); - } else { - @todate = Julian::sub(@fromdate, $maxdays); - } - if ($from || $to) { - $to = $from + $maxspots if $to - $from > $maxspots || $to - $from <= 0; - } else { - $from = 0; - $to = $defaultspots; - } + + $dayfrom = 0 if !$dayfrom; + $dayto = $maxdays if !$dayto; + @fromdate = Julian::sub(@today, $dayfrom); + @todate = Julian::sub(@fromdate, $dayto); + $from = 0 unless $from; + $to = $defaultspots unless $to; + + $to = $from + $maxspots if $to - $from > $maxspots || $to - $from <= 0; $expr =~ s/\$f(\d)/\$ref->[$1]/g; # swap the letter n for the correct field name # $expr =~ s/\$f(\d)/\$spots[$1]/g; # swap the letter n for the correct field name @@ -123,13 +114,13 @@ sub search $eval = qq( my \$c; my \$ref; - for (\$c = \$ #spots; \$c >= 0; \$c--) { + for (\$c = \$#spots; \$c >= 0; \$c--) { \$ref = \$spots[\$c]; if ($expr) { \$count++; next if \$count < \$from; # wait until from push(\@out, \$ref); - last LOOP if \$count >= \$to; # stop after to + last if \$count >= \$to; # stop after to } } ); @@ -150,6 +141,7 @@ sub search push @spots, [ split '\^' ]; } eval $eval; # do the search on this file + last if $count >= $to; # stop after to return ("Spot search error", $@) if $@; } } diff --git a/perl/cluster.pl b/perl/cluster.pl index 26f3b97a..e671c5d4 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -91,7 +91,7 @@ sub rec # is there one already connected elsewhere in the cluster (and not a cluster) my $user = DXUser->get($call); if ($user) { - if (($user->sort eq 'A' || $call == $myalias) && !DXCluster->get_exact($call)) { + if (($user->sort eq 'A' || $call eq $myalias) && !DXCluster->get_exact($call)) { ; } else { if (DXCluster->get($call) || DXChannel->get($call)) { -- 2.34.1